Skip to content

Add node initialization validation benchmark - #1357

Merged
Liyu Ma (liyu-ma) merged 25 commits into
v2from
maliyu/node-validation
Oct 30, 2026
Merged

Liyu Ma (liyu-ma) merged 25 commits into
v2from
maliyu/node-validation

Conversation

@liyu-ma

@liyu-ma Liyu Ma (liyu-ma) commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Add a benchmark pipeline to validate worker nodes clear NoSchedule taints after node-pool creation.

  • Define independent East Asia and West US 2 stages: to run two 1,000-node worker pools
  • Poll for up to 5 minutes to validate nodes initialization complete. Accept explicit pool_name:expected_count arguments, require exact counts and all requested nodes to clear NoSchedule taints.
  • Print timestamped per-pool summaries, bound API calls by the remaining deadline, and fail explicitly on malformed responses.

Validation

  • Compiled with KCL 0.13.0 and verified generated YAML consistency after rebasing onto v2.
  • Test run with ADO pipeline.

liyu-microsoft and others added 13 commits October 26, 2026 23:46
Measure node readiness and NoSchedule taint clearance across sequential 250-, 500-, and 1000-node worker pool stages, polling every minute.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Avoid jq's reserved end keyword and preserve the last valid node snapshot and summary when parsing fails. Report result-writing failures explicitly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep one-minute polling and update pipeline labels and recorded timeout metadata.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use JobConfig with Standard_D2s_v3 system and worker pools. Run westus2 and eastasia 500-node stages in parallel after the westus2 baseline, and require both before the 1000-node stage. Qualify all stage IDs by region.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Set an explicit node resource group name and record it in benchmark metadata to avoid AKS's auto-generated name exceeding 80 characters.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Introduce benchmarkJob with sequential westus2 jobs and an independent eastasia job. Preserve PlanNodePools-based provisioning and include job identity in resource and artifact names.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Run two 1000-node worker pools in East Asia and add a keep_cluster boolean parameter that skips resource-group deletion when enabled, defaulting to cleanup.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Derive resource and artifact names from explicit region and node-count configuration instead of System.JobName. Rename keep_cluster to keep_failed_cluster and preserve cleanup for successful jobs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the westus2 250-node job and add a 15-minute operator pause after cluster creation in each remaining job. Preserve the westus2 500-to-1000 dependency chain.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the manual scaling pause, configuration recording, diagnostics, and artifact publication. Reduce validation to ten minutes and simplify the waiter to console progress with a temporary snapshot, preserving strict node checks and tolerating missing readiness conditions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Extract focused Bash and jq helpers, validate only requested pool_name:expected_count pairs, and derive pipeline arguments from the provisioned worker pools. Remove the fixed pool sizes and dependency availability checks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the single-use nodeResourceGroup variable without changing generated pipeline YAML.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

For reviewers only: reply /run-tf-integration to trigger the terraform integration pipeline before approving the PR.

Relocate the pipeline and waiter to kcl/ccp_team/node-validation and regenerate YAML with the updated script path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@liyu-ma Liyu Ma (liyu-ma) changed the title Add cross-region node initialization validation benchmark Add node initialization validation benchmark Oct 26, 2026
Remove readiness validation and reporting while retaining exact requested pool counts and NoSchedule taint checks. Reduce the polling deadline to 300 seconds and update generated pipeline labels.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread kcl/ccp_team/node-validation/pipeline.k Resolved
liyu-microsoft and others added 8 commits October 28, 2026 13:57
Reduce fetched node data before persistence, validate selected-node specs and taints, and remove unused kind/name checks. Separate the jq projection into named filters and distinguish fetch failures from malformed responses.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Inline sleep handling and shorten the last interval to start a final check with five seconds remaining. Retain the static 30-second request timeout and accept successful in-flight responses after the polling window. Update generated pipeline labels.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Format KCL calls, rename predecessors, remove redundant stage conditions, and log UTC validation boundaries while preserving exit status during cleanup.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the westus2 500-node job and job predecessor wiring. Replace JobConfig with a region parameter and use a shared 1000-node-per-pool constant for both regions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@liyu-ma
Liyu Ma (liyu-ma) merged commit 389aa51 into v2 Oct 30, 2026
4 checks passed
@liyu-ma
Liyu Ma (liyu-ma) deleted the maliyu/node-validation branch October 30, 2026 02:05
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