From 8fc804bf201f0653a36dfe8fb258a952c2912b31 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Thu, 4 Dec 2025 10:43:15 -0500 Subject: [PATCH 01/25] feat: initial stls nap configs --- .../terraform-inputs/azure-nap-linux.tfvars | 46 +++++++++++++++++++ .../azure-nap-linux.json | 4 ++ 2 files changed, 50 insertions(+) create mode 100644 scenarios/perf-eval/stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars create mode 100644 scenarios/perf-eval/stls-bootstrap-autoscale/terraform-test-inputs/azure-nap-linux.json diff --git a/scenarios/perf-eval/stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars b/scenarios/perf-eval/stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars new file mode 100644 index 0000000000..fd3ab174eb --- /dev/null +++ b/scenarios/perf-eval/stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars @@ -0,0 +1,46 @@ +scenario_type = "perf-eval" +scenario_name = "stls-bootstrap-autoscale" +deletion_delay = "2h" +owner = "aks" + +aks_config_list = [] + +aks_cli_config_list = [ + { + role = "nap" + aks_name = "nap" + sku_tier = "standard" + aks_custom_headers = [ + "AKSHTTPCustomFeatures=Microsoft.ContainerService/EnableSecureTLSBootstrapping" + ] + kubernetes_version = "1.33" + default_node_pool = { + name = "system" + node_count = 5 + vm_size = "Standard_D4_v5" + } + extra_node_pool = [] + optional_parameters = [ + { + name = "node-provisioning-mode" + value = "Auto" + }, + { + name = "network-plugin" + value = "azure" + }, + { + name = "network-plugin-mode" + value = "overlay" + }, + { + name = "node-init-taints" + value = "CriticalAddonsOnly=true:NoSchedule" + }, + { + name = "pod-cidr" + value = "10.128.0.0/11" + } + ] + } +] \ No newline at end of file diff --git a/scenarios/perf-eval/stls-bootstrap-autoscale/terraform-test-inputs/azure-nap-linux.json b/scenarios/perf-eval/stls-bootstrap-autoscale/terraform-test-inputs/azure-nap-linux.json new file mode 100644 index 0000000000..fe80d2d474 --- /dev/null +++ b/scenarios/perf-eval/stls-bootstrap-autoscale/terraform-test-inputs/azure-nap-linux.json @@ -0,0 +1,4 @@ +{ + "run_id" : "123456789", + "region" : "westus2" +} From 5b1bc28ba3f487f8b947e610c423dd18b789df83 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Thu, 4 Dec 2025 10:53:25 -0500 Subject: [PATCH 02/25] test: extra small scale --- pipelines/system/new-pipeline-test.yml | 57 ++++++++++++++++++-------- 1 file changed, 41 insertions(+), 16 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index 63d55f02d9..f9079d5338 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -1,25 +1,50 @@ trigger: none variables: - SCENARIO_TYPE: - SCENARIO_NAME: + SCENARIO_TYPE: perf-eval + SCENARIO_NAME: stls-bootstrap-autoscale stages: - - stage: # format: [_]+ (e.g. azure_eastus2, aws_eastus_westus) + - stage: azure_westus2_small dependsOn: [] jobs: - - template: /jobs/competitive-test.yml # must keep as is + - template: /jobs/competitive-test.yml parameters: - cloud: # e.g. azure, aws - regions: # list of regions - - region1 # e.g. eastus2 - topology: # e.g. cluster-autoscaler - engine: # e.g. clusterloader2 - matrix: # list of test parameters to customize the provisioned resources - : - : - : - max_parallel: # required - credential_type: service_connection # required + cloud: azure + regions: + - westus2 + engine: clusterloader2 + engine_input: + image: "ghcr.io/azure/clusterloader2:v20250423" + topology: karpenter + matrix: + extra-small-scale-on-demand: + cpu_per_node: 4 + node_count: 1 + pod_count: 10 + scale_up_timeout: "5m" + scale_down_timeout: "5m" + node_label_selector: "karpenter.sh/nodepool = default" + node_selector: "{karpenter.sh/nodepool: default}" + loop_count: 20 + warmup_deployment: true + warmup_deployment_template: warmup_deployment.yaml + vm_size: Standard_D4_v5 + capacity_type: on-demand + extra-small-scale-spot: + cpu_per_node: 4 + node_count: 1 + pod_count: 10 + scale_up_timeout: "5m" + scale_down_timeout: "5m" + node_label_selector: "karpenter.sh/nodepool = spot" + node_selector: "{karpenter.sh/nodepool: spot}" + loop_count: 20 + warmup_deployment: true + warmup_deployment_template: warmup_deployment.yaml + vm_size: Standard_D4_v5 + capacity_type: spot + max_parallel: 1 + timeout_in_minutes: 560 + credential_type: service_connection ssh_key_enabled: false - timeout_in_minutes: 60 # if not specified, default is 60 From 3eb53dcde522c7282c83f4c6d37889ef80888406 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Thu, 4 Dec 2025 11:04:03 -0500 Subject: [PATCH 03/25] test: specify tfvars --- pipelines/system/new-pipeline-test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index f9079d5338..d954a12607 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -13,6 +13,8 @@ stages: cloud: azure regions: - westus2 + terraform_input_file_mapping: + - westus2: "scenarios/perf-eval/stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars" engine: clusterloader2 engine_input: image: "ghcr.io/azure/clusterloader2:v20250423" From c1ab69fdb830c0f246d2e4c66e94dfb5873ba749 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Thu, 4 Dec 2025 11:17:24 -0500 Subject: [PATCH 04/25] fix: add karpenter yml --- .../kubernetes/karpenter_nodepool.azure.yml | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 scenarios/perf-eval/stls-bootstrap-autoscale/kubernetes/karpenter_nodepool.azure.yml diff --git a/scenarios/perf-eval/stls-bootstrap-autoscale/kubernetes/karpenter_nodepool.azure.yml b/scenarios/perf-eval/stls-bootstrap-autoscale/kubernetes/karpenter_nodepool.azure.yml new file mode 100644 index 0000000000..deb2653f35 --- /dev/null +++ b/scenarios/perf-eval/stls-bootstrap-autoscale/kubernetes/karpenter_nodepool.azure.yml @@ -0,0 +1,74 @@ +# Shared AKSNodeClass (common for both Spot and On-Demand) +--- +apiVersion: karpenter.azure.com/v1alpha2 +kind: AKSNodeClass +metadata: + name: default + annotations: + kubernetes.io/description: "General purpose AKSNodeClass for running Ubuntu2204 nodes" +spec: + imageFamily: Ubuntu2204 + +# On-Demand NodePool (default) +--- +apiVersion: karpenter.sh/v1 +kind: NodePool +metadata: + name: default + annotations: + kubernetes.io/description: "General purpose On-Demand NodePool" +spec: + disruption: + consolidationPolicy: WhenEmpty + consolidateAfter: 1s + budgets: + - nodes: "100%" + template: + spec: + nodeClassRef: + group: karpenter.azure.com + kind: AKSNodeClass + name: default + expireAfter: Never + requirements: + - key: kubernetes.io/os + operator: In + values: ["linux"] + - key: karpenter.sh/capacity-type + operator: In + values: ["on-demand"] + - key: karpenter.azure.com/sku-name + operator: In + values: [Standard_D2_v5] + +# Spot NodePool +--- +apiVersion: karpenter.sh/v1 +kind: NodePool +metadata: + name: spot + annotations: + kubernetes.io/description: "Spot NodePool for burstable cost-efficient workloads" +spec: + disruption: + consolidationPolicy: WhenEmpty + consolidateAfter: 1s + budgets: + - nodes: "100%" + template: + spec: + nodeClassRef: + group: karpenter.azure.com + kind: AKSNodeClass + name: default + expireAfter: Never + requirements: + - key: kubernetes.io/os + operator: In + values: ["linux"] + - key: karpenter.sh/capacity-type + operator: In + values: ["spot"] + - key: karpenter.azure.com/sku-name + operator: In + values: [Standard_D2_v5] From 61a330ed5fecd101a083369da8c744f49ed87bb5 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Thu, 4 Dec 2025 12:05:19 -0500 Subject: [PATCH 05/25] feat: move stls nap to own folder --- .../kubernetes/karpenter_nodepool.azure.yml | 0 .../terraform-inputs/azure.tfvars} | 2 +- .../terraform-test-inputs/azure.json} | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename scenarios/perf-eval/{stls-bootstrap-autoscale => stls-bootstrap-nap}/kubernetes/karpenter_nodepool.azure.yml (100%) rename scenarios/perf-eval/{stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars => stls-bootstrap-nap/terraform-inputs/azure.tfvars} (95%) rename scenarios/perf-eval/{stls-bootstrap-autoscale/terraform-test-inputs/azure-nap-linux.json => stls-bootstrap-nap/terraform-test-inputs/azure.json} (100%) diff --git a/scenarios/perf-eval/stls-bootstrap-autoscale/kubernetes/karpenter_nodepool.azure.yml b/scenarios/perf-eval/stls-bootstrap-nap/kubernetes/karpenter_nodepool.azure.yml similarity index 100% rename from scenarios/perf-eval/stls-bootstrap-autoscale/kubernetes/karpenter_nodepool.azure.yml rename to scenarios/perf-eval/stls-bootstrap-nap/kubernetes/karpenter_nodepool.azure.yml diff --git a/scenarios/perf-eval/stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars b/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars similarity index 95% rename from scenarios/perf-eval/stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars rename to scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars index fd3ab174eb..023ddc6be2 100644 --- a/scenarios/perf-eval/stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars +++ b/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars @@ -1,5 +1,5 @@ scenario_type = "perf-eval" -scenario_name = "stls-bootstrap-autoscale" +scenario_name = "stls-bootstrap-nap" deletion_delay = "2h" owner = "aks" diff --git a/scenarios/perf-eval/stls-bootstrap-autoscale/terraform-test-inputs/azure-nap-linux.json b/scenarios/perf-eval/stls-bootstrap-nap/terraform-test-inputs/azure.json similarity index 100% rename from scenarios/perf-eval/stls-bootstrap-autoscale/terraform-test-inputs/azure-nap-linux.json rename to scenarios/perf-eval/stls-bootstrap-nap/terraform-test-inputs/azure.json From c63adead2eb79e212a2a35ed93cd61785c961c4e Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Thu, 4 Dec 2025 12:05:37 -0500 Subject: [PATCH 06/25] test: specify sub --- pipelines/system/new-pipeline-test.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index d954a12607..92f7c3cfd7 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -2,7 +2,9 @@ trigger: none variables: SCENARIO_TYPE: perf-eval - SCENARIO_NAME: stls-bootstrap-autoscale + SCENARIO_NAME: stls-bootstrap-nap + +AZURE_SUBSCRIPTION_ID: "f6e2f77f-9959-42ad-87f0-c30a6abc0133" stages: - stage: azure_westus2_small @@ -14,7 +16,9 @@ stages: regions: - westus2 terraform_input_file_mapping: - - westus2: "scenarios/perf-eval/stls-bootstrap-autoscale/terraform-inputs/azure-nap-linux.tfvars" + - westus2: "scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars" + terraform_input_varibles: + subscription_id: $(AZURE_SUBSCRIPTION_ID) engine: clusterloader2 engine_input: image: "ghcr.io/azure/clusterloader2:v20250423" From 16c4f8f5dc1228c379c1139b04a3e37786d4615b Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Thu, 4 Dec 2025 12:06:55 -0500 Subject: [PATCH 07/25] fix: specify sub directly --- pipelines/system/new-pipeline-test.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index 92f7c3cfd7..a140f202b2 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -4,8 +4,6 @@ variables: SCENARIO_TYPE: perf-eval SCENARIO_NAME: stls-bootstrap-nap -AZURE_SUBSCRIPTION_ID: "f6e2f77f-9959-42ad-87f0-c30a6abc0133" - stages: - stage: azure_westus2_small dependsOn: [] @@ -18,7 +16,7 @@ stages: terraform_input_file_mapping: - westus2: "scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars" terraform_input_varibles: - subscription_id: $(AZURE_SUBSCRIPTION_ID) + subscription_id: "f6e2f77f-9959-42ad-87f0-c30a6abc0133" engine: clusterloader2 engine_input: image: "ghcr.io/azure/clusterloader2:v20250423" From 4bad2805854cfc8282d7596cb4457422ca571f5a Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Thu, 4 Dec 2025 18:09:58 +0000 Subject: [PATCH 08/25] test: reduce loop count --- pipelines/system/new-pipeline-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index a140f202b2..abc2ee8fa3 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -30,7 +30,7 @@ stages: scale_down_timeout: "5m" node_label_selector: "karpenter.sh/nodepool = default" node_selector: "{karpenter.sh/nodepool: default}" - loop_count: 20 + loop_count: 1 warmup_deployment: true warmup_deployment_template: warmup_deployment.yaml vm_size: Standard_D4_v5 @@ -43,7 +43,7 @@ stages: scale_down_timeout: "5m" node_label_selector: "karpenter.sh/nodepool = spot" node_selector: "{karpenter.sh/nodepool: spot}" - loop_count: 20 + loop_count: 1 warmup_deployment: true warmup_deployment_template: warmup_deployment.yaml vm_size: Standard_D4_v5 From 73d1c95062fc39f1a59fcc68cb5ec88c86489890 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Thu, 4 Dec 2025 19:22:51 +0000 Subject: [PATCH 09/25] test: large scale test --- pipelines/system/new-pipeline-test.yml | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index abc2ee8fa3..a8cb7ab7d0 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -22,31 +22,31 @@ stages: image: "ghcr.io/azure/clusterloader2:v20250423" topology: karpenter matrix: - extra-small-scale-on-demand: - cpu_per_node: 4 - node_count: 1 - pod_count: 10 - scale_up_timeout: "5m" - scale_down_timeout: "5m" + large-scale-on-demand: + cpu_per_node: 2 + node_count: 1000 + pod_count: 1000 + scale_up_timeout: "60m" + scale_down_timeout: "60m" node_label_selector: "karpenter.sh/nodepool = default" node_selector: "{karpenter.sh/nodepool: default}" loop_count: 1 warmup_deployment: true warmup_deployment_template: warmup_deployment.yaml - vm_size: Standard_D4_v5 + vm_size: Standard_D2ds_v4 capacity_type: on-demand - extra-small-scale-spot: - cpu_per_node: 4 - node_count: 1 - pod_count: 10 - scale_up_timeout: "5m" - scale_down_timeout: "5m" + large-scale-spot: + cpu_per_node: 2 + node_count: 1000 + pod_count: 1000 + scale_up_timeout: "60m" + scale_down_timeout: "60m" node_label_selector: "karpenter.sh/nodepool = spot" node_selector: "{karpenter.sh/nodepool: spot}" loop_count: 1 warmup_deployment: true warmup_deployment_template: warmup_deployment.yaml - vm_size: Standard_D4_v5 + vm_size: Standard_D2ds_v4 capacity_type: spot max_parallel: 1 timeout_in_minutes: 560 From 7f942533094324459181d526f064ada80417b078 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Fri, 5 Dec 2025 15:04:09 -0500 Subject: [PATCH 10/25] feat: add stls nap pipeline --- .../node-auto-provisioning.yml | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml diff --git a/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml b/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml new file mode 100644 index 0000000000..661b22a574 --- /dev/null +++ b/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml @@ -0,0 +1,65 @@ +trigger: none +schedules: + # Azure Large Scale Schedule + - cron: "0 3 * * *" + displayName: "3:00 AM Daily" + branches: + include: + - main + always: true + +variables: + SCENARIO_TYPE: perf-eval + SCENARIO_NAME: stls-bootstrap-nap + +stages: + - stage: azure_westus2_large + condition: | + or( + eq(variables['Build.CronSchedule.DisplayName'], 'Every day at 6:00 AM'), + eq(variables['Build.Reason'], 'Manual') + ) + dependsOn: [] + jobs: + - template: /jobs/competitive-test.yml + parameters: + cloud: azure + regions: + - westus2 + terraform_input_file_mapping: + - westus2: "scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars" + engine: clusterloader2 + engine_input: + image: "ghcr.io/azure/clusterloader2:v20250423" + topology: karpenter + matrix: + large-scale-on-demand: + cpu_per_node: 2 + node_count: 1000 + pod_count: 1000 + scale_up_timeout: "60m" + scale_down_timeout: "60m" + node_label_selector: "karpenter.sh/nodepool = default" + node_selector: "{karpenter.sh/nodepool: default}" + loop_count: 1 + warmup_deployment: true + warmup_deployment_template: warmup_deployment.yaml + vm_size: Standard_D2ds_v4 + capacity_type: on-demand + large-scale-spot: + cpu_per_node: 2 + node_count: 1000 + pod_count: 1000 + scale_up_timeout: "60m" + scale_down_timeout: "60m" + node_label_selector: "karpenter.sh/nodepool = spot" + node_selector: "{karpenter.sh/nodepool: spot}" + loop_count: 1 + warmup_deployment: true + warmup_deployment_template: warmup_deployment.yaml + vm_size: Standard_D2ds_v4 + capacity_type: spot + max_parallel: 1 + timeout_in_minutes: 360 + credential_type: service_connection + ssh_key_enabled: false \ No newline at end of file From fadac3624b22f3d649c22c395d17b4f6a7fc0a45 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Fri, 5 Dec 2025 15:04:58 -0500 Subject: [PATCH 11/25] test: revert test yaml --- pipelines/system/new-pipeline-test.yml | 61 +++++++------------------- 1 file changed, 16 insertions(+), 45 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index a8cb7ab7d0..63d55f02d9 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -1,54 +1,25 @@ trigger: none variables: - SCENARIO_TYPE: perf-eval - SCENARIO_NAME: stls-bootstrap-nap + SCENARIO_TYPE: + SCENARIO_NAME: stages: - - stage: azure_westus2_small + - stage: # format: [_]+ (e.g. azure_eastus2, aws_eastus_westus) dependsOn: [] jobs: - - template: /jobs/competitive-test.yml + - template: /jobs/competitive-test.yml # must keep as is parameters: - cloud: azure - regions: - - westus2 - terraform_input_file_mapping: - - westus2: "scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars" - terraform_input_varibles: - subscription_id: "f6e2f77f-9959-42ad-87f0-c30a6abc0133" - engine: clusterloader2 - engine_input: - image: "ghcr.io/azure/clusterloader2:v20250423" - topology: karpenter - matrix: - large-scale-on-demand: - cpu_per_node: 2 - node_count: 1000 - pod_count: 1000 - scale_up_timeout: "60m" - scale_down_timeout: "60m" - node_label_selector: "karpenter.sh/nodepool = default" - node_selector: "{karpenter.sh/nodepool: default}" - loop_count: 1 - warmup_deployment: true - warmup_deployment_template: warmup_deployment.yaml - vm_size: Standard_D2ds_v4 - capacity_type: on-demand - large-scale-spot: - cpu_per_node: 2 - node_count: 1000 - pod_count: 1000 - scale_up_timeout: "60m" - scale_down_timeout: "60m" - node_label_selector: "karpenter.sh/nodepool = spot" - node_selector: "{karpenter.sh/nodepool: spot}" - loop_count: 1 - warmup_deployment: true - warmup_deployment_template: warmup_deployment.yaml - vm_size: Standard_D2ds_v4 - capacity_type: spot - max_parallel: 1 - timeout_in_minutes: 560 - credential_type: service_connection + cloud: # e.g. azure, aws + regions: # list of regions + - region1 # e.g. eastus2 + topology: # e.g. cluster-autoscaler + engine: # e.g. clusterloader2 + matrix: # list of test parameters to customize the provisioned resources + : + : + : + max_parallel: # required + credential_type: service_connection # required ssh_key_enabled: false + timeout_in_minutes: 60 # if not specified, default is 60 From 0fc1f789672187498a14814f5315e14adfdfea3a Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Fri, 5 Dec 2025 15:10:08 -0500 Subject: [PATCH 12/25] chore: linting --- .../Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml b/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml index 661b22a574..a61b3654ae 100644 --- a/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml +++ b/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml @@ -62,4 +62,4 @@ stages: max_parallel: 1 timeout_in_minutes: 360 credential_type: service_connection - ssh_key_enabled: false \ No newline at end of file + ssh_key_enabled: false From 0bdb439008b55e44d173c8388c044c5b0ad91877 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Mon, 5 Jan 2026 16:17:24 -0500 Subject: [PATCH 13/25] feat: add support for mc tags --- modules/terraform/azure/aks-cli/main.tf | 2 +- modules/terraform/azure/aks-cli/variables.tf | 1 + modules/terraform/azure/variables.tf | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/terraform/azure/aks-cli/main.tf b/modules/terraform/azure/aks-cli/main.tf index 305f878eed..78cea91862 100644 --- a/modules/terraform/azure/aks-cli/main.tf +++ b/modules/terraform/azure/aks-cli/main.tf @@ -1,6 +1,6 @@ locals { tags_list = [ - for key, value in merge(var.tags, { "role" = var.aks_cli_config.role }) : + for key, value in merge(var.tags, var.aks_cli_config.managed_cluster_tags, { "role" = var.aks_cli_config.role }) : format("%s=%s", key, value) ] diff --git a/modules/terraform/azure/aks-cli/variables.tf b/modules/terraform/azure/aks-cli/variables.tf index 937c4b6b61..fe0614a2a3 100644 --- a/modules/terraform/azure/aks-cli/variables.tf +++ b/modules/terraform/azure/aks-cli/variables.tf @@ -55,6 +55,7 @@ variable "aks_cli_config" { use_aks_preview_private_build = optional(bool, false) api_server_subnet_name = optional(string, false) enable_apiserver_vnet_integration = optional(bool, false) + managed_cluster_tags = optional(map(string), {}) default_node_pool = optional(object({ name = string node_count = number diff --git a/modules/terraform/azure/variables.tf b/modules/terraform/azure/variables.tf index 8495bd64df..ef95768d0b 100644 --- a/modules/terraform/azure/variables.tf +++ b/modules/terraform/azure/variables.tf @@ -354,6 +354,7 @@ variable "aks_cli_config_list" { use_aks_preview_private_build = optional(bool, false) api_server_subnet_name = optional(string, false) enable_apiserver_vnet_integration = optional(bool, false) + managed_cluster_tags = optional(map(string), {}) default_node_pool = optional(object({ name = string From dcdbada0cd80abfa17e5358cb6b0d30d40a46321 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Mon, 5 Jan 2026 16:17:38 -0500 Subject: [PATCH 14/25] feat: add nap tag to tfvars --- .../perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars b/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars index 023ddc6be2..027d1dade3 100644 --- a/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars +++ b/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars @@ -10,6 +10,9 @@ aks_cli_config_list = [ role = "nap" aks_name = "nap" sku_tier = "standard" + managed_cluster_tags = { + "enable-stls-nap" = "true" + } aks_custom_headers = [ "AKSHTTPCustomFeatures=Microsoft.ContainerService/EnableSecureTLSBootstrapping" ] From 1018b3c21995c7d547604e7519370de7ff217bc1 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Mon, 5 Jan 2026 16:18:19 -0500 Subject: [PATCH 15/25] test: small test --- pipelines/system/new-pipeline-test.yml | 63 +++++++++++++++++++------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index 63d55f02d9..83763bb9cb 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -1,25 +1,54 @@ trigger: none variables: - SCENARIO_TYPE: - SCENARIO_NAME: + SCENARIO_TYPE: perf-eval + SCENARIO_NAME: stls-bootstrap-nap stages: - - stage: # format: [_]+ (e.g. azure_eastus2, aws_eastus_westus) + - stage: azure_westus2_small dependsOn: [] jobs: - - template: /jobs/competitive-test.yml # must keep as is + - template: /jobs/competitive-test.yml parameters: - cloud: # e.g. azure, aws - regions: # list of regions - - region1 # e.g. eastus2 - topology: # e.g. cluster-autoscaler - engine: # e.g. clusterloader2 - matrix: # list of test parameters to customize the provisioned resources - : - : - : - max_parallel: # required - credential_type: service_connection # required - ssh_key_enabled: false - timeout_in_minutes: 60 # if not specified, default is 60 + cloud: azure + regions: + - westus2 + terraform_input_file_mapping: + - westus2: "scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars" + terraform_input_varibles: + subscription_id: "f6e2f77f-9959-42ad-87f0-c30a6abc0133" + engine: clusterloader2 + engine_input: + image: "ghcr.io/azure/clusterloader2:v20250423" + topology: karpenter + matrix: + extra-small-scale-on-demand: + cpu_per_node: 4 + node_count: 1 + pod_count: 1 + scale_up_timeout: "5m" + scale_down_timeout: "5m" + node_label_selector: "karpenter.sh/nodepool = default" + node_selector: "{karpenter.sh/nodepool: default}" + loop_count: 1 + warmup_deployment: true + warmup_deployment_template: warmup_deployment.yaml + vm_size: Standard_D4_v5 + capacity_type: on-demand + extra-small-scale-spot: + cpu_per_node: 4 + node_count: 1 + pod_count: 1 + scale_up_timeout: "5m" + scale_down_timeout: "5m" + node_label_selector: "karpenter.sh/nodepool = spot" + node_selector: "{karpenter.sh/nodepool: spot}" + loop_count: 1 + warmup_deployment: true + warmup_deployment_template: warmup_deployment.yaml + vm_size: Standard_D4_v5 + capacity_type: spot + max_parallel: 1 + timeout_in_minutes: 560 + credential_type: service_connection + ssh_key_enabled: false \ No newline at end of file From 152c4e7aa976de02b03cc2e3dc6fd9e6d76dbea6 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Mon, 5 Jan 2026 16:25:16 -0500 Subject: [PATCH 16/25] test: large scale test --- pipelines/system/new-pipeline-test.yml | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index 83763bb9cb..50481458c4 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -22,31 +22,31 @@ stages: image: "ghcr.io/azure/clusterloader2:v20250423" topology: karpenter matrix: - extra-small-scale-on-demand: - cpu_per_node: 4 - node_count: 1 - pod_count: 1 - scale_up_timeout: "5m" - scale_down_timeout: "5m" + large-scale-on-demand: + cpu_per_node: 2 + node_count: 1000 + pod_count: 1000 + scale_up_timeout: "60m" + scale_down_timeout: "60m" node_label_selector: "karpenter.sh/nodepool = default" node_selector: "{karpenter.sh/nodepool: default}" loop_count: 1 warmup_deployment: true warmup_deployment_template: warmup_deployment.yaml - vm_size: Standard_D4_v5 + vm_size: Standard_D2ds_v4 capacity_type: on-demand - extra-small-scale-spot: - cpu_per_node: 4 - node_count: 1 - pod_count: 1 - scale_up_timeout: "5m" - scale_down_timeout: "5m" + large-scale-spot: + cpu_per_node: 2 + node_count: 1000 + pod_count: 1000 + scale_up_timeout: "60m" + scale_down_timeout: "60m" node_label_selector: "karpenter.sh/nodepool = spot" node_selector: "{karpenter.sh/nodepool: spot}" loop_count: 1 warmup_deployment: true warmup_deployment_template: warmup_deployment.yaml - vm_size: Standard_D4_v5 + vm_size: Standard_D2ds_v4 capacity_type: spot max_parallel: 1 timeout_in_minutes: 560 From 35685f9913af6c76dbb676cfc245fee7bbac2116 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Tue, 6 Jan 2026 09:53:44 -0500 Subject: [PATCH 17/25] test: spot only --- pipelines/system/new-pipeline-test.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index 50481458c4..786f48a6ed 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -22,19 +22,6 @@ stages: image: "ghcr.io/azure/clusterloader2:v20250423" topology: karpenter matrix: - large-scale-on-demand: - cpu_per_node: 2 - node_count: 1000 - pod_count: 1000 - scale_up_timeout: "60m" - scale_down_timeout: "60m" - node_label_selector: "karpenter.sh/nodepool = default" - node_selector: "{karpenter.sh/nodepool: default}" - loop_count: 1 - warmup_deployment: true - warmup_deployment_template: warmup_deployment.yaml - vm_size: Standard_D2ds_v4 - capacity_type: on-demand large-scale-spot: cpu_per_node: 2 node_count: 1000 From e75271e7a08249edd640e9b8c1b663a9b5f8857c Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Tue, 6 Jan 2026 12:07:45 -0500 Subject: [PATCH 18/25] test: small scale spot --- pipelines/system/new-pipeline-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index 786f48a6ed..727157fce4 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -24,8 +24,8 @@ stages: matrix: large-scale-spot: cpu_per_node: 2 - node_count: 1000 - pod_count: 1000 + node_count: 10 + pod_count: 100 scale_up_timeout: "60m" scale_down_timeout: "60m" node_label_selector: "karpenter.sh/nodepool = spot" From 67e93b2211b2b0cb822075e32098a853d6b2f5a7 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Tue, 6 Jan 2026 12:48:01 -0500 Subject: [PATCH 19/25] test: medium sccale spot --- pipelines/system/new-pipeline-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index 727157fce4..be3fc95bdf 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -24,8 +24,8 @@ stages: matrix: large-scale-spot: cpu_per_node: 2 - node_count: 10 - pod_count: 100 + node_count: 500 + pod_count: 500 scale_up_timeout: "60m" scale_down_timeout: "60m" node_label_selector: "karpenter.sh/nodepool = spot" From 4df1dd162db2f2eac88bf039e05fc09cdf81a726 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Wed, 7 Jan 2026 17:32:52 -0500 Subject: [PATCH 20/25] feat: test on-demand only --- .../node-auto-provisioning.yml | 13 ------------- pipelines/system/new-pipeline-test.yml | 12 ++++++------ 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml b/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml index a61b3654ae..91f776130b 100644 --- a/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml +++ b/pipelines/perf-eval/Secure TLS Bootstrap Benchmark/node-auto-provisioning.yml @@ -46,19 +46,6 @@ stages: warmup_deployment_template: warmup_deployment.yaml vm_size: Standard_D2ds_v4 capacity_type: on-demand - large-scale-spot: - cpu_per_node: 2 - node_count: 1000 - pod_count: 1000 - scale_up_timeout: "60m" - scale_down_timeout: "60m" - node_label_selector: "karpenter.sh/nodepool = spot" - node_selector: "{karpenter.sh/nodepool: spot}" - loop_count: 1 - warmup_deployment: true - warmup_deployment_template: warmup_deployment.yaml - vm_size: Standard_D2ds_v4 - capacity_type: spot max_parallel: 1 timeout_in_minutes: 360 credential_type: service_connection diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index be3fc95bdf..5716e9b073 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -22,19 +22,19 @@ stages: image: "ghcr.io/azure/clusterloader2:v20250423" topology: karpenter matrix: - large-scale-spot: + large-scale-on-demand: cpu_per_node: 2 - node_count: 500 - pod_count: 500 + node_count: 1000 + pod_count: 1000 scale_up_timeout: "60m" scale_down_timeout: "60m" - node_label_selector: "karpenter.sh/nodepool = spot" - node_selector: "{karpenter.sh/nodepool: spot}" + node_label_selector: "karpenter.sh/nodepool = default" + node_selector: "{karpenter.sh/nodepool: default}" loop_count: 1 warmup_deployment: true warmup_deployment_template: warmup_deployment.yaml vm_size: Standard_D2ds_v4 - capacity_type: spot + capacity_type: on-demand max_parallel: 1 timeout_in_minutes: 560 credential_type: service_connection From c211a8e9aa6a3c5933de14eec9e34147d4ca07b3 Mon Sep 17 00:00:00 2001 From: Kanan Mehta Date: Wed, 7 Jan 2026 17:33:15 -0500 Subject: [PATCH 21/25] test: revert test yaml --- pipelines/system/new-pipeline-test.yml | 50 +++++++++----------------- 1 file changed, 17 insertions(+), 33 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index 5716e9b073..63d55f02d9 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -1,41 +1,25 @@ trigger: none variables: - SCENARIO_TYPE: perf-eval - SCENARIO_NAME: stls-bootstrap-nap + SCENARIO_TYPE: + SCENARIO_NAME: stages: - - stage: azure_westus2_small + - stage: # format: [_]+ (e.g. azure_eastus2, aws_eastus_westus) dependsOn: [] jobs: - - template: /jobs/competitive-test.yml + - template: /jobs/competitive-test.yml # must keep as is parameters: - cloud: azure - regions: - - westus2 - terraform_input_file_mapping: - - westus2: "scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars" - terraform_input_varibles: - subscription_id: "f6e2f77f-9959-42ad-87f0-c30a6abc0133" - engine: clusterloader2 - engine_input: - image: "ghcr.io/azure/clusterloader2:v20250423" - topology: karpenter - matrix: - large-scale-on-demand: - cpu_per_node: 2 - node_count: 1000 - pod_count: 1000 - scale_up_timeout: "60m" - scale_down_timeout: "60m" - node_label_selector: "karpenter.sh/nodepool = default" - node_selector: "{karpenter.sh/nodepool: default}" - loop_count: 1 - warmup_deployment: true - warmup_deployment_template: warmup_deployment.yaml - vm_size: Standard_D2ds_v4 - capacity_type: on-demand - max_parallel: 1 - timeout_in_minutes: 560 - credential_type: service_connection - ssh_key_enabled: false \ No newline at end of file + cloud: # e.g. azure, aws + regions: # list of regions + - region1 # e.g. eastus2 + topology: # e.g. cluster-autoscaler + engine: # e.g. clusterloader2 + matrix: # list of test parameters to customize the provisioned resources + : + : + : + max_parallel: # required + credential_type: service_connection # required + ssh_key_enabled: false + timeout_in_minutes: 60 # if not specified, default is 60 From 7bec4737a9acf63bff20fb3f61b5d176f432d2f9 Mon Sep 17 00:00:00 2001 From: vittoria salim Date: Fri, 9 Jan 2026 16:23:03 +1100 Subject: [PATCH 22/25] make tags to be more modular --- modules/terraform/azure/main.tf | 19 +++++++++++-------- modules/terraform/azure/variables.tf | 6 ++++++ .../terraform-inputs/azure.tfvars | 12 ++++++------ 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/modules/terraform/azure/main.tf b/modules/terraform/azure/main.tf index 76e278c0d5..6090a91b28 100644 --- a/modules/terraform/azure/main.tf +++ b/modules/terraform/azure/main.tf @@ -13,14 +13,17 @@ locals { aks_aad_enabled = lookup(var.json_input, "aks_aad_enabled", false) enable_apiserver_vnet_integration = lookup(var.json_input, "enable_apiserver_vnet_integration", false) - tags = { - "owner" = var.owner - "scenario" = "${var.scenario_type}-${var.scenario_name}" - "creation_time" = timestamp() - "deletion_due_time" = timeadd(timestamp(), var.deletion_delay) - "run_id" = local.run_id - "SkipAKSCluster" = "1" - } + tags = merge( + var.tags, + { + "owner" = var.owner + "scenario" = "${var.scenario_type}-${var.scenario_name}" + "creation_time" = timestamp() + "deletion_due_time" = timeadd(timestamp(), var.deletion_delay) + "run_id" = local.run_id + "SkipAKSCluster" = "1" + } + ) network_config_map = { for network in var.network_config_list : network.role => network } diff --git a/modules/terraform/azure/variables.tf b/modules/terraform/azure/variables.tf index ef95768d0b..814792e5fd 100644 --- a/modules/terraform/azure/variables.tf +++ b/modules/terraform/azure/variables.tf @@ -72,6 +72,12 @@ variable "deletion_delay" { default = "2h" } +variable "tags" { + description = "Optional tags to apply to all resources" + type = map(string) + default = {} +} + variable "public_ip_config_list" { description = "A list of public IP names" type = list(object({ diff --git a/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars b/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars index 027d1dade3..6e266f3eb5 100644 --- a/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars +++ b/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars @@ -2,17 +2,17 @@ scenario_type = "perf-eval" scenario_name = "stls-bootstrap-nap" deletion_delay = "2h" owner = "aks" +managed_cluster_tags = { + "enable-stls-nap" = "true" +} aks_config_list = [] aks_cli_config_list = [ { - role = "nap" - aks_name = "nap" - sku_tier = "standard" - managed_cluster_tags = { - "enable-stls-nap" = "true" - } + role = "nap" + aks_name = "nap" + sku_tier = "standard" aks_custom_headers = [ "AKSHTTPCustomFeatures=Microsoft.ContainerService/EnableSecureTLSBootstrapping" ] From 1db573dccdbbaa53d954cdc25bb029d444b4221e Mon Sep 17 00:00:00 2001 From: vittoria salim Date: Fri, 9 Jan 2026 16:33:30 +1100 Subject: [PATCH 23/25] test tags --- pipelines/system/new-pipeline-test.yml | 59 +++++++++++++++++++------- 1 file changed, 43 insertions(+), 16 deletions(-) diff --git a/pipelines/system/new-pipeline-test.yml b/pipelines/system/new-pipeline-test.yml index 63d55f02d9..9e4cf1b9d6 100644 --- a/pipelines/system/new-pipeline-test.yml +++ b/pipelines/system/new-pipeline-test.yml @@ -1,25 +1,52 @@ trigger: none +schedules: + # Azure Large Scale Schedule + - cron: "0 3 * * *" + displayName: "3:00 AM Daily" + branches: + include: + - main + always: true variables: - SCENARIO_TYPE: - SCENARIO_NAME: + SCENARIO_TYPE: perf-eval + SCENARIO_NAME: stls-bootstrap-nap stages: - - stage: # format: [_]+ (e.g. azure_eastus2, aws_eastus_westus) + - stage: azure_westus2_large + condition: | + or( + eq(variables['Build.CronSchedule.DisplayName'], 'Every day at 6:00 AM'), + eq(variables['Build.Reason'], 'Manual') + ) dependsOn: [] jobs: - - template: /jobs/competitive-test.yml # must keep as is + - template: /jobs/competitive-test.yml parameters: - cloud: # e.g. azure, aws - regions: # list of regions - - region1 # e.g. eastus2 - topology: # e.g. cluster-autoscaler - engine: # e.g. clusterloader2 - matrix: # list of test parameters to customize the provisioned resources - : - : - : - max_parallel: # required - credential_type: service_connection # required + cloud: azure + regions: + - westus2 + terraform_input_file_mapping: + - westus2: "scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars" + engine: clusterloader2 + engine_input: + image: "ghcr.io/azure/clusterloader2:v20250423" + topology: karpenter + matrix: + large-scale-on-demand: + cpu_per_node: 2 + node_count: 50 + pod_count: 50 + scale_up_timeout: "60m" + scale_down_timeout: "60m" + node_label_selector: "karpenter.sh/nodepool = default" + node_selector: "{karpenter.sh/nodepool: default}" + loop_count: 1 + warmup_deployment: true + warmup_deployment_template: warmup_deployment.yaml + vm_size: Standard_D2ds_v4 + capacity_type: on-demand + max_parallel: 1 + timeout_in_minutes: 360 + credential_type: service_connection ssh_key_enabled: false - timeout_in_minutes: 60 # if not specified, default is 60 From edf1654ac18daf2493b6b14e94a915d1eb0ec8d1 Mon Sep 17 00:00:00 2001 From: vittoria salim Date: Fri, 9 Jan 2026 16:58:25 +1100 Subject: [PATCH 24/25] fix tags --- .../stls-bootstrap-nap/terraform-inputs/azure.tfvars | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars b/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars index 6e266f3eb5..d3110ea868 100644 --- a/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars +++ b/scenarios/perf-eval/stls-bootstrap-nap/terraform-inputs/azure.tfvars @@ -2,17 +2,17 @@ scenario_type = "perf-eval" scenario_name = "stls-bootstrap-nap" deletion_delay = "2h" owner = "aks" -managed_cluster_tags = { - "enable-stls-nap" = "true" +tags = { + enable-stls-nap = "True" } aks_config_list = [] aks_cli_config_list = [ { - role = "nap" - aks_name = "nap" - sku_tier = "standard" + role = "nap" + aks_name = "nap" + sku_tier = "standard" aks_custom_headers = [ "AKSHTTPCustomFeatures=Microsoft.ContainerService/EnableSecureTLSBootstrapping" ] From 70d5ef0b06070a34f84bbeed30925784dab1fc30 Mon Sep 17 00:00:00 2001 From: vittoria salim Date: Fri, 9 Jan 2026 17:17:44 +1100 Subject: [PATCH 25/25] enable optional tags --- modules/terraform/azure/aks-cli/main.tf | 2 +- modules/terraform/azure/aks-cli/variables.tf | 1 - modules/terraform/azure/variables.tf | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/terraform/azure/aks-cli/main.tf b/modules/terraform/azure/aks-cli/main.tf index 78cea91862..305f878eed 100644 --- a/modules/terraform/azure/aks-cli/main.tf +++ b/modules/terraform/azure/aks-cli/main.tf @@ -1,6 +1,6 @@ locals { tags_list = [ - for key, value in merge(var.tags, var.aks_cli_config.managed_cluster_tags, { "role" = var.aks_cli_config.role }) : + for key, value in merge(var.tags, { "role" = var.aks_cli_config.role }) : format("%s=%s", key, value) ] diff --git a/modules/terraform/azure/aks-cli/variables.tf b/modules/terraform/azure/aks-cli/variables.tf index fe0614a2a3..937c4b6b61 100644 --- a/modules/terraform/azure/aks-cli/variables.tf +++ b/modules/terraform/azure/aks-cli/variables.tf @@ -55,7 +55,6 @@ variable "aks_cli_config" { use_aks_preview_private_build = optional(bool, false) api_server_subnet_name = optional(string, false) enable_apiserver_vnet_integration = optional(bool, false) - managed_cluster_tags = optional(map(string), {}) default_node_pool = optional(object({ name = string node_count = number diff --git a/modules/terraform/azure/variables.tf b/modules/terraform/azure/variables.tf index 814792e5fd..c1dea6d316 100644 --- a/modules/terraform/azure/variables.tf +++ b/modules/terraform/azure/variables.tf @@ -360,7 +360,6 @@ variable "aks_cli_config_list" { use_aks_preview_private_build = optional(bool, false) api_server_subnet_name = optional(string, false) enable_apiserver_vnet_integration = optional(bool, false) - managed_cluster_tags = optional(map(string), {}) default_node_pool = optional(object({ name = string