Skip to content

Pipeline to benchmark hyperscale cluster provisioning#1040

Open
liyu-ma wants to merge 1 commit intomainfrom
maliyu/hyperscale-cluster-provisioning
Open

Pipeline to benchmark hyperscale cluster provisioning#1040
liyu-ma wants to merge 1 commit intomainfrom
maliyu/hyperscale-cluster-provisioning

Conversation

@liyu-ma
Copy link

@liyu-ma liyu-ma commented Feb 2, 2026

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.

@liyu-ma liyu-ma force-pushed the maliyu/hyperscale-cluster-provisioning branch from 410abdf to c3d1e36 Compare February 2, 2026 13:47
@liyu-ma
Copy link
Author

liyu-ma commented Feb 3, 2026

@microsoft-github-policy-service agree company="Microsoft"

@liyu-ma liyu-ma force-pushed the maliyu/hyperscale-cluster-provisioning branch 3 times, most recently from 694ba68 to 9bac001 Compare February 6, 2026 06:18
@liyu-ma liyu-ma force-pushed the maliyu/hyperscale-cluster-provisioning branch 2 times, most recently from 32c3d44 to fbd4043 Compare February 6, 2026 06:51
@liyu-ma liyu-ma changed the title [draft] Pipeline to benchmark hyperscale cluster provisioning Pipeline to benchmark hyperscale cluster provisioning Feb 6, 2026
@liyu-ma liyu-ma marked this pull request as ready for review February 6, 2026 06:57
Copilot AI review requested due to automatic review settings February 6, 2026 06:57
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)"
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Suggested change
CCP_TIER="$(ccp_tier)"
CCP_TIER="$CCP_TIER"

Copilot uses AI. Check for mistakes.
Comment on lines +47 to +50
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"
Copy link

Copilot AI Feb 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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"

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,28 @@
scenario_type = "perf-eval"
scenario_name = "hyperscale-cluster"
deletion_delay = "2h"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to have a baseline stage that uses a normal ccp?


steps:
- script: |
echo "No additional metrics to collect for provision engine."
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: noop engine

CCP_TIER="$(ccp_tier)"
echo "CCP Tier: $CCP_TIER"
# Skip comparison for H2 tier
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why skipping h2?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants