Skip to content

CNTRLPLANE-2883: Migrate ARM64 NodePool creation test to v2 - #8926

Open
georgelipceanu wants to merge 1 commit into
openshift:mainfrom
georgelipceanu:arm64-v2-e2e
Open

CNTRLPLANE-2883: Migrate ARM64 NodePool creation test to v2#8926
georgelipceanu wants to merge 1 commit into
openshift:mainfrom
georgelipceanu:arm64-v2-e2e

Conversation

@georgelipceanu

@georgelipceanu georgelipceanu commented Jul 3, 2026

Copy link
Copy Markdown
Member

What this PR does / why we need it:

This PR migrates the v1 E2E test that validates ARM64 NodePool creation succeeds with multi-arch to v2, on AWS and Azure platforms.

The test:

  1. Creates an ARM64 NodePool with 1 replica
  2. Configures platform-specific settings:
    • AWS: m6g.large instance type
    • Azure: Standard_D4ps_v5 VM size with aro_422-arm marketplace image
  3. Waits for the node to provision and become Ready
  4. Verifies the node has the kubernetes.io/arch=arm64 label
  5. Cleans up the NodePool on test completion

This PR also adds EXTRA_ARGS for the Azure v2 e2e cluster creation, allowing for CI to pass through --arch=arm64 for multi-arch cluster creation.

Which issue(s) this PR fixes:

Fixes #CNTRLPLANE-2883

Special notes for your reviewer:

Azure marketplace image selection:

The test explicitly uses the aro_422-arm marketplace SKU for Azure. Older SKUs (419, 420, 421) would get stuck in the GRUB boot menu when I was testing them. The aro_422-arm SKU successfully auto-boots and completes, which is why it is used in this test.

The text above was an issue in my own setup, please ignore.

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

Summary by CodeRabbit

Tests

  • Added end-to-end coverage for creating ARM64 node pools.
  • Validates supported AWS and Azure configurations, including sizing, images, replica count, and release image alignment.
  • Confirms an ARM64 node becomes ready with the expected architecture label.

New Features

  • Azure cluster test variants can now incorporate additional arguments supplied through the environment while preserving existing configuration.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@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 3, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 3, 2026

Copy link
Copy Markdown

@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:

Test validates ARM64 NodePool creation succeeds with multi-arch on AWS and Azure.

What this PR does / why we need it:

This PR migrates the v1 E2E test that validates ARM64 NodePool creation succeeds with multi-arch to v2, on AWS and Azure platforms.

Which issue(s) this PR fixes:

Fixes #CNTRLPLANE-2883

Special notes for your reviewer:

Checklist:

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

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.

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR adds an end-to-end Ginkgo test for ARM64 NodePool creation. The test runs for supported AWS and Azure multi-architecture HostedClusters, configures platform-specific sizing, validates the NodePool specification, and verifies one ready node with the kubernetes.io/arch=arm64 label.

It also parses Azure EXTRA_ARGS and appends them to every generated Azure cluster variant.

Sequence Diagram(s)

sequenceDiagram
  participant E2ETest
  participant HostedCluster
  participant NodePool
  participant ReadyNode
  E2ETest->>HostedCluster: Read release and platform details
  E2ETest->>NodePool: Create one-replica ARM64 NodePool
  E2ETest->>NodePool: Verify ARM64 spec and platform sizing
  E2ETest->>ReadyNode: Wait for ready node
  ReadyNode-->>E2ETest: Return node with kubernetes.io/arch=arm64
Loading

Suggested reviewers: devguyio, sjenning, bryan-cox


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 The new test writes node.Name to Ginkgo output and assertion messages; cloud node names can expose internal hostnames or infrastructure identifiers. Do not log node.Name. Use a fixed message or a sanitized identifier, and remove node.Name from failure messages unless it is explicitly redacted.
✅ Passed checks (10 passed)
Check name Status Explanation
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 new test uses only static Describe and It titles; neither contains generated names, timestamps, nodes, namespaces, IPs, or other run-dependent values.
Test Structure And Quality ✅ Passed The test uses BeforeEach, DeferCleanup, diagnostic assertion messages, and the shared readiness helper with a finite 45-minute timeout; its checks cover one ARM64 NodePool behavior and match v2 pat...
Topology-Aware Scheduling Compatibility ✅ Passed The patch changes only e2e test and lifecycle code. It adds no deployment/controller manifests or pod scheduling constraints such as affinity, topology spread, selectors, tolerations, or PDBs.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The new Ginkgo test uses Kubernetes clients and node labels only; it has no IPv4 literals, IP parsing, URL construction, or public endpoint access. Azure changes only append EXTRA_ARGS.
No-Weak-Crypto ✅ Passed The diff adds ARM64 NodePool test logic and Azure EXTRA_ARGS handling only; searches found no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret comparisons.
Container-Privileges ✅ Passed The PR adds no privileged containers or security contexts; added-line and AST scans found no hostPID, hostNetwork, hostIPC, SYS_ADMIN, root, or allowPrivilegeEscalation settings.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely identifies the migration of the ARM64 NodePool creation test to v2, which is the primary change.
✨ Finishing Touches 💡 1
⚔️ Resolve merge conflicts 💡
  • Resolve merge conflict in branch arm64-v2-e2e
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci openshift-ci Bot added area/testing Indicates the PR includes changes for e2e testing and removed do-not-merge/needs-area labels Jul 3, 2026
@openshift-ci
openshift-ci Bot requested review from devguyio and sjenning July 3, 2026 18:59

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

🧹 Nitpick comments (1)
test/e2e/v2/tests/nodepool_arm64_create_test.go (1)

48-60: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Move platform skip logic into BeforeEach.

Per the v2 e2e AGENTS.md pattern: Use BeforeEach with Skip() when a test applies only to specific platforms, using the format if hostedCluster == nil || hostedCluster.Spec.Platform.Type != hyperv1.AWSPlatform { Skip(...) }. Here the AWS/Azure and multi-arch checks are embedded directly in the It body instead of a BeforeEach.

♻️ Suggested refactor
 var testCtx *internal.TestContext

 BeforeEach(func() {
     testCtx = internal.GetTestContext()
     Expect(testCtx).NotTo(BeNil(), "test context should be set up in BeforeSuite")
+
+    hc := testCtx.GetHostedCluster()
+    if hc.Spec.Platform.Type != hyperv1.AWSPlatform && hc.Spec.Platform.Type != hyperv1.AzurePlatform {
+        Skip("ARM64 NodePool test only supported on AWS and Azure platforms")
+    }
+    if hc.Status.PayloadArch != hyperv1.Multi {
+        Skip("ARM64 NodePool test requires a multi-arch release image")
+    }
 })

As per coding guidelines, "Use BeforeEach with Skip() for platform-specific tests, and include a clear skip message explaining the platform restriction."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@test/e2e/v2/tests/nodepool_arm64_create_test.go` around lines 48 - 60, Move
the platform and multi-arch gating out of the It body in the nodepool ARM64 test
and into a BeforeEach using Skip(), following the v2 e2e pattern. Update the
setup around getTestCtx(), ValidateHostedClusterClient(), and GetHostedCluster()
so the HostedCluster is checked before the test runs, then skip early when the
platform is not AWS/Azure or when hc.Status.PayloadArch is not hyperv1.Multi.
Keep the skip messages clear and specific, and leave the It block focused only
on the actual ARM64 NodePool assertions.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@test/e2e/v2/tests/nodepool_arm64_create_test.go`:
- Around line 74-106: The ARM64 NodePool test in nodepool_arm64_create_test
should verify the AWS path after creation the same way it already verifies
Azure. Add an assertion in the createdNP check for the AWS branch that
createdNP.Spec.Platform.AWS.InstanceType matches the configured m6g.large value,
alongside the existing Azure VMSize assertion, using the createdNP object and
the NodePool platform type switch.
- Around line 68-70: The node pool test is using a raw architecture string
instead of the shared constant, which can drift from the expected value. Update
the NodePool setup in the arm64 create test to use hyperv1.ArchitectureARM64 in
the pool.Spec.Arch assignment, keeping it consistent with the existing assertion
that already checks against that constant. This change should be made in the
test helper block that builds the NodePool for the arm64 case.

---

Nitpick comments:
In `@test/e2e/v2/tests/nodepool_arm64_create_test.go`:
- Around line 48-60: Move the platform and multi-arch gating out of the It body
in the nodepool ARM64 test and into a BeforeEach using Skip(), following the v2
e2e pattern. Update the setup around getTestCtx(),
ValidateHostedClusterClient(), and GetHostedCluster() so the HostedCluster is
checked before the test runs, then skip early when the platform is not AWS/Azure
or when hc.Status.PayloadArch is not hyperv1.Multi. Keep the skip messages clear
and specific, and leave the It block focused only on the actual ARM64 NodePool
assertions.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: ab42037f-e9cd-4242-bb7d-949470229b73

📥 Commits

Reviewing files that changed from the base of the PR and between 8e1aa48 and 2df25ef.

📒 Files selected for processing (1)
  • test/e2e/v2/tests/nodepool_arm64_create_test.go

Comment thread test/e2e/v2/tests/nodepool_arm64_create_test.go Outdated
Comment thread test/e2e/v2/tests/nodepool_arm64_create_test.go
@codecov

codecov Bot commented Jul 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 45.75%. Comparing base (d32a262) to head (e72ba90).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8926      +/-   ##
==========================================
+ Coverage   45.73%   45.75%   +0.01%     
==========================================
  Files         781      781              
  Lines       97828    97837       +9     
==========================================
+ Hits        44738    44761      +23     
+ Misses      50019    50007      -12     
+ Partials     3071     3069       -2     

see 2 files with indirect coverage changes

Flag Coverage Δ
cmd-support 38.83% <ø> (+0.03%) ⬆️
cpo-hostedcontrolplane 48.08% <ø> (ø)
cpo-other 45.93% <ø> (ø)
hypershift-operator 57.00% <ø> (+0.02%) ⬆️
other 34.38% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

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

@georgelipceanu
georgelipceanu force-pushed the arm64-v2-e2e branch 2 times, most recently from a327767 to 2096a76 Compare July 6, 2026 09:54
@hypershift-jira-solve-ci

hypershift-jira-solve-ci Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Test Failure Analysis Complete

Job Information

  • Prow Jobs: pull-ci-openshift-hypershift-main-images, pull-ci-openshift-hypershift-main-security, pull-ci-openshift-hypershift-main-verify-deps
  • Build IDs: 2074070106735906816, 2074070107457327104, 2074070107570573312
  • Cluster: build01
  • PR: CNTRLPLANE-2883: Migrate ARM64 NodePool creation test to v2 #8926 (commit 2096a769)
  • State: All three jobs ended in error (not failure) — the test code never executed

Test Failure Analysis

Error

Pod scheduling timeout.

0/136 nodes are available: 1 node(s) were unschedulable, 117 node(s) had untolerated taint(s),
13 node(s) didn't match Pod's node affinity/selector, 2 Insufficient cpu, 3 Insufficient memory.
no new claims to deallocate, preemption: 0/136 nodes are available: 131 Preemption is not helpful
for scheduling, 2 No preemption victims found for incoming pod, 3 Insufficient memory.

Summary

All three Prow jobs (images, security, verify-deps) failed identically with a CI infrastructure pod scheduling timeout on the build01 cluster — none of them executed any test code. The pods were created at 09:57:02 UTC and remained in Pending state for ~30 minutes until Prow's scheduling timeout killed them at 10:27:25 UTC. The Kubernetes scheduler could not place the pods because: 117 of 136 nodes had untolerated taints, 13 nodes didn't match the pod's node affinity/selector, 2 nodes had insufficient CPU, 3 nodes had insufficient memory, and 1 node was marked unschedulable. These failures are entirely unrelated to PR #8926's code changes and are caused by transient CI infrastructure capacity exhaustion on the build01 cluster.

Root Cause

The root cause is CI infrastructure capacity exhaustion on the build01 cluster, not a code defect in PR #8926.

All three jobs were submitted simultaneously at 09:54:22 UTC. Their pods were created at 09:57:02 UTC in the ci namespace with:

  • nodeSelector: ci-workload: prowjobs (restricts to CI worker nodes)
  • Node affinity: requires kubernetes.io/arch in [amd64, arm64] (multi-arch label applied by the multiarch.openshift.io scheduling gate)
  • Tolerations: only tolerates node-role.kubernetes.io/ci-prowjobs-worker

Of the 136 nodes in the cluster at that time:

  • 117 nodes had taints the pods didn't tolerate (these are likely nodes reserved for other workloads — builds, CI operator, etc.)
  • 13 nodes didn't match the pod's node affinity/selector (wrong architecture or missing ci-workload label)
  • 2 nodes had insufficient CPU
  • 3 nodes had insufficient memory
  • 1 node was cordoned/unschedulable

