Skip to content

[WIP] CNTRLPLANE-2883: Add v2 ARM64 multi-arch test jobs for AWS and Azure - #81894

Open
georgelipceanu wants to merge 1 commit into
openshift:mainfrom
georgelipceanu:CNTRLPLANE-2883
Open

[WIP] CNTRLPLANE-2883: Add v2 ARM64 multi-arch test jobs for AWS and Azure#81894
georgelipceanu wants to merge 1 commit into
openshift:mainfrom
georgelipceanu:CNTRLPLANE-2883

Conversation

@georgelipceanu

@georgelipceanu georgelipceanu commented Jul 14, 2026

Copy link
Copy Markdown
Member

Description

This PR adds CI presubmit jobs for the v2 migration of the v1 ARM64 NodePool creation test that validates multi-architecture NodePool provisioning on AWS and Azure platforms as part of CNTRLPLANE-2883.

Holding until openshift/hypershift#8926 is merged.

Summary by CodeRabbit

  • Adds scheduled CI jobs for v2 multi-architecture HyperShift NodePool provisioning on AWS and Azure.
  • Configures AWS testing with the hypershift-aws profile, ARM64 execution, m6g.xlarge, and the AWS v2 workflow.
  • Configures Azure testing with the hypershift-aks profile, ARM64 execution, and the Azure self-managed v2 workflow.
  • Adds optional EXTRA_ARGS support to AWS and Azure guest-cluster creation steps.

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 14, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 14, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

@georgelipceanu: This pull request references CNTRLPLANE-2883 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Description

This PR adds CI presubmit jobs for the v2 migration of the v1 ARM64 NodePool creation test that validates multi-architecture NodePool provisioning on AWS and Azure platforms as part of CNTRLPLANE-2883.

Holding until openshift/hypershift#8926 is merged.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci

openshift-ci Bot commented Jul 14, 2026

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

@georgelipceanu

Copy link
Copy Markdown
Member Author

/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 14, 2026
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: d7f50b97-94ae-43a4-b421-1a4dea68041a

📥 Commits

Reviewing files that changed from the base of the PR and between f59d19e and 3c8d5bf.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift/hypershift/openshift-hypershift-main-periodics.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (4)
  • ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml
  • ci-operator/step-registry/hypershift/aws/create-guests/hypershift-aws-create-guests-ref.yaml
  • ci-operator/step-registry/hypershift/azure/create-selfmanaged-guests/hypershift-azure-create-selfmanaged-guests-commands.sh
  • ci-operator/step-registry/hypershift/azure/create-selfmanaged-guests/hypershift-azure-create-selfmanaged-guests-ref.yaml

Walkthrough

Adds scheduled AWS and Azure ARM64 HyperShift v2 E2E jobs. Adds optional EXTRA_ARGS support to AWS and Azure guest creation steps.

Changes

HyperShift v2 E2E coverage

Layer / File(s) Summary
Schedule AWS and Azure E2E jobs
ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml
Adds monthly AWS and Azure ARM64 E2E jobs. The jobs use release:multi-latest and provider-specific v2 workflows.
Pass optional guest creation arguments
ci-operator/step-registry/hypershift/aws/create-guests/..., ci-operator/step-registry/hypershift/azure/create-selfmanaged-guests/...
Adds documented EXTRA_ARGS defaults. The Azure command exports EXTRA_ARGS when it is non-empty before running create-guests.

Estimated code review effort: 2 (Simple) | ~10 minutes

Mergeability Score: 🔵 Low · up to 3c8d5

The PR adds ARM64 multi-architecture CI jobs and updates generated job definitions; it is mergeable with owner confirmation that both were regenerated together, since a mismatch could prevent the new tests from being scheduled correctly.

Suggested labels: do-not-merge/hold

Suggested reviewers: ironcladlou, sdminonne, jparrill


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error Azure uses pre-existing xtrace, and the new EXTRA_ARGS condition expands its value in trace output; token- or password-like arguments would be logged. Disable xtrace around the conditional or avoid evaluating EXTRA_ARGS in a traced command.
✅ Passed checks (14 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the addition of v2 ARM64 multi-architecture test jobs for AWS and Azure.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed The diff adds static CI job names and EXTRA_ARGS configuration only; it introduces no Ginkgo It, Describe, Context, or When test title.
Test Structure And Quality ✅ Passed The commit changes only CI YAML and a shell wrapper; it adds no Ginkgo test code or It blocks, so the listed Ginkgo quality checks are inapplicable.
Microshift Test Compatibility ✅ Passed The diff adds only CI YAML and guest-step plumbing; it adds no Ginkgo test or MicroShift execution path, so this check is inapplicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The diff adds only CI YAML and shell wiring; it adds no Ginkgo test declarations or test bodies, so the SNO multi-node compatibility check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed The PR changes only CI job configuration and step scripts; the exact diff adds no affinity, spread, node-role, toleration, replica, or PDB scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The diff changes only YAML and one shell export; it adds no Go process-level code or stdout/log writes. The workflows use unchanged binaries from the hypershift-tests image.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The commit changes only CI configuration and guest-step environment handling; it adds no Ginkgo test code or IPv4/external-connectivity assumptions.
No-Weak-Crypto ✅ Passed The diff adds CI scheduling, ARM64 arguments, and EXTRA_ARGS plumbing only; it introduces no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret comparisons.
Container-Privileges ✅ Passed The PR diff adds no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation, or root security settings; new workflow and job manifests contain none.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@georgelipceanu georgelipceanu changed the title CNTRLPLANE-2883: Add v2 ARM64 multi-arch test jobs for AWS and Azure [WIP]CNTRLPLANE-2883: Add v2 ARM64 multi-arch test jobs for AWS and Azure Jul 14, 2026
@georgelipceanu georgelipceanu changed the title [WIP]CNTRLPLANE-2883: Add v2 ARM64 multi-arch test jobs for AWS and Azure [WIP] CNTRLPLANE-2883: Add v2 ARM64 multi-arch test jobs for AWS and Azure Jul 14, 2026
@georgelipceanu
georgelipceanu marked this pull request as ready for review July 14, 2026 22:14
@openshift-ci
openshift-ci Bot requested review from ironcladlou and sdminonne July 14, 2026 22:14
@georgelipceanu

Copy link
Copy Markdown
Member Author

/unhold

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 23, 2026

@mgencur mgencur left a comment

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.

Hey @georgelipceanu , I'm wondering if we also want to run this periodically, maybe once in 2 weeks. The current CI configs are optional pre-submit jobs so people might trigger it very rarely (maybe only on multi-arch-related changes).

steps:
cluster_profile: hypershift-aks
dependencies:
RELEASE_IMAGE_LATEST: release:multi-latest

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 have checked that NODEPOOL_RELEASE_IMAGE_LATEST is not used in self-managed azure 👍

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I'm wondering if we also want to run this periodically, maybe once in 2 weeks. The current CI configs are optional pre-submit jobs so people might trigger it very rarely (maybe only on multi-arch-related changes).

I'll add this in my next set of changes 👍

TECH_PREVIEW_NO_UPGRADE: "true"
TEST_SUITE: openshift/conformance/parallel/minimal
workflow: hypershift-aws-e2e-backuprestore
- always_run: false

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.

Both of these CI configs need EXTRA_ARGS: --arch=arm64 in order to actually run arm64 nodes.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

For self managed Azure, I tried to add this like so:

 - always_run: false
    as: e2e-v2-azure-multi-arch
    optional: true
    steps:
      cluster_profile: hypershift-aks
      dependencies:
        RELEASE_IMAGE_LATEST: release:multi-latest
      env:
        EXTRA_ARGS: --arch=arm64  # <-- HERE 
        TECH_PREVIEW_NO_UPGRADE: "true"
      workflow: hypershift-azure-e2e-v2-self-managed

But after running make update it shows the following error:

glipcean@glipcean-mac release % make update         
# If the Python scripts fail, use the venv/ directory to establish a Python virtual environment by running these commands:
.......
time="2026-07-27T11:51:03Z" level=info msg="Configs reloaded" duration=1.897537944s
time="2026-07-27T11:51:05Z" level=error error="failed to validate configuration openshift/hypershift/openshift-hypershift-main.yaml: Failed resolve MultiStageTestConfiguration: test/e2e-v2-azure-multi-arch: workflow/hypershift-azure-e2e-v2-self-managed: parameter \"EXTRA_ARGS\" is overridden in [test/e2e-v2-azure-multi-arch] but not declared in any step"
time="2026-07-27T11:51:05Z" level=fatal msg="error validating configuration files"
make[1]: *** [ci-operator-checkconfig] Error 1
make: *** [update] Error 2

I checked what the Azure v2 workflow in ci-operator/step-registry/hypershift/azure/e2e/v2-self-managed/hypershift-azure-e2e-v2-self-managed-workflow.yaml defines:

  env:
    CLOUD_PROVIDER: "Azure"
    HYPERSHIFT_PLATFORM: "azure"
    HYPERSHIFT_NODE_COUNT: "6"
    HYPERSHIFT_AZURE_LOCATION: "centralus"
    AZURE_SELF_MANAGED: "true"
    HYPERSHIFT_EXTERNAL_DNS_DOMAIN: "sm.hcp-sm-azure.azure.devcluster.openshift.com"
    HYPERSHIFT_ETCD_STORAGE_CLASS: "managed-csi-premium-v2"

This shows no EXTRA_ARGS unlike the AWS workflow (in hypershift-aws-create which is used by hypershift-aws-e2e-v2-workflow.yaml). Does Azure need a different parameter for ARM64 in the CI config, or maybe I'm not using this correctly? Or alternatively I could add this to the config myself.

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.

@georgelipceanu Thanks for the heads up, I was only looking at AKS where we use the hypershift-azure-create step which has the arch argument. But the v2 tests on self-managed Azure use the binary from /hypershift/bin/create-guests in the hypershift-azure-create-selfmanaged-guests chain. Maybe we need to imlement something there to allow testing of arm

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Made some changes in the hypershift PR for this v2 migration in test/e2e/v2/lifecycle/azure.go to read EXTRA_ARGS environment variable, which should allow CI to pass --arch=arm64 for multi-arch cluster creation.

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.

Great!

Signed-off-by: George Lipceanu <glipcean@redhat.com>
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@openshift-ci

openshift-ci Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: georgelipceanu
Once this PR has been reviewed and has the lgtm label, please assign enxebre for approval. 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

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@georgelipceanu: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-openshift-hypershift-main-e2e-v2-aws openshift/hypershift presubmit Registry content changed
pull-ci-openshift-hypershift-release-5.1-e2e-v2-aws openshift/hypershift presubmit Registry content changed
pull-ci-openshift-hypershift-release-5.0-e2e-v2-aws openshift/hypershift presubmit Registry content changed
pull-ci-openshift-hypershift-release-4.23-e2e-v2-aws openshift/hypershift presubmit Registry content changed
pull-ci-openshift-hypershift-release-4.22-e2e-v2-aws openshift/hypershift presubmit Registry content changed
pull-ci-openshift-hypershift-main-e2e-v2-azure-self-managed openshift/hypershift presubmit Registry content changed
pull-ci-openshift-hypershift-release-5.1-e2e-v2-azure-self-managed openshift/hypershift presubmit Registry content changed
pull-ci-openshift-hypershift-release-5.0-e2e-v2-azure-self-managed openshift/hypershift presubmit Registry content changed
pull-ci-openshift-hypershift-release-4.23-e2e-v2-azure-self-managed openshift/hypershift presubmit Registry content changed
periodic-ci-openshift-hypershift-main-dependabot-triage N/A periodic Periodic changed
periodic-ci-openshift-hypershift-release-5.1-periodics-e2e-v2-azure-self-managed N/A periodic Registry content changed
periodic-ci-openshift-hypershift-release-4.23-periodics-e2e-v2-azure-self-managed N/A periodic Registry content changed
periodic-ci-openshift-hypershift-main-periodic-jira-agent N/A periodic Periodic changed
periodic-ci-openshift-hypershift-main-periodic-review-agent N/A periodic Periodic changed
periodic-ci-openshift-hypershift-release-4.22-periodics-e2e-v2-aws N/A periodic Registry content changed
periodic-ci-openshift-hypershift-release-5.0-periodics-e2e-v2-azure-self-managed N/A periodic Registry content changed
periodic-ci-openshift-hypershift-main-periodic-e2e-v2-azure-multi-arch N/A periodic Periodic changed
periodic-ci-openshift-hypershift-release-5.1-periodics-e2e-v2-aws N/A periodic Registry content changed
periodic-ci-openshift-hypershift-release-5.0-periodics-e2e-v2-aws N/A periodic Registry content changed
periodic-ci-openshift-hypershift-main-ready-to-solve-ready-to-solve N/A periodic Periodic changed
periodic-ci-openshift-hypershift-main-periodic-e2e-v2-aws-multi-arch N/A periodic Periodic changed
periodic-ci-openshift-hypershift-release-4.23-periodics-e2e-v2-aws N/A periodic Registry content changed
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@openshift-ci

openshift-ci Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

@georgelipceanu: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

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

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants