Pipeline to benchmark hyperscale cluster provisioning#1040
Pipeline to benchmark hyperscale cluster provisioning#1040
Conversation
410abdf to
c3d1e36
Compare
|
@microsoft-github-policy-service agree company="Microsoft" |
694ba68 to
9bac001
Compare
32c3d44 to
fbd4043
Compare
There was a problem hiding this comment.
Pull request overview
This PR introduces a minimal pipeline to benchmark Azure hyperscale cluster provisioning time. The implementation creates a new test scenario called "hyperscale-cluster" that measures cluster readiness without running additional workloads.
Changes:
- Added validation script to check API server CPU cores (GOMAXPROCS) against expected values for different hyperscale tiers (H2, H4, H8)
- Created no-op execute and collect steps since the pipeline only measures provisioning time
- Configured terraform inputs for a basic AKS cluster with overlay networking
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| steps/topology/hyperscale-cluster/validate-resources.yml | Validates API server CPU allocation by checking GOMAXPROCS metric against expected cores for each hyperscale tier |
| steps/topology/hyperscale-cluster/execute-noop.yml | No-op execution step since provisioning time is the only metric needed |
| steps/topology/hyperscale-cluster/collect-noop.yml | No-op collection step as terraform operation metadata captures provisioning time |
| scenarios/perf-eval/hyperscale-cluster/terraform-test-inputs/azure.json | Test validation inputs for terraform configuration |
| scenarios/perf-eval/hyperscale-cluster/terraform-inputs/azure.tfvars | Terraform configuration for hyperscale cluster with basic node pool and overlay networking |
| fi | ||
| # Compare with expected cores based on CCP tier | ||
| CCP_TIER="$(ccp_tier)" |
There was a problem hiding this comment.
The command ccp_tier is not defined and will cause the script to fail. Based on the pipeline configuration in pipelines/perf-eval/Hyperscale Cluster Benchmark/ccp-provisioning.yml, ccp_tier is set as a matrix variable. Matrix variables in Azure Pipelines are automatically exposed as environment variables, so this should be CCP_TIER="$CCP_TIER" or simply use $CCP_TIER directly, not $(ccp_tier).
| CCP_TIER="$(ccp_tier)" | |
| CCP_TIER="$CCP_TIER" |
| echo "##vso[task.logissue type=error]GOMAXPROCS mismatch: expected $EXPECTED_CORES, got $GOMAXPROCS for tier $CCP_TIER" | ||
| exit 1 | ||
| else | ||
| echo "GOMAXPROCS matches expected cores $EXPECTED_CORES for tier $CCP_TIER" |
There was a problem hiding this comment.
The indentation is inconsistent here. Lines 47-48 and 50 should be aligned with the rest of the conditional block. The echo and exit statements on lines 47-48 need proper indentation (should be indented 6 spaces to align with line 46), and line 50's echo statement also needs proper indentation.
| echo "##vso[task.logissue type=error]GOMAXPROCS mismatch: expected $EXPECTED_CORES, got $GOMAXPROCS for tier $CCP_TIER" | |
| exit 1 | |
| else | |
| echo "GOMAXPROCS matches expected cores $EXPECTED_CORES for tier $CCP_TIER" | |
| echo "##vso[task.logissue type=error]GOMAXPROCS mismatch: expected $EXPECTED_CORES, got $GOMAXPROCS for tier $CCP_TIER" | |
| exit 1 | |
| else | |
| echo "GOMAXPROCS matches expected cores $EXPECTED_CORES for tier $CCP_TIER" |
| @@ -0,0 +1,28 @@ | |||
| scenario_type = "perf-eval" | |||
| scenario_name = "hyperscale-cluster" | |||
| deletion_delay = "2h" | |||
There was a problem hiding this comment.
deletion delay is 2h, while the pipeline timeout in 180 minutes. This means the cluster could be deleted before it finishes.
| ssh_key_enabled: false | ||
| timeout_in_minutes: 180 | ||
|
|
||
| - stage: azure_H8 # 64 cores |
There was a problem hiding this comment.
Do you want to have a baseline stage that uses a normal ccp?
|
|
||
| steps: | ||
| - script: | | ||
| echo "No additional metrics to collect for provision engine." |
| CCP_TIER="$(ccp_tier)" | ||
| echo "CCP Tier: $CCP_TIER" | ||
| # Skip comparison for H2 tier |
Create a minimal pipeline to test Azure hyperscale cluster provisioning time. The pipeline sets up stages to run on dedicate regions where hyperscale feature is enabled.