This left 0 eligible nodes, and preemption could not help (131 nodes where preemption wouldn't help, 2 with no viable preemption victims, 3 with insufficient memory even after preemption). After ~30 minutes in Pending, Prow's pod scheduling timeout terminated the jobs with error state.

This is a transient infrastructure condition — the cluster was overloaded at the time these jobs were submitted. Retrying the jobs when capacity frees up will resolve the issue.

Recommendations
  1. Retest the PR — Run /retest on PR CNTRLPLANE-2883: Migrate ARM64 NodePool creation test to v2 #8926 to re-trigger these jobs. The failures are transient infrastructure issues unrelated to the code changes.
  2. No code changes needed — The PR's code (CNTRLPLANE-2883: Migrate ARM64 NodePool creation test to v2) was never compiled or tested; there is no signal about code correctness from these runs.
  3. If retests continue to fail with the same pod scheduling timeout, escalate to the CI infrastructure team (Test Platform / DPTP) as a build01 cluster capacity issue.
Evidence
Evidence Detail
Job state All three: error (infrastructure error, not test failure)
Error description Pod scheduling timeout. — identical for all three jobs
Cluster build01
Pod phase Pending — pods were never scheduled to a node
Pod created 2026-07-06T09:57:02Z
Timeout at 2026-07-06T10:27:25Z (~30 minutes pending)
Scheduler message 0/136 nodes are available: 117 untolerated taints, 13 node affinity mismatch, 2 insufficient CPU, 3 insufficient memory, 1 unschedulable
No build-log.txt Absent from all three jobs — confirms no container ever started
Pod nodeSelector ci-workload: prowjobs
Pod arch affinity kubernetes.io/arch In [amd64, arm64] (multi-arch)
PR commit 2096a769c4b9576ecf5454ceeaf00ec64ff2db6c — never built or tested

@georgelipceanu

Copy link
Copy Markdown
Member Author

/retest images

@georgelipceanu

Copy link
Copy Markdown
Member Author

/test images

testing these since they simply failed to find a node to run on, causing them to ERROR, not fail.

@georgelipceanu

Copy link
Copy Markdown
Member Author

/test security

@georgelipceanu

Copy link
Copy Markdown
Member Author

/test verify-deps

@csrwng csrwng 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.

Thanks for migrating this test to v2! One suggestion on making the coverage stronger.

Comment thread test/e2e/v2/tests/nodepool_arm64_create_test.go
@csrwng csrwng added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 14, 2026
@mgencur

mgencur commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 27, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aks-4-22
/test e2e-aws-4-22
/test e2e-aks
/test e2e-aws
/test e2e-aws-upgrade-hypershift-operator
/test e2e-azure-v2-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws
/test e2e-v2-gke
/test unit
/test verify

@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jul 30, 2026
@mgencur

mgencur commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

@georgelipceanu Could you explain what has changed? Or post this in a separate commit. Thanks

@georgelipceanu

Copy link
Copy Markdown
Member Author

@georgelipceanu Could you explain what has changed? Or post this in a separate commit. Thanks

@mgencur I was meant to add changes to test/e2e/v2/lifecycle/azure.go to allow for EXTRA_ARGS to be read in the Azure CI cluster creation to allow for ARM testing (discussed here) AND rebase this just for cleanliness but I had these changes in a different directory on my local machine without realising, so I only submitted the rebase with no changes. Apologies for the waste in resources, will adjust the commit now and update the PR description to reflect this 😓

@openshift-ci openshift-ci Bot added the area/platform/azure PR/issue for Azure (AzurePlatform) platform label Jul 30, 2026
func (a *AzurePlatformConfig) ClusterSpecs(releaseImage, n1Image string) []ClusterSpec {
// Parse EXTRA_ARGS from environment if provided
var extraArgs []string
if envArgs := os.Getenv("EXTRA_ARGS"); envArgs != "" {

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.

Let's sync with this other PR which adds the same to AWS: https://github.com/openshift/hypershift/pull/9174/changes#r3682537387

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.

Thanks for bringing this to my attention. Is this in relation to the ParseExtraArgs() function in test/e2e/v2/lifecycle/platform.go? If so then we can wait for this to merge and leverage this in this PR, if that is a valid plan forward.

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 is fine to do since it's basically the wild west right now in terms of expanding the environment variable surface (and I'm also guilty of it now), but I do want to take a followup to revisit how we're defining and overriding configuration throughout the v2 framework, it's a mess and I think environment is the wrong tool for the job

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.

In my PR the arguments are totally generalized / not platform-coupled, if anything I would suggest maybe scoping yours as AZURE_CREATE_EXTRA_ARGS or something. My goal would be to find a way to remove this, mine, and all the rest in a different design....

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.

if anything I would suggest maybe scoping yours as AZURE_CREATE_EXTRA_ARGS or something.

AFAIK, the --arch flag isn't an Azure specific thing so I don't think that having a separate AZURE_CREATE_EXTRA_ARGS flag for Azure is necessary at the moment and may only create unnecessary complexities (unless that flag is Azure specific, but even then I imagine that is something that could be added to the non-platform coupled args anyway). So I don't mind holding this until your PR is merged, or until we revisit how we're adding individual configurations throughout the v2 framework. 👍

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 @mgencur I think your approach is at more tightly scoped and cleaner, so I'll adopt your pattern in my PR and we can refactor it all in a followup design. Don't block on me

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 6, 2026
@coderabbitai

coderabbitai Bot commented Aug 6, 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 6, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

Approval requirements bypassed by manually added approval.

This pull-request has been approved by: georgelipceanu

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

The pull request process is described 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-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 6, 2026
@mgencur

mgencur commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 7, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aks-4-22
/test e2e-aws-4-22
/test e2e-aks
/test e2e-aws
/test e2e-aws-upgrade-hypershift-operator
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws
/test e2e-v2-azure-self-managed
/test e2e-v2-gke

@georgelipceanu

Copy link
Copy Markdown
Member Author

/test e2e-aws-4-22
/test e2e-v2-azure-self-managed
/test e2e-azure-v2-self-managed

@georgelipceanu

Copy link
Copy Markdown
Member Author

/test e2e-aws-4-22

@ironcladlou

Copy link
Copy Markdown
Contributor

@georgelipceanu you need to rebase to pick up #9229, I'm actually not sure why your current branch isn't failing CI checks with compilation errors

@georgelipceanu

Copy link
Copy Markdown
Member Author

@georgelipceanu you need to rebase to pick up #9229, I'm actually not sure why your current branch isn't failing CI checks with compilation errors

@ironcladlou I thought it was just CI flakes since the other tests were passing without failures while this was behind in commits. I do see that in the Codecov now though, so I'll get this rebased, apologies for the waste in resources. 😓

Other tests probably passed before since maybe that PR merged after they were run? Either way rebasing will make all tests rerun so it should be fine after that, thanks for pointing this out. 👍

Test validates ARM64 NodePool creation succeeds, becomes ready and verifies it has arm64 label.

Also update Azure v2 e2e lifecycle to read EXTRA_ARGS environment variable, enabling CI to pass --arch=arm64 for multi-arch clusters.

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

openshift-ci Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

New changes are detected. LGTM label has been removed.

@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Aug 13, 2026
NodePoolArm64CreateTest(getTestCtx)
}

var _ = Describe("[sig-hypershift][Jira:Hypershift][Feature:NodePoolArm64] NodePool ARM64", Label("nodepool-arm64"), func() {

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.

We've been talking about enforcing a standard where all new tests are labeled informing and must be promoted to blocking after they meet well defined stability criteria (e.g. following OCP, 20 consecutive green runs)... this hasn't been decided yet within the team but I think that's the general direction we're headed, we should talk about it before merging a new test

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.

We should also talk about what to do with any non-v2 test this is replacing (as applicable) on a case by case basis

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 still new to this new process of E2E and need to catch up and refresh myself on previous discussions on where things are headed, I appreciate reminder on the informing -> blocking criteria. I can hold this for now then and we can keep bringing this up in meetings and Slack threads until finalised. 👍

We should also talk about what to do with any non-v2 test this is replacing (as applicable) on a case by case basis

AFAIK, I don't think this test was ever blocking in any capacity, both pre-submit and periodic wise, and I don't know the significance of ARM64 NodePools in HCP today (I imagine that other tests in other areas that need to be migrate would take greater blocking priority over this). It could be something to discuss with one of the owners of the V1, or just with the whole team on how necessary this is to be get to blocking.

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.

Thanks, I still need to go decode the CI configs around the ARM tests and this also relates to the ARM Karpenter tests (which I want to port as a followup to #9292), I think there's also a special job for that as well that's not in the presubmits but I don't have it all mapped out yet. I'm still wanting to get up to speed with kubevirt as well, isn't the ARM support important there too?

I definitely want to help you get this in one way or another

@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 Aug 13, 2026
@openshift-ci

openshift-ci Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

@georgelipceanu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-azure-v2-self-managed e4f6c86 link true /test e2e-azure-v2-self-managed
ci/prow/verify e72ba90 link true /test verify
ci/prow/e2e-aws-4-22 4f932e0 link true /test e2e-aws-4-22
ci/prow/images e72ba90 link true /test images

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

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/platform/azure PR/issue for Azure (AzurePlatform) platform area/testing Indicates the PR includes changes for e2e testing do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. 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.

5 participants