Skip to content

Commit 46c5010

Browse files
authored
Merge branch 'main' into kubelet_disk_type_temp
2 parents 0aefd6d + e81a72e commit 46c5010

32 files changed

+223
-408
lines changed

CONTRIBUTING.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# How to Contribute
2-
3-
We'd love to accept your patches and contributions to this project. There are
4-
just a few small guidelines you need to follow.
2+
We'd love to accept your patches and contributions to this project.
3+
We just ask that you follow our contribution guidelines when you do.
54

65
## Contributor License Agreement
7-
8-
Contributions to this project must be accompanied by a signed
9-
[Contributor Agreement](ContributorAgreement.txt).
10-
You (or your employer) retain the copyright to your contribution,
11-
this simply gives us permission to use and redistribute your contributions as
12-
part of the project.
6+
Contributions to this project must be accompanied by a signed [Contributor Agreement](ContributorAgreement.txt).
7+
You (or your employer) retain the copyright to your contribution; this simply grants us permission to use and redistribute your contributions as part of the project.
138

149
## Code reviews
10+
All submissions to this project—including submissions from project members—require review.
11+
Our review process typically involves performing unit tests, development tests, integration tests, and security scans using internal SAS infrastructure.
12+
For this reason, we don’t often merge pull requests directly from GitHub.
13+
14+
Instead, we work with submissions internally first, vetting them to ensure they meet our security and quality standards.
15+
We’ll do our best to work with contributors in public issues and pull requests; however, to ensure our code meets our internal compliance standards, we may need to incorporate your submission into a solution we push ourselves.
1516

16-
All submissions, including submissions by project members, require review. We
17-
use GitHub pull requests for this purpose. Consult
18-
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
19-
information on using pull requests.
17+
This does not mean we don’t value or appreciate your contribution.
18+
We simply need to review your code internally before merging it.
19+
We work to ensure all contributors receive appropriate recognition for their contributions, at least by acknowledging them in our release notes.

Dockerfile

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
ARG TERRAFORM_VERSION=1.8.2
2-
ARG AZURECLI_VERSION=2.59.0
1+
ARG TERRAFORM_VERSION=1.9.6
2+
ARG AZURECLI_VERSION=2.64.0
33

44
FROM hashicorp/terraform:$TERRAFORM_VERSION as terraform
55
FROM mcr.microsoft.com/azure-cli:$AZURECLI_VERSION
6-
ARG KUBECTL_VERSION=1.28.7
6+
ARG KUBECTL_VERSION=1.29.7
77

88
WORKDIR /viya4-iac-azure
99

1010
COPY --from=terraform /bin/terraform /bin/terraform
1111
COPY . .
1212

13-
RUN apk update \
14-
&& apk upgrade \
15-
&& apk add --no-cache git openssh curl\
13+
RUN yum -y install git openssh jq which curl \
14+
&& yum clean all && rm -rf /var/cache/yum \
1615
&& curl -sLO https://storage.googleapis.com/kubernetes-release/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl \
1716
&& chmod 755 ./kubectl /viya4-iac-azure/docker-entrypoint.sh \
1817
&& mv ./kubectl /usr/local/bin/kubectl \

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,10 @@ This project supports two options for running Terraform scripts:
5757
Access to an **Azure Subscription** and an [**Identity**](./docs/user/TerraformAzureAuthentication.md) with the *Contributor* role are required.
5858

5959
#### Terraform Requirements:
60-
- [Terraform](https://www.terraform.io/downloads.html) - v1.8.2
61-
- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl) - v1.28.7
60+
- [Terraform](https://www.terraform.io/downloads.html) - v1.9.6
61+
- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl) - v1.29.7
6262
- [jq](https://stedolan.github.io/jq/) - v1.6
63-
- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure) - (optional - useful as an alternative to the Azure Portal) - v2.59.0
63+
- [Azure CLI](https://docs.microsoft.com/en-us/cli/azure) - (optional - useful as an alternative to the Azure Portal) - v2.64.0
6464

6565
#### Docker Requirements:
6666
- [Docker](https://docs.docker.com/get-docker/)

container-structure-test.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ fileExistenceTests:
99
shouldExist: true
1010
permissions: '-rwxr-xr-x'
1111
- name: 'azure-cli'
12-
path: '/usr/local/bin/az'
12+
path: '/usr/bin/az'
1313
shouldExist: true
1414
permissions: '-rwxr-xr-x'
1515

1616
commandTests:
1717
- name: "terraform version"
1818
command: "terraform"
1919
args: ["--version"]
20-
expectedOutput: ["Terraform v1.8.2"]
20+
expectedOutput: ["Terraform v1.9.6"]
2121
- name: "python version"
2222
command: "python3"
2323
args: ["--version"]
@@ -29,7 +29,7 @@ commandTests:
2929
- -c
3030
- |
3131
az version -o tsv
32-
expectedOutput: ["2.59.0\t2.59.0\t1.1.0"]
32+
expectedOutput: ["2.64.0\t2.64.0\t1.1.0"]
3333

3434
metadataTest:
3535
workdir: "/viya4-iac-azure"

docs/CONFIG-VARS.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -127,22 +127,22 @@ The default values for the `subnets` variable are as follows:
127127
aks = {
128128
"prefixes": ["192.168.0.0/23"],
129129
"service_endpoints": ["Microsoft.Sql"],
130-
"private_endpoint_network_policies_enabled": false,
130+
"private_endpoint_network_policies": "Disabled",
131131
"private_link_service_network_policies_enabled": false,
132132
"service_delegations": {},
133133
}
134134
misc = {
135135
"prefixes": ["192.168.2.0/24"],
136136
"service_endpoints": ["Microsoft.Sql"],
137-
"private_endpoint_network_policies_enabled": false,
137+
"private_endpoint_network_policies": "Disabled",
138138
"private_link_service_network_policies_enabled": false,
139139
"service_delegations": {},
140140
}
141141
## If using ha storage then the following is also added
142142
netapp = {
143143
"prefixes": ["192.168.3.0/24"],
144144
"service_endpoints": [],
145-
"private_endpoint_network_policies_enabled": false,
145+
"private_endpoint_network_policies": "Disabled",
146146
"private_link_service_network_policies_enabled": false,
147147
"service_delegations": {
148148
netapp = {
@@ -197,7 +197,7 @@ Ubuntu 20.04 LTS is the operating system used on the Jump/NFS servers. Ubuntu cr
197197
| :--- | ---: | ---: | ---: | ---: |
198198
| partner_id | A GUID that is registered with Microsoft to facilitate partner resource usage attribution | string | "5d27f3ae-e49c-4dea-9aa3-b44e4750cd8c" | Defaults to SAS partner GUID. When you deploy this Terraform configuration, Microsoft can identify the installation of SAS software with the deployed Azure resources. Microsoft can then correlate the resources that are used to support the software. Microsoft collects this information to provide the best experiences with their products and to operate their business. The data is collected and governed by Microsoft's privacy policies, located at https://www.microsoft.com/trustcenter. |
199199
| create_static_kubeconfig | Allows the user to create a provider / service account-based kubeconfig file | bool | true | A value of `false` will default to using the cloud provider's mechanism for generating the kubeconfig file. A value of `true` will create a static kubeconfig that uses a `Service Account` and `Cluster Role Binding` to provide credentials. |
200-
| kubernetes_version | The AKS cluster Kubernetes version | string | "1.28" |Use of specific versions is still supported. If you need exact kubernetes version please use format `x.y.z`, where `x` is the major version, `y` is the minor version, and `z` is the patch version |
200+
| kubernetes_version | The AKS cluster Kubernetes version | string | "1.29" |Use of specific versions is still supported. If you need exact kubernetes version please use format `x.y.z`, where `x` is the major version, `y` is the minor version, and `z` is the patch version |
201201
| create_jump_vm | Create bastion host | bool | true | |
202202
| create_jump_public_ip | Add public IP address to the jump VM | bool | true | |
203203
| enable_jump_public_static_ip | Enables `Static` allocation method for the public IP address of Jump Server. Setting false will enable `Dynamic` allocation method. | bool | true | Only used with `create_jump_public_ip=true` |
@@ -219,7 +219,7 @@ Ubuntu 20.04 LTS is the operating system used on the Jump/NFS servers. Ubuntu cr
219219
| Name | Description | Type | Default | Notes |
220220
| :--- | ---: | ---: | ---: | ---: |
221221
| node_vm_admin | Operating system Admin User for VMs of AKS cluster nodes | string | "azureuser" | |
222-
| default_nodepool_vm_type | Type of the default node pool VMs | string | "Standard_D8s_v4" | |
222+
| default_nodepool_vm_type | Type of the default node pool VMs | string | "Standard_E8s_v5" | |
223223
| default_nodepool_os_disk_size | Disk size for default node pool VMs in GB | number | 128 ||
224224
| default_nodepool_max_pods | Maximum number of pods that can run on each | number | 110 | Changing this forces a new resource to be created. |
225225
| default_nodepool_min_nodes | Minimum and initial number of nodes for the default node pool | number | 1 | Value must be between 0 and 100. Setting min and max node counts the same disables autoscaling. |
@@ -247,7 +247,7 @@ The default values for the `node_pools` variable are as follows:
247247
```yaml
248248
{
249249
cas = {
250-
"machine_type" = "Standard_E16s_v3"
250+
"machine_type" = "Standard_E16ds_v5"
251251
"os_disk_size" = 200
252252
"min_nodes" = 0
253253
"max_nodes" = 5
@@ -258,7 +258,7 @@ The default values for the `node_pools` variable are as follows:
258258
}
259259
},
260260
compute = {
261-
"machine_type" = "Standard_E16s_v3"
261+
"machine_type" = "Standard_D4ds_v5"
262262
"os_disk_size" = 200
263263
"min_nodes" = 1
264264
"max_nodes" = 5
@@ -270,7 +270,7 @@ The default values for the `node_pools` variable are as follows:
270270
}
271271
},
272272
stateless = {
273-
"machine_type" = "Standard_D16s_v3"
273+
"machine_type" = "Standard_D4s_v5"
274274
"os_disk_size" = 200
275275
"min_nodes" = 0
276276
"max_nodes" = 5
@@ -281,7 +281,7 @@ The default values for the `node_pools` variable are as follows:
281281
}
282282
},
283283
stateful = {
284-
"machine_type" = "Standard_D8s_v3"
284+
"machine_type" = "Standard_D4s_v5"
285285
"os_disk_size" = 200
286286
"min_nodes" = 0
287287
"max_nodes" = 3
@@ -320,10 +320,10 @@ When `storage_type=standard`, a NFS Server VM is created, only when these variab
320320
| create_nfs_public_ip | Add public ip to the NFS server VM | bool | false | |
321321
| enable_nfs_public_static_ip | Enables `Static` allocation method for the public IP address of NFS Server. Setting false will enable `Dynamic` allocation method | bool | true | Only used with `create_nfs_public_ip=true` |
322322
| nfs_vm_admin | OS Admin User for the NFS server VM | string | "nfsuser" | |
323-
| nfs_vm_machine_type | SKU to use for NFS server VM | string | "Standard_D8s_v4" | To check for valid types for your subscription, run: `az vm list-skus --resource-type virtualMachines --subscription $subscription --location $location -o table`|
323+
| nfs_vm_machine_type | SKU to use for NFS server VM | string | "Standard_D4s_v5" | To check for valid types for your subscription, run: `az vm list-skus --resource-type virtualMachines --subscription $subscription --location $location -o table`|
324324
| nfs_vm_zone | Zone in which NFS server VM should be created | string | null | |
325325
| nfs_raid_disk_type | Managed disk types | string | "Standard_LRS" | Supported values: Standard_LRS, Premium_LRS, StandardSSD_LRS or UltraSSD_LRS. When using `UltraSSD_LRS`, `nfs_vm_zone` and `nfs_raid_disk_zone` must be specified. See the [Azure documentation](https://docs.microsoft.com/en-us/azure/virtual-machines/disks-enable-ultra-ssd) for limitations on Availability Zones and VM types. |
326-
| nfs_raid_disk_size | Size in Gb for each disk of the RAID5 cluster on the NFS server VM | number | 128 | |
326+
| nfs_raid_disk_size | Size in Gb for each disk of the RAID5 cluster on the NFS server VM | number | 256 | |
327327
| nfs_raid_disk_zone | The Availability Zone in which the Managed Disk should be located. Changing this property forces a new resource to be created. | string | null | |
328328

329329
### Azure NetApp Files (only when `storage_type=ha`)
@@ -368,8 +368,8 @@ Each server element, like `foo = {}`, can contain none, some, or all of the para
368368

369369
| Name | Description | Type | Default | Notes |
370370
| :--- | ---: | ---: | ---: | ---: |
371-
| sku_name| The SKU Name for the PostgreSQL Flexible Server | string | "GP_Standard_D16s_v3" | The name pattern is the SKU, followed by the tier + family + cores (e.g. B_Standard_B1ms, GP_Standard_D2s_v3, MO_Standard_E4s_v3).|
372-
| storage_mb | The max storage allowed for the PostgreSQL Flexible Server | number | 65536 | Possible values are 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, and 33554432. |
371+
| sku_name| The SKU Name for the PostgreSQL Flexible Server | string | "GP_Standard_D4ds_v5" | The name pattern is the SKU, followed by the tier + family + cores (e.g. B_Standard_B1ms, GP_Standard_D2s_v3, MO_Standard_E4s_v3).|
372+
| storage_mb | The max storage allowed for the PostgreSQL Flexible Server | number | 131072 | Possible values are 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, and 33554432. |
373373
| backup_retention_days | Backup retention days for the PostgreSQL Flexible server | number | 7 | Supported values are between 7 and 35 days. |
374374
| geo_redundant_backup_enabled | Enable Geo-redundant or not for server backup | bool | false | Not supported for the basic tier. |
375375
| administrator_login | The Administrator Login for the PostgreSQL Flexible Server. Changing this forces a new resource to be created. | string | "pgadmin" | The admin login name cannot be azure_superuser, azure_pg_admin, admin, administrator, root, guest, or public. It cannot start with pg_. See: [Microsoft Quickstart Server Database](https://docs.microsoft.com/en-us/azure/postgresql/flexible-server/quickstart-create-server-portal) |
@@ -395,8 +395,8 @@ postgres_servers = {
395395
]
396396
},
397397
cds-postgres = {
398-
sku_name = "GP_Standard_D16s_v3"
399-
storage_mb = 65536
398+
sku_name = "GP_Standard_D4ds_v5"
399+
storage_mb = 131072
400400
backup_retention_days = 7
401401
administrator_login = "pgadmin"
402402
administrator_password = "1tsAB3aut1fulDay"

examples/sample-input-byo.tfvars

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ container_registry_sku = "Standard"
4545
container_registry_admin_enabled = false
4646

4747
# AKS config
48-
kubernetes_version = "1.28"
48+
kubernetes_version = "1.29"
4949
default_nodepool_min_nodes = 2
50-
default_nodepool_vm_type = "Standard_D8s_v4"
50+
default_nodepool_vm_type = "Standard_E8s_v5"
5151

5252
# AKS Node Pools config
5353
node_pools = {
5454
cas = {
55-
"machine_type" = "Standard_E16s_v3"
55+
"machine_type" = "Standard_E16ds_v5"
5656
"os_disk_size" = 200
5757
"min_nodes" = 1
5858
"max_nodes" = 1
@@ -63,7 +63,7 @@ node_pools = {
6363
}
6464
},
6565
compute = {
66-
"machine_type" = "Standard_E16s_v3"
66+
"machine_type" = "Standard_D4ds_v5"
6767
"os_disk_size" = 200
6868
"min_nodes" = 1
6969
"max_nodes" = 1
@@ -75,21 +75,21 @@ node_pools = {
7575
}
7676
},
7777
stateless = {
78-
"machine_type" = "Standard_D16s_v3"
78+
"machine_type" = "Standard_D4s_v5"
7979
"os_disk_size" = 200
8080
"min_nodes" = 1
81-
"max_nodes" = 2
81+
"max_nodes" = 4
8282
"max_pods" = 110
8383
"node_taints" = ["workload.sas.com/class=stateless:NoSchedule"]
8484
"node_labels" = {
8585
"workload.sas.com/class" = "stateless"
8686
}
8787
},
8888
stateful = {
89-
"machine_type" = "Standard_D8s_v3"
89+
"machine_type" = "Standard_D4s_v5"
9090
"os_disk_size" = 200
9191
"min_nodes" = 1
92-
"max_nodes" = 3
92+
"max_nodes" = 2
9393
"max_pods" = 110
9494
"node_taints" = ["workload.sas.com/class=stateful:NoSchedule"]
9595
"node_labels" = {
@@ -108,6 +108,6 @@ storage_type = "standard"
108108
# required ONLY when storage_type is "standard" to create NFS Server VM
109109
create_nfs_public_ip = false
110110
nfs_vm_admin = "nfsuser"
111-
nfs_vm_machine_type = "Standard_D8s_v4"
112-
nfs_raid_disk_size = 128
111+
nfs_vm_machine_type = "Standard_D4s_v5"
112+
nfs_raid_disk_size = 256
113113
nfs_raid_disk_type = "Standard_LRS"

examples/sample-input-connect.tfvars

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@ container_registry_sku = "Standard"
3434
container_registry_admin_enabled = false
3535

3636
# AKS config
37-
kubernetes_version = "1.28"
37+
kubernetes_version = "1.29"
3838
default_nodepool_min_nodes = 2
39-
default_nodepool_vm_type = "Standard_D8s_v4"
39+
default_nodepool_vm_type = "Standard_E8s_v5"
4040

4141
# AKS Node Pools config
4242
node_pools = {
4343
cas = {
44-
"machine_type" = "Standard_E16s_v3"
44+
"machine_type" = "Standard_E16ds_v5"
4545
"os_disk_size" = 200
4646
"min_nodes" = 1
4747
"max_nodes" = 1
@@ -52,7 +52,7 @@ node_pools = {
5252
}
5353
},
5454
compute = {
55-
"machine_type" = "Standard_E16s_v3"
55+
"machine_type" = "Standard_D4ds_v5"
5656
"os_disk_size" = 200
5757
"min_nodes" = 1
5858
"max_nodes" = 1
@@ -76,21 +76,21 @@ node_pools = {
7676
}
7777
},
7878
stateless = {
79-
"machine_type" = "Standard_D16s_v3"
79+
"machine_type" = "Standard_D4s_v5"
8080
"os_disk_size" = 200
8181
"min_nodes" = 1
82-
"max_nodes" = 2
82+
"max_nodes" = 4
8383
"max_pods" = 110
8484
"node_taints" = ["workload.sas.com/class=stateless:NoSchedule"]
8585
"node_labels" = {
8686
"workload.sas.com/class" = "stateless"
8787
}
8888
},
8989
stateful = {
90-
"machine_type" = "Standard_D8s_v3"
90+
"machine_type" = "Standard_D4s_v5"
9191
"os_disk_size" = 200
9292
"min_nodes" = 1
93-
"max_nodes" = 3
93+
"max_nodes" = 2
9494
"max_pods" = 110
9595
"node_taints" = ["workload.sas.com/class=stateful:NoSchedule"]
9696
"node_labels" = {
@@ -109,6 +109,6 @@ storage_type = "standard"
109109
# required ONLY when storage_type is "standard" to create NFS Server VM
110110
create_nfs_public_ip = false
111111
nfs_vm_admin = "nfsuser"
112-
nfs_vm_machine_type = "Standard_D8s_v4"
113-
nfs_raid_disk_size = 128
112+
nfs_vm_machine_type = "Standard_D4s_v5"
113+
nfs_raid_disk_size = 256
114114
nfs_raid_disk_type = "Standard_LRS"

examples/sample-input-ha.tfvars

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ container_registry_sku = "Standard"
3232
container_registry_admin_enabled = false
3333

3434
# AKS config
35-
kubernetes_version = "1.28"
35+
kubernetes_version = "1.29"
3636
default_nodepool_min_nodes = 2
37-
default_nodepool_vm_type = "Standard_D8s_v4"
37+
default_nodepool_vm_type = "Standard_E8s_v5"
3838

3939
# AKS Node Pools config
4040
node_pools = {
4141
cas = {
42-
"machine_type" = "Standard_E16s_v3"
42+
"machine_type" = "Standard_E16ds_v5"
4343
"os_disk_size" = 200
4444
"min_nodes" = 2
4545
"max_nodes" = 3
@@ -50,7 +50,7 @@ node_pools = {
5050
}
5151
},
5252
compute = {
53-
"machine_type" = "Standard_E16s_v3"
53+
"machine_type" = "Standard_D4ds_v5"
5454
"os_disk_size" = 200
5555
"min_nodes" = 2
5656
"max_nodes" = 3
@@ -62,18 +62,18 @@ node_pools = {
6262
}
6363
},
6464
stateless = {
65-
"machine_type" = "Standard_D16s_v3"
65+
"machine_type" = "Standard_D4s_v5"
6666
"os_disk_size" = 200
6767
"min_nodes" = 2
68-
"max_nodes" = 3
68+
"max_nodes" = 4
6969
"max_pods" = 110
7070
"node_taints" = ["workload.sas.com/class=stateless:NoSchedule"]
7171
"node_labels" = {
7272
"workload.sas.com/class" = "stateless"
7373
}
7474
},
7575
stateful = {
76-
"machine_type" = "Standard_D8s_v3"
76+
"machine_type" = "Standard_D4s_v5"
7777
"os_disk_size" = 200
7878
"min_nodes" = 2
7979
"max_nodes" = 3

0 commit comments

Comments
 (0)