diff --git a/pipelines/perf-eval/Autoscale Benchmark/cluster-autoscaler-benchmark-nodes200-pods200.yml b/pipelines/perf-eval/Autoscale Benchmark/cluster-autoscaler-benchmark-nodes200-pods200.yml new file mode 100644 index 0000000000..9b83c1c05f --- /dev/null +++ b/pipelines/perf-eval/Autoscale Benchmark/cluster-autoscaler-benchmark-nodes200-pods200.yml @@ -0,0 +1,67 @@ +trigger: none +schedules: + - cron: "0 16 * * *" + displayName: "Every day at 4:00 PM" + branches: + include: + - main + always: true + +variables: + SCENARIO_TYPE: perf-eval + SCENARIO_NAME: cas-c2n200p200 + SCENARIO_VERSION: main + +stages: + - stage: azure_eastus2 + dependsOn: [] + jobs: + - template: /jobs/competitive-test.yml + parameters: + cloud: azure + regions: + - eastus2 + engine: clusterloader2 + engine_input: + image: "ghcr.io/azure/clusterloader2:v20241002" + topology: cluster-autoscaler + matrix: + c2-n200-p200: + cpu_per_node: 2 + node_count: 200 + pod_count: 200 + scale_up_timeout: "15m" + scale_down_timeout: "15m" + node_label_selector: "cas = dedicated" + node_selector: "{cas: dedicated}" + loop_count: 1 + max_parallel: 1 + timeout_in_minutes: 180 + credential_type: service_connection + ssh_key_enabled: false + - stage: aws_eastus2 + dependsOn: [] + jobs: + - template: /jobs/competitive-test.yml + parameters: + cloud: aws + regions: + - us-east-2 + engine: clusterloader2 + engine_input: + image: "ghcr.io/azure/clusterloader2:v20241002" + topology: cluster-autoscaler + matrix: + c2-n200-p200: + cpu_per_node: 2 + node_count: 200 + pod_count: 200 + scale_up_timeout: "15m" + scale_down_timeout: "15m" + node_label_selector: "cas = dedicated" + node_selector: "{cas: dedicated}" + loop_count: 1 + max_parallel: 1 + timeout_in_minutes: 180 + credential_type: service_connection + ssh_key_enabled: false diff --git a/scenarios/perf-eval/cas-c2n200p200/terraform-inputs/aws.tfvars b/scenarios/perf-eval/cas-c2n200p200/terraform-inputs/aws.tfvars new file mode 100644 index 0000000000..808e58c2c5 --- /dev/null +++ b/scenarios/perf-eval/cas-c2n200p200/terraform-inputs/aws.tfvars @@ -0,0 +1,103 @@ +scenario_type = "perf-eval" +scenario_name = "cas-c2n200p200" +deletion_delay = "2h" +owner = "aks" + +network_config_list = [ + { + role = "cas" + vpc_name = "cas-vpc" + vpc_cidr_block = "10.0.0.0/16" + subnet = [ + { + name = "cas-subnet" + cidr_block = "10.0.32.0/19" + zone_suffix = "a" + map_public_ip_on_launch = true + }, + { + name = "cas-subnet-2" + cidr_block = "10.0.64.0/19" + zone_suffix = "b" + map_public_ip_on_launch = true + }, + { + name = "cas-subnet-3" + cidr_block = "10.0.96.0/19" + zone_suffix = "c" + map_public_ip_on_launch = true + } + ] + security_group_name = "cas-sg" + route_tables = [ + { + name = "internet-rt" + cidr_block = "0.0.0.0/0" + } + ], + route_table_associations = [ + { + name = "cas-subnet-rt-assoc" + subnet_name = "cas-subnet" + route_table_name = "internet-rt" + }, + { + name = "cas-subnet-rt-assoc-2" + subnet_name = "cas-subnet-2" + route_table_name = "internet-rt" + }, + { + name = "cas-subnet-rt-assoc-3" + subnet_name = "cas-subnet-3" + route_table_name = "internet-rt" + } + ] + sg_rules = { + ingress = [] + egress = [ + { + from_port = 0 + to_port = 0 + protocol = "-1" + cidr_block = "0.0.0.0/0" + } + ] + } + } +] + +eks_config_list = [{ + role = "cas" + eks_name = "cas-c2n200p200" + enable_cluster_autoscaler = true + vpc_name = "cas-vpc" + policy_arns = ["AmazonEKSClusterPolicy", "AmazonEKSVPCResourceController", "AmazonEKSWorkerNodePolicy", "AmazonEKS_CNI_Policy", "AmazonEC2ContainerRegistryReadOnly", "AmazonSSMManagedInstanceCore"] + eks_managed_node_groups = [ + { + name = "default" + ami_type = "AL2_x86_64" + instance_types = ["m4.large"] + min_size = 5 + max_size = 5 + desired_size = 5 + capacity_type = "ON_DEMAND" + }, + { + name = "userpool" + ami_type = "AL2_x86_64" + instance_types = ["m6i.large"] + min_size = 0 + max_size = 200 + desired_size = 0 + capacity_type = "ON_DEMAND" + labels = { "cas" = "dedicated" } + taints = [] + } + ] + eks_addons = [] + kubernetes_version = "1.31" + auto_scaler_profile = { + scale_down_delay_after_add = "0m" + scale_down_unneeded = "0m" + } +}] diff --git a/scenarios/perf-eval/cas-c2n200p200/terraform-inputs/azure.tfvars b/scenarios/perf-eval/cas-c2n200p200/terraform-inputs/azure.tfvars new file mode 100644 index 0000000000..9db1fe7e78 --- /dev/null +++ b/scenarios/perf-eval/cas-c2n200p200/terraform-inputs/azure.tfvars @@ -0,0 +1,44 @@ +scenario_type = "perf-eval" +scenario_name = "cas-c2n200p200" +deletion_delay = "2h" +owner = "aks" + +aks_config_list = [ + { + role = "cas" + aks_name = "cas-c2n200p200" + dns_prefix = "cas" + subnet_name = "aks-network" + sku_tier = "Standard" + network_profile = { + network_plugin = "azure" + network_plugin_mode = "overlay" + } + default_node_pool = { + name = "default" + node_count = 5 + auto_scaling_enabled = false + vm_size = "Standard_D4_v3" + os_disk_type = "Managed" + only_critical_addons_enabled = false + temporary_name_for_rotation = "defaulttmp" + } + extra_node_pool = [ + { + name = "userpool" + node_count = 0 + min_count = 0 + max_count = 200 + auto_scaling_enabled = true + vm_size = "Standard_D2_v5" + max_pods = 110 + node_labels = { "cas" = "dedicated" } + } + ] + kubernetes_version = "1.31" + auto_scaler_profile = { + scale_down_delay_after_add = "0m" + scale_down_unneeded = "0m" + } + } +] diff --git a/scenarios/perf-eval/cas-c2n200p200/terraform-test-inputs/aws.json b/scenarios/perf-eval/cas-c2n200p200/terraform-test-inputs/aws.json new file mode 100644 index 0000000000..cb30052b14 --- /dev/null +++ b/scenarios/perf-eval/cas-c2n200p200/terraform-test-inputs/aws.json @@ -0,0 +1,4 @@ +{ + "run_id" : "123456789", + "region" : "us-east-2" +} diff --git a/scenarios/perf-eval/cas-c2n200p200/terraform-test-inputs/azure.json b/scenarios/perf-eval/cas-c2n200p200/terraform-test-inputs/azure.json new file mode 100644 index 0000000000..2229b1696b --- /dev/null +++ b/scenarios/perf-eval/cas-c2n200p200/terraform-test-inputs/azure.json @@ -0,0 +1,4 @@ +{ + "run_id" : "123456789", + "region" : "eastus2" +}