Skip to content

Add MultiKueue e2e test - #6429

Draft
nojnhuh wants to merge 1 commit into
kubernetes-sigs:mainfrom
nojnhuh:e2e-multikueue
Draft

Add MultiKueue e2e test#6429
nojnhuh wants to merge 1 commit into
kubernetes-sigs:mainfrom
nojnhuh:e2e-multikueue

Conversation

@nojnhuh

@nojnhuh nojnhuh commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

What type of PR is this?
/kind feature

What this PR does / why we need it:

This PR adds an e2e for AKS clusters running MultiKueue.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #6418

Special notes for your reviewer:

TODOs:

  • squashed commits
  • includes documentation
  • adds unit tests
  • cherry-pick candidate

Release note:

NONE

@kubernetes-prow

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@kubernetes-prow kubernetes-prow Bot added release-note-none Denotes a PR that doesn't merit a release note. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. labels Jun 29, 2026
@kubernetes-prow
kubernetes-prow Bot requested review from marosset and mboersma June 29, 2026 23:43
@kubernetes-prow kubernetes-prow Bot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jun 29, 2026
@jackfrancis

Copy link
Copy Markdown
Contributor

/assign

@codecov

codecov Bot commented Jun 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 44.07%. Comparing base (11ad6fd) to head (a21a551).
⚠️ Report is 11 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #6429   +/-   ##
=======================================
  Coverage   44.07%   44.07%           
=======================================
  Files         289      289           
  Lines       25382    25384    +2     
=======================================
+ Hits        11187    11189    +2     
  Misses      13419    13419           
  Partials      776      776           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@kubernetes-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from jackfrancis. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

}

// InstallOCIHelmChart installs an OCI Helm chart on a workload cluster.
func InstallOCIHelmChart(ctx context.Context, clusterProxy framework.ClusterProxy, namespace, chartName, releaseName string, extraArgs ...string) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This func is really similar to InstallHelmChart from the KubeRay tests. Maybe we could consolidate them.

- 🟢 [pull-cluster-api-provider-azure-verify] `make verify`
- [pull-cluster-api-provider-azure-e2e-exp]
* `GINKGO_FOCUS=".*AKS.*" GINKGO_SKIP="" ./scripts/ci-e2e.sh`
* The opt-in MultiKueue AKS stress suite can be targeted with `GINKGO_FOCUS="MultiKueue" GINKGO_SKIP="" ./scripts/ci-e2e.sh`. It provisions one manager and three worker AKS clusters by default; override `MULTIKUEUE_WORKER_CLUSTER_COUNT`, `MULTIKUEUE_STRESS_JOB_COUNT`, `MULTIKUEUE_AKS_FLAVOR`, `KUEUE_VERSION`, or `JOBSET_VERSION` as needed.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

(OT: I noticed while looking at this jobs.md file that it's not accurate any more. Specifically, it still mentions the nonexistent e2e-exp job.)

}

// MultiKueueSpec installs Kueue and JobSet on CAPZ-managed AKS clusters and validates MultiKueue dispatch.
func MultiKueueSpec(ctx context.Context, inputGetter func() MultiKueueSpecInput) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is a hefty spec overall, requiring four AKS clusters and kueue and jobset installs, run through several sequential tests with long sleeps and 15m intervals. I'm just hoping it fits within the overall timeout.

}

func (e *multiKueueEnvironment) validateAllAtOnceFanOut(ctx context.Context) {
job := newMultiKueueBatchJob("multikueue-all-at-once", e.setup.Namespace, "2", "sleep 300")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think this relies on kueue 0.18.2 defaulting to the AllAtOnce dispatcher? Maybe would be safer to set spec.dispatcherName explicitly.

@nojnhuh

nojnhuh commented Jul 2, 2026

Copy link
Copy Markdown
Contributor Author

/test pull-cluster-api-provider-azure-e2e-multikueue

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

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. release-note-none Denotes a PR that doesn't merit a release note. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

Add a comprehensive E2E test stressing Kueue + MultiKueue on CAPZ-provisioned AKS

3 participants