From 090818b6442130c5e16c4022bb1dee18bb3d66a7 Mon Sep 17 00:00:00 2001 From: Jay Patel <78554593+jarpat@users.noreply.github.com> Date: Fri, 7 Jun 2024 15:23:49 -0400 Subject: [PATCH 1/2] feat: (IAC-1484) Update IAC Sample Sizing (#126) --- docs/CONFIG-VARS.md | 12 ++--- docs/REQUIREMENTS.md | 4 +- examples/vsphere/sample-terraform-dhcp.tfvars | 44 +++++++++---------- .../vsphere/sample-terraform-minimal.tfvars | 16 +++---- .../sample-terraform-static-ips.tfvars | 21 +++++---- ...sample-terraform-static-singlestore.tfvars | 21 +++++---- examples/vsphere/sample-terraform-vi.tfvars | 22 ++++++---- variables.tf | 8 ++-- 8 files changed, 79 insertions(+), 69 deletions(-) diff --git a/docs/CONFIG-VARS.md b/docs/CONFIG-VARS.md index 8aaecad..2d4ebfd 100644 --- a/docs/CONFIG-VARS.md +++ b/docs/CONFIG-VARS.md @@ -257,8 +257,8 @@ jump_ip = "" # Assigned values for static IP addresses | :--- | :--- | :--- | :--- | :--- | | create_nfs | Creation flag | bool | false | | | nfs_num_cpu | # of CPUs | number | 4 | | -| nfs_memory | Memory in MB | number | 8092 | | -| nfs_disk_size | Size of disk in GB | number | 250 | | +| nfs_memory | Memory in MB | number | 16384 | | +| nfs_disk_size | Size of disk in GB | number | 400 | | | nfs_ip | Static IP for NFS server | string | | | Sample: @@ -293,9 +293,9 @@ Each server element, like `foo = {}`, can contain none, some, or all of the para | Name | Description | Type | Default | Notes | | :--- | :--- | :--- | :--- | :--- | -| server_num_cpu | # of CPUs | number | 8 | | +| server_num_cpu | # of CPUs | number | 4 | | | server_memory | Memory in MB | number | 16385 | | -| server_disk_size | Size of disk in GB | number | 250 | | +| server_disk_size | Size of disk in GB | number | 128 | | | server_ip | Static IP address for PostgreSQL server | string | | This is a required field. | | server_version | The version of the PostgreSQL server | string | "15" | Refer to the [SAS Viya platform System Requirements](https://documentation.sas.com/?cdcId=sasadmincdc&cdcVersion=default&docsetId=itopssr&docsetTarget=p05lfgkwib3zxbn1t6nyihexp12n.htm#p1wq8ouke3c6ixn1la636df9oa1u) for the supported versions of PostgreSQL for the SAS Viya platform. | | server_ssl | Enable/disable SSL | string | "off" | | @@ -322,9 +322,9 @@ postgres_servers = { server_ip = "10.10.10.10" # Assigned values for static IPs }, cds-postgres = { - server_num_cpu = 8 # 8 CPUs + server_num_cpu = 4 # 8 CPUs server_memory = 16384 # 16 GB - server_disk_size = 250 # 256 GB + server_disk_size = 128 # 256 GB server_ip = "10.10.10.11" # Assigned values for static IPs server_version = 15 # PostgreSQL version server_ssl = "on" # SSL flag diff --git a/docs/REQUIREMENTS.md b/docs/REQUIREMENTS.md index cc8e6bb..5520352 100644 --- a/docs/REQUIREMENTS.md +++ b/docs/REQUIREMENTS.md @@ -46,8 +46,8 @@ The following table lists the minimum machine requirements that are needed to su | **Control Plane** | 2 | 4 GB | 100 GB | You must have an odd number of nodes, 3 or more, in order to provide high availability (HA) for the cluster. | 1 | | **Nodes** | xx | xx GB | xx GB | Nodes in the Kubernetes cluster. The number of machines varies, depending on multiple factors. Suggested capacities and information can be found in the sample files. | 3 | | **Jump Server** | 4 | 8 GB | 100 GB | Bastion box that is used to access NFS mounts, share data, etc. | 1 | -| **NFS Server** | 8 | 16 GB | 500 GB | Required server that is used to store persistent volumes for the cluster. Used for providing storage for the `default` storage class in the cluster. | 1 | -| **PostgreSQL Servers** | 8 | 16 GB | 250 GB | PostgreSQL servers for your SAS Viya platform deployment. | 1..n | +| **NFS Server** | 4 | 16 GB | 400 GB | Required server that is used to store persistent volumes for the cluster. Used for providing storage for the `default` storage class in the cluster. | 1 | +| **PostgreSQL Servers** | 4 | 16 GB | 128 GB | PostgreSQL servers for your SAS Viya platform deployment. | 1..n | ### VMware vSphere or vCenter diff --git a/examples/vsphere/sample-terraform-dhcp.tfvars b/examples/vsphere/sample-terraform-dhcp.tfvars index fc6080e..73ab3c7 100644 --- a/examples/vsphere/sample-terraform-dhcp.tfvars +++ b/examples/vsphere/sample-terraform-dhcp.tfvars @@ -53,7 +53,7 @@ cluster_lb_type = "kube_vip" # Load Balancer accepted values [kube_vip,metallb] # "cidr-global: 192.168.0.240/29" # CIDR-based range which can be used in any Namespace # ] # -# MetelLB sample: +# MetalLB sample: # # cluster_lb_addresses = [ # "192.168.10.0/24", @@ -99,7 +99,7 @@ node_pools = { system = { count = 1 cpus = 8 - memory = 16384 + memory = 65536 os_disk = 100 node_taints = [] node_labels = { @@ -107,10 +107,10 @@ node_pools = { } }, cas = { - count = 3 - cpus = 16 - memory = 131072 - os_disk = 350 + count = 3 + cpus = 16 + memory = 131072 + os_disk = 350 misc_disks = [ 150, 150, @@ -132,10 +132,10 @@ node_pools = { } }, stateful = { - count = 1 - cpus = 8 - memory = 32768 - os_disk = 100 + count = 2 + cpus = 4 + memory = 16384 + os_disk = 100 misc_disks = [ 150, ] @@ -145,10 +145,10 @@ node_pools = { } }, stateless = { - count = 2 - cpus = 8 - memory = 32768 - os_disk = 100 + count = 4 + cpus = 4 + memory = 16384 + os_disk = 100 misc_disks = [ 150, ] @@ -158,10 +158,10 @@ node_pools = { } }, singlestore = { - count = 3 - cpus = 16 - memory = 131072 - os_disk = 100 + count = 3 + cpus = 16 + memory = 131072 + os_disk = 100 misc_disks = [ 150, 150, @@ -184,17 +184,17 @@ jump_ip = "" # Assigned values for static IPs # NFS server create_nfs = true # Creation flag -nfs_num_cpu = 8 # 8 CPUs +nfs_num_cpu = 4 # 4 CPUs nfs_memory = 16384 # 16 GB -nfs_disk_size = 500 # 500 GB +nfs_disk_size = 400 # 400 GB nfs_ip = "" # Assigned values for static IPs # Postgres Servers postgres_servers = { default = { - server_num_cpu = 8 # 8 CPUs + server_num_cpu = 4 # 4 CPUs server_memory = 16384 # 16 GB - server_disk_size = 250 # 256 GB + server_disk_size = 128 # 128 GB server_ip = "" # Assigned values for static IPs server_version = 15 # PostgreSQL version server_ssl = "off" # SSL flag diff --git a/examples/vsphere/sample-terraform-minimal.tfvars b/examples/vsphere/sample-terraform-minimal.tfvars index 724ed3b..aa8bfa0 100644 --- a/examples/vsphere/sample-terraform-minimal.tfvars +++ b/examples/vsphere/sample-terraform-minimal.tfvars @@ -99,7 +99,7 @@ node_pools = { system = { count = 1 cpus = 8 - memory = 16384 + memory = 65536 os_disk = 100 node_taints = [] node_labels = { @@ -108,9 +108,9 @@ node_pools = { }, cas = { count = 3 - cpus = 8 - memory = 16384 - os_disk = 100 + cpus = 16 + memory = 131072 + os_disk = 350 misc_disks = [ 150, 150, @@ -145,17 +145,17 @@ jump_ip = "" # Assigned values for static IPs # NFS server create_nfs = true # Creation flag -nfs_num_cpu = 8 # 8 CPUs +nfs_num_cpu = 4 # 4 CPUs nfs_memory = 16384 # 16 GB -nfs_disk_size = 500 # 500 GB +nfs_disk_size = 400 # 400 GB nfs_ip = "" # Assigned values for static IPs # Postgres Servers postgres_servers = { default = { - server_num_cpu = 8 # 8 CPUs + server_num_cpu = 4 # 4 CPUs server_memory = 16384 # 16 GB - server_disk_size = 250 # 256 GB + server_disk_size = 128 # 128 GB server_ip = "" # Assigned values for static IPs server_version = 15 # PostgreSQL version server_ssl = "off" # SSL flag diff --git a/examples/vsphere/sample-terraform-static-ips.tfvars b/examples/vsphere/sample-terraform-static-ips.tfvars index 1fa50ce..e209880 100644 --- a/examples/vsphere/sample-terraform-static-ips.tfvars +++ b/examples/vsphere/sample-terraform-static-ips.tfvars @@ -102,7 +102,7 @@ node_pools = { # Other variables may be altered system = { cpus = 8 - memory = 16384 + memory = 65536 os_disk = 100 ip_addresses = [ "", @@ -144,14 +144,15 @@ node_pools = { } }, stateful = { - cpus = 8 - memory = 32768 + cpus = 4 + memory = 16384 os_disk = 100 misc_disks = [ 150, ] ip_addresses = [ "", + "", ] node_taints = ["workload.sas.com/class=stateful:NoSchedule"] node_labels = { @@ -159,8 +160,8 @@ node_pools = { } }, stateless = { - cpus = 8 - memory = 32768 + cpus = 4 + memory = 16384 os_disk = 100 misc_disks = [ 150, @@ -168,6 +169,8 @@ node_pools = { ip_addresses = [ "", "", + "", + "", ] node_taints = ["workload.sas.com/class=stateless:NoSchedule"] node_labels = { @@ -185,17 +188,17 @@ jump_ip = "" # Assigned values for static IPs # NFS server create_nfs = true # Creation flag -nfs_num_cpu = 8 # 8 CPUs +nfs_num_cpu = 4 # 4 CPUs nfs_memory = 16384 # 16 GB -nfs_disk_size = 500 # 500 GB +nfs_disk_size = 400 # 400 GB nfs_ip = "" # Assigned values for static IPs # Postgres Servers postgres_servers = { default = { - server_num_cpu = 8 # 8 CPUs + server_num_cpu = 4 # 4 CPUs server_memory = 16384 # 16 GB - server_disk_size = 250 # 256 GB + server_disk_size = 128 # 128 GB server_ip = "" # Assigned values for static IPs server_version = 15 # PostgreSQL version server_ssl = "off" # SSL flag diff --git a/examples/vsphere/sample-terraform-static-singlestore.tfvars b/examples/vsphere/sample-terraform-static-singlestore.tfvars index 429e824..28b2353 100644 --- a/examples/vsphere/sample-terraform-static-singlestore.tfvars +++ b/examples/vsphere/sample-terraform-static-singlestore.tfvars @@ -108,7 +108,7 @@ node_pools = { # Other variables may be altered system = { cpus = 8 - memory = 16384 + memory = 65536 os_disk = 100 ip_addresses = [ "", @@ -150,14 +150,15 @@ node_pools = { } }, stateful = { - cpus = 8 - memory = 32768 + cpus = 4 + memory = 16384 os_disk = 100 misc_disks = [ 150, ] ip_addresses = [ "", + "", ] node_taints = ["workload.sas.com/class=stateful:NoSchedule"] node_labels = { @@ -165,8 +166,8 @@ node_pools = { } }, stateless = { - cpus = 8 - memory = 32768 + cpus = 4 + memory = 16384 os_disk = 100 misc_disks = [ 150, @@ -174,6 +175,8 @@ node_pools = { ip_addresses = [ "", "", + "", + "", ] node_taints = ["workload.sas.com/class=stateless:NoSchedule"] node_labels = { @@ -211,17 +214,17 @@ jump_ip = "" # Assigned values for static IPs # NFS server create_nfs = true # Creation flag -nfs_num_cpu = 8 # 8 CPUs +nfs_num_cpu = 4 # 4 CPUs nfs_memory = 16384 # 16 GB -nfs_disk_size = 500 # 500 GB +nfs_disk_size = 400 # 400 GB nfs_ip = "" # Assigned values for static IPs # Postgres Servers postgres_servers = { default = { - server_num_cpu = 8 # 8 CPUs + server_num_cpu = 4 # 4 CPUs server_memory = 16384 # 16 GB - server_disk_size = 250 # 256 GB + server_disk_size = 128 # 128 GB server_ip = "" # Assigned values for static IPs server_version = 15 # PostgreSQL version server_ssl = "off" # SSL flag diff --git a/examples/vsphere/sample-terraform-vi.tfvars b/examples/vsphere/sample-terraform-vi.tfvars index 4028e37..d3403e6 100644 --- a/examples/vsphere/sample-terraform-vi.tfvars +++ b/examples/vsphere/sample-terraform-vi.tfvars @@ -99,7 +99,7 @@ node_pools = { system = { count = 1 cpus = 8 - memory = 16384 + memory = 65536 os_disk = 100 node_taints = [] node_labels = { @@ -107,10 +107,14 @@ node_pools = { } }, cas = { - count = 3 - cpus = 8 - memory = 16384 - os_disk = 100 + count = 3 + cpus = 16 + memory = 131072 + os_disk = 350 + misc_disks = [ + 150, + 150, + ] node_taints = ["workload.sas.com/class=cas:NoSchedule"] node_labels = { "workload.sas.com/class" = "cas" @@ -138,17 +142,17 @@ jump_ip = "" # Assigned values for static IPs # NFS server create_nfs = true # Creation flag -nfs_num_cpu = 8 # 8 CPUs +nfs_num_cpu = 4 # 4 CPUs nfs_memory = 16384 # 16 GB -nfs_disk_size = 500 # 500 GB +nfs_disk_size = 400 # 400 GB nfs_ip = "" # Assigned values for static IPs # Postgres Servers postgres_servers = { default = { - server_num_cpu = 8 # 8 CPUs + server_num_cpu = 4 # 4 CPUs server_memory = 16384 # 16 GB - server_disk_size = 250 # 256 GB + server_disk_size = 128 # 128 GB server_ip = "" # Assigned values for static IPs server_version = 15 # PostgreSQL version server_ssl = "off" # SSL flag diff --git a/variables.tf b/variables.tf index 825c540..0fb86e5 100644 --- a/variables.tf +++ b/variables.tf @@ -199,7 +199,7 @@ variable "nfs_ip" { variable "nfs_memory" { type = number - default = 8092 + default = 16384 } variable "nfs_num_cpu" { @@ -209,7 +209,7 @@ variable "nfs_num_cpu" { variable "nfs_disk_size" { type = number - default = 250 + default = 400 } # container registry - TODO @@ -242,9 +242,9 @@ variable "postgres_server_defaults" { description = "" type = any default = { - server_num_cpu = 8 # 8 CPUs + server_num_cpu = 4 # 4 CPUs server_memory = 16384 # 16 GiB - server_disk_size = 250 # 250 GiB + server_disk_size = 128 # 128 GiB server_ip = "" # Assigned values for static IPs server_version = 15 # PostgreSQL version server_ssl = "off" # SSL flag From 98373e476a0f06935946536d708e9c6388cf914b Mon Sep 17 00:00:00 2001 From: Jay Patel <78554593+jarpat@users.noreply.github.com> Date: Wed, 12 Jun 2024 09:54:15 -0400 Subject: [PATCH 2/2] feat: (IAC-1475) Update Dependencies (#127) --- Dockerfile | 2 +- docs/REQUIREMENTS.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c46c442..f5116d2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ RUN apt-get update && apt-get upgrade -y --no-install-recommends \ FROM baseline as tool_builder ARG HELM_VERSION=3.14.4 ARG KUBECTL_VERSION=1.28.7 -ARG TERRAFORM_VERSION=1.7.4-* +ARG TERRAFORM_VERSION=1.8.5-* WORKDIR /build diff --git a/docs/REQUIREMENTS.md b/docs/REQUIREMENTS.md index 5520352..e12c8d3 100644 --- a/docs/REQUIREMENTS.md +++ b/docs/REQUIREMENTS.md @@ -682,6 +682,6 @@ The third-party applications that are listed in the following table are supporte | Application | Minimum Version | | ---: | ---: | | [Ansible](https://www.ansible.com/) | Core 2.16.1 | -| [Terraform](https://www.terraform.io/) | 1.7.4 | +| [Terraform](https://www.terraform.io/) | 1.8.5 | | [Docker](https://www.docker.com/) | 20.10.17 | | [Helm](https://helm.sh/) | 3.14.4 |