Skip to content

Commit

Permalink
Add pipeline for konnectivity agent autoscaler performance
Browse files Browse the repository at this point in the history
Signed-off-by: Kartik Joshi <[email protected]>
  • Loading branch information
kartikjoshi21 committed Jan 20, 2025
1 parent 0ad5629 commit d7c0a7f
Show file tree
Hide file tree
Showing 8 changed files with 199 additions and 0 deletions.
40 changes: 40 additions & 0 deletions pipelines/perf-eval/CRI Autoscale Benchmark/cri-autoscale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
trigger: none
#schedules:

Check failure on line 2 in pipelines/perf-eval/CRI Autoscale Benchmark/cri-autoscale.yml

View workflow job for this annotation

GitHub Actions / yaml-validation

2:3 [comments-indentation] comment not indented like content
#- cron: "0 */12 * * *"
# displayName: "Every 12 Hours"
# branches:
# include:
# - main
# always: true

variables:
SCENARIO_TYPE: perf-eval
SCENARIO_NAME: konnectivity-autoscale
SCENARIO_VERSION: main

stages:
- stage: azure_eastus
dependsOn: []
jobs:
- template: /jobs/competitive-test.yml
parameters:
cloud: azure
regions:
- westeurope
engine: clusterloader2
engine_input:
image: "ghcr.io/azure/clusterloader2:v20241016"
topology: cri-autoscale
matrix:
n10:
node_count: 10
scale_up_timeout: "10m"
scale_down_timeout: "10m"
n100:
node_count: 100
scale_up_timeout: "15m"
scale_down_timeout: "15m"
max_parallel: 2
timeout_in_minutes: 240
credential_type: service_connection
ssh_key_enabled: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
scenario_type = "perf-eval"
scenario_name = "konnectivity-autoscale"
deletion_delay = "240h"
owner = "aks"

network_config_list = [
{
role = "konnectivity"
vnet_name = "cri-autoscale-vnet"
vnet_address_space = "10.0.0.0/9"
subnet = [
{
name = "cri-autoscale-subnet-1"
address_prefix = "10.0.0.0/22"
}
]
network_security_group_name = ""
nic_public_ip_associations = []
nsr_rules = []
}
]

aks_config_list = [
{
role = "konnectivity"
aks_name = "konnectivity-autoscale"
dns_prefix = "cl2"
subnet_name = "aks-network"
sku_tier = "Standard"
network_profile = {
network_plugin = "azure"
network_plugin_mode = "overlay"
}
default_node_pool = {
name = "default"
node_count = 3
vm_size = "Standard_D16s_v3"
os_disk_type = "Managed"
only_critical_addons_enabled = true
temporary_name_for_rotation = "defaulttmp"
}
extra_node_pool = [
{
name = "prompool"
node_count = 1
auto_scaling_enabled = false
vm_size = "Standard_D16_v3"
node_labels = { "prometheus" = "true" }
},
{
name = "userpool"
node_count = 1
min_count = 0
max_count = 1000
auto_scaling_enabled = true
vm_size = "Standard_D16s_v3"
max_pods = 110
}
]
kubernetes_version = "1.30"
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"run_id": "1234567890",
"region": "eastus",
}
25 changes: 25 additions & 0 deletions steps/engine/clusterloader2/cri-autoscale/collect.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
parameters:
- name: cloud
type: string
default: ''
- name: engine_input
type: object
default: {}
- name: region
type: string

steps:
- template: /steps/cloud/${{ parameters.cloud }}/collect-cloud-info.yml
parameters:
region: ${{ parameters.region }}
- script: |
set -eo pipefail
PYTHONPATH=$PYTHONPATH:$(pwd) python3 $PYTHON_SCRIPT_FILE collect \
$NODE_COUNT $CL2_REPORT_DIR $RESULT_FILE
workingDirectory: modules/python/clusterloader2
env:
CLOUD: ${{ parameters.cloud }}
PYTHON_SCRIPT_FILE: $(Pipeline.Workspace)/s/modules/python/clusterloader2/cri-autoscale/cri-autoscale.py
CL2_REPORT_DIR: $(Pipeline.Workspace)/s/modules/python/clusterloader2/cri-autoscale/results
displayName: "Collect Node Count, Agent Pod Count, and CPU Usage"
29 changes: 29 additions & 0 deletions steps/engine/clusterloader2/cri-autoscale/execute.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
parameters:
- name: cloud
type: string
default: ''
- name: engine_input
type: object
default: {}
- name: region
type: string

steps:
- script: |
set -eo pipefail
# Override the configuration for scaling
PYTHONPATH=$PYTHONPATH:$(pwd) python3 $PYTHON_SCRIPT_FILE override \
$NODE_COUNT $SCALE_UP_TIMEOUT $SCALE_DOWN_TIMEOUT ${CL2_CONFIG_DIR}/overrides.yaml
# Execute the scaling workload
PYTHONPATH=$PYTHONPATH:$(pwd) python3 $PYTHON_SCRIPT_FILE execute \
${CL2_IMAGE} ${CL2_CONFIG_DIR} $CL2_REPORT_DIR ${HOME}/.kube/config $CLOUD
workingDirectory: modules/python/clusterloader2
env:
CLOUD: ${{ parameters.cloud }}
PYTHON_SCRIPT_FILE: $(Pipeline.Workspace)/s/modules/python/clusterloader2/cri-autoscale/cri-autoscale.py
CL2_IMAGE: ${{ parameters.engine_input.image }}
CL2_CONFIG_DIR: $(Pipeline.Workspace)/s/modules/python/clusterloader2/cri-autoscale/config
CL2_REPORT_DIR: $(Pipeline.Workspace)/s/modules/python/clusterloader2/cri-autoscale/results
displayName: "Execute Konnectivity Autoscaler Scaling Test"
13 changes: 13 additions & 0 deletions steps/topology/cri-autoscale/collect-clusterloader2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
parameters:
- name: cloud
type: string
default: ''
- name: regions
type: object
default: []

steps:
- template: /steps/engine/clusterloader2/cri-autoscale/collect.yml
parameters:
cloud: ${{ parameters.cloud }}
region: ${{ parameters.regions[0] }}
13 changes: 13 additions & 0 deletions steps/topology/cri-autoscale/execute-clusterloader2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
parameters:
- name: cloud
type: string
default: ''
- name: regions
type: object
default: []

steps:
- template: /steps/engine/clusterloader2/cri-autoscale/execute.yml
parameters:
cloud: ${{ parameters.cloud }}
region: ${{ parameters.regions[0] }}
13 changes: 13 additions & 0 deletions steps/topology/cri-autoscale/validate-resources.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
parameters:
- name: cloud
type: string
- name: engine
type: string
- name: regions
type: object

steps:
- template: /steps/cloud/${{ parameters.cloud }}/update-kubeconfig.yml
parameters:
role: konnectivity
region: ${{ parameters.regions[0] }}

0 comments on commit d7c0a7f

Please sign in to comment.