Skip to content

CNTRLPLANE-3351: e2e: add opt-in CPU resource request overrides for control plane components - #8385

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
bryan-cox:CNTRLPLANE-3351
May 5, 2026
Merged

CNTRLPLANE-3351: e2e: add opt-in CPU resource request overrides for control plane components#8385
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
bryan-cox:CNTRLPLANE-3351

Conversation

@bryan-cox

@bryan-cox bryan-cox commented Apr 30, 2026

Copy link
Copy Markdown
Member

What this PR does / why we need it:

Cherry-picks the resource request override annotations from #8350 (by @csrwng) but makes them opt-in via E2E_RESOURCE_REQUEST_OVERRIDES=1 env var.

Control plane pod CPU requests are far below actual usage (e.g. ignition-server requests 10m but peaks at 960m). The scheduler sees ~3,015m per cluster and packs too many clusters onto a few nodes. Actual peak is ~8,000m per cluster, causing CPU starvation that delays CRD establishment and triggers test timeouts.

When enabled, overrides CPU requests for control plane pods to better reflect actual consumption (~4700m per cluster vs. ~3015m default), preventing scheduler over-packing. The env var lets us enable it selectively for affected jobs (e.g. Azure e2e) first, without inadvertently breaking other jobs that are running fine.

Which issue(s) this PR fixes:

Fixes CNTRLPLANE-3351

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.

Summary by CodeRabbit

  • Tests
    • Centralized default test annotations and made them environment-driven.
    • Default cleanup and validation annotations are preserved.
    • New opt-in behavior: setting an environment switch adds CPU resource-override annotations for control-plane and operator components during e2e runs.

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

openshift-ci-robot commented Apr 30, 2026

Copy link
Copy Markdown

@bryan-cox: This pull request references CNTRLPLANE-3351 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 task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Cherry-picks the resource request override annotations from WIP: e2e: add CPU resource request overrides for control plane components #8350 (by @csrwng) but makes them opt-in via E2E_RESOURCE_REQUEST_OVERRIDES=1 env var
  • When enabled, overrides CPU requests for control plane pods to better reflect actual consumption (~4700m per cluster vs. ~3015m default), preventing scheduler over-packing
  • Follows the same pattern as the existing TEST_CPO_OVERRIDE env var

Problem

Control plane pod CPU requests are far below actual usage (e.g. ignition-server requests 10m but peaks at 960m). The scheduler sees ~3,015m per cluster and packs too many clusters onto a few nodes. Actual peak is ~8,000m per cluster, causing CPU starvation that delays CRD establishment and triggers test timeouts.

Why opt-in?

Making this unconditional could inadvertently break other jobs (e.g. AWS e2e) that are running fine with current scheduling. The env var lets us enable it selectively for affected jobs (e.g. Azure e2e) first.

Test plan

  • go vet ./test/e2e/util/... passes
  • Run Azure self-managed e2e with E2E_RESOURCE_REQUEST_OVERRIDES=1 and verify pods start within expected timeframes
  • Verify no regression on AWS e2e without the env var set

🤖 Generated with Claude Code

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 Apr 30, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The pull request refactors default cluster creation annotations in the E2E test utilities by moving static annotation construction from DefaultClusterOptions into a new unexported helper e2eDefaultAnnotations(). The helper always includes CleanupCloudResourcesAnnotation=true and SkipReleaseImageValidation=true. If the environment variable E2E_RESOURCE_REQUEST_OVERRIDES equals "1", it appends a fixed set of CPU request override annotations for specific control-plane and component pods. No exported/public APIs were changed.

🚥 Pre-merge checks | ✅ 11 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding opt-in CPU resource request overrides for control plane components via environment variable, which is the core functionality introduced in the changeset.
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 This PR modifies a utility file for e2e test configuration, not a Ginkgo test file. No Ginkgo test declarations (It(), Describe(), Context(), When(), etc.) are added or modified.
Test Structure And Quality ✅ Passed The modified file is a utility configuration module containing helper functions that provide default cluster options and annotations, not test code. It contains no Ginkgo test blocks, assertions, or test interactions requiring quality checks.
Microshift Test Compatibility ✅ Passed PR does not add any new Ginkgo e2e tests; only refactors test configuration by extracting annotation logic into a helper function.
Single Node Openshift (Sno) Test Compatibility ✅ Passed This pull request does not add any new Ginkgo e2e tests. Changes are confined to utility/configuration file with no test function definitions.
Topology-Aware Scheduling Compatibility ✅ Passed Pull request modifies only test utility code and does not introduce deployment manifests, operator code, or controllers with scheduling constraints. Resource request override annotations do not constitute topology-dependent scheduling logic.
Ote Binary Stdout Contract ✅ Passed The new e2eDefaultAnnotations() function uses only fmt.Sprintf() for in-memory string building and returns data structures without writing to stdout. The function is not process-level code and does not emit output that could corrupt the OTE JSON protocol.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The PR only modifies test/e2e/util/options.go without adding new Ginkgo e2e tests. The introduced helper function contains no IPv4 hardcoded addresses, IPv4-specific parsing logic, IPv4 CIDR blocks, or external connectivity calls.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Review rate limit: 9/10 reviews remaining, refill in 6 minutes.

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

@openshift-ci
openshift-ci Bot requested review from jparrill and sjenning April 30, 2026 14:00
@openshift-ci openshift-ci Bot added the area/testing Indicates the PR includes changes for e2e testing label Apr 30, 2026
@openshift-ci

openshift-ci Bot commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bryan-cox

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 added approved Indicates a PR has been approved by an approver from all required OWNERS files. and removed do-not-merge/needs-area labels Apr 30, 2026
@csrwng

csrwng commented Apr 30, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@codecov

codecov Bot commented Apr 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 36.42%. Comparing base (5eaee74) to head (53b5ee6).
⚠️ Report is 58 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8385   +/-   ##
=======================================
  Coverage   36.42%   36.42%           
=======================================
  Files         765      765           
  Lines       93302    93302           
=======================================
  Hits        33981    33981           
  Misses      56606    56606           
  Partials     2715     2715           
Flag Coverage Δ
cmd-support 30.37% <ø> (ø)
cpo-hostedcontrolplane 37.08% <ø> (ø)
cpo-other 35.69% <ø> (ø)
hypershift-operator 47.88% <ø> (ø)
other 27.76% <ø> (ø)

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.

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

🧹 Nitpick comments (1)
test/e2e/util/options.go (1)

604-625: ⚡ Quick win

Add a focused unit test for annotation gating and contents.

Given the hardcoded override list, a small table-driven test for e2eDefaultAnnotations() (env unset vs E2E_RESOURCE_REQUEST_OVERRIDES=1) would catch typos and accidental list regressions early.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/e2e/util/options.go` around lines 604 - 625, Add a table-driven unit
test for the e2eDefaultAnnotations() function that validates both cases (env
unset and E2E_RESOURCE_REQUEST_OVERRIDES="1") by setting and restoring the
environment variable, calling e2eDefaultAnnotations(), and asserting the
returned slice contains exactly the expected base annotations and, when set, the
full hardcoded override entries; implement subtests (t.Run) for each case,
compare results deterministically (e.g., sort slices or compare as sets) and
fail with clear messages if any expected annotation is missing or any unexpected
entry is present.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@test/e2e/util/options.go`:
- Around line 604-625: Add a table-driven unit test for the
e2eDefaultAnnotations() function that validates both cases (env unset and
E2E_RESOURCE_REQUEST_OVERRIDES="1") by setting and restoring the environment
variable, calling e2eDefaultAnnotations(), and asserting the returned slice
contains exactly the expected base annotations and, when set, the full hardcoded
override entries; implement subtests (t.Run) for each case, compare results
deterministically (e.g., sort slices or compare as sets) and fail with clear
messages if any expected annotation is missing or any unexpected entry is
present.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 32de6cd1-2218-4161-b3c4-92a6e225a378

📥 Commits

Reviewing files that changed from the base of the PR and between d09cc78 and 064d927.

📒 Files selected for processing (1)
  • test/e2e/util/options.go

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 30, 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-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws

…ponents

Control plane pods have CPU requests far below actual usage (e.g.
ignition-server requests 10m but peaks at 960m). This causes the
scheduler to over-pack hosted clusters onto management nodes, leading
to CPU starvation and e2e test failures from pods timing out.

Add resource-request-override annotations to e2e HostedCluster defaults
to better reflect actual CPU consumption. This raises per-cluster total
CPU requests from ~3015m to ~4700m, giving the scheduler accurate
capacity signals to spread workloads across nodes.

The overrides are opt-in via the E2E_RESOURCE_REQUEST_OVERRIDES=1 env
var to avoid inadvertently breaking jobs that are running fine today.

Based-on: openshift#8350
Original-author: Cesar Wong <cewong@redhat.com>

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Apr 30, 2026

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

🧹 Nitpick comments (1)
test/e2e/util/options.go (1)

604-625: ⚡ Quick win

Add focused unit tests for env-gated default annotations.

Please add table-driven tests for e2eDefaultAnnotations() covering env var off/on and asserting expected annotation presence. This is a small change that will protect against future regressions in key names/values.

Suggested test cases
+// options_test.go
+func TestE2EDefaultAnnotations(t *testing.T) {
+  t.Run("overrides disabled", func(t *testing.T) {
+    t.Setenv("E2E_RESOURCE_REQUEST_OVERRIDES", "")
+    got := e2eDefaultAnnotations()
+    // assert base annotations exist; assert override annotation absent
+  })
+
+  t.Run("overrides enabled", func(t *testing.T) {
+    t.Setenv("E2E_RESOURCE_REQUEST_OVERRIDES", "1")
+    got := e2eDefaultAnnotations()
+    // assert base annotations exist; assert representative override annotations exist
+  })
+}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/e2e/util/options.go` around lines 604 - 625, Add table-driven unit tests
for e2eDefaultAnnotations that validate both environments: when
E2E_RESOURCE_REQUEST_OVERRIDES is unset/empty and when it is "1". For each case
set/clear the env var in the test, call e2eDefaultAnnotations(), and assert the
returned slice contains the base annotations (CleanupCloudResourcesAnnotation
and SkipReleaseImageValidation) and, when env is "1", also contains the expected
resource-request override entries (verify presence of strings built from
hyperv1.ResourceRequestOverrideAnnotationPrefix plus keys like
"kube-apiserver.kube-apiserver=cpu=500m" and
"control-plane-operator.control-plane-operator=cpu=500m"); also assert lengths
or absence of those overrides when env is off. Use table-driven subtests to
avoid flakiness and ensure you restore the original env var after each case.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@test/e2e/util/options.go`:
- Around line 604-625: Add table-driven unit tests for e2eDefaultAnnotations
that validate both environments: when E2E_RESOURCE_REQUEST_OVERRIDES is
unset/empty and when it is "1". For each case set/clear the env var in the test,
call e2eDefaultAnnotations(), and assert the returned slice contains the base
annotations (CleanupCloudResourcesAnnotation and SkipReleaseImageValidation)
and, when env is "1", also contains the expected resource-request override
entries (verify presence of strings built from
hyperv1.ResourceRequestOverrideAnnotationPrefix plus keys like
"kube-apiserver.kube-apiserver=cpu=500m" and
"control-plane-operator.control-plane-operator=cpu=500m"); also assert lengths
or absence of those overrides when env is off. Use table-driven subtests to
avoid flakiness and ensure you restore the original env var after each case.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 93dfc7a2-c7a5-4966-9e54-469dca05820b

📥 Commits

Reviewing files that changed from the base of the PR and between 064d927 and 53b5ee6.

📒 Files selected for processing (1)
  • test/e2e/util/options.go

@csrwng

csrwng commented May 4, 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 May 4, 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-self-managed
/test e2e-kubevirt-aws-ovn-reduced
/test e2e-v2-aws

@bryan-cox

Copy link
Copy Markdown
Member Author

/retest

@cwbotbot

cwbotbot commented May 4, 2026

Copy link
Copy Markdown

Test Results

e2e-aws

e2e-aks

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-azure-self-managed | Build: 2051322138241011712 | Cost: $2.6303971500000003 | Failed step: hypershift-azure-run-e2e-self-managed

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@bryan-cox

Copy link
Copy Markdown
Member Author

/retest

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-aws | Build: 2051318902549385216 | Cost: $3.3390984999999995 | Failed step: hypershift-aws-run-e2e-nested

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@bryan-cox

Copy link
Copy Markdown
Member Author

/retest

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-aws | Build: 2051376957953675264 | Cost: $4.081876399999999 | Failed step: hypershift-aws-run-e2e-nested

View full analysis report


Generated by hypershift-analyze-e2e-failure post-step using Claude claude-opus-4-6

@bryan-cox

Copy link
Copy Markdown
Member Author

/verified later @bryan-cox

@openshift-ci-robot openshift-ci-robot added verified-later verified Signifies that the PR passed pre-merge verification criteria labels May 5, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@bryan-cox: This PR has been marked to be verified later by @bryan-cox.

Details

In response to this:

/verified later @bryan-cox

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.

@bryan-cox

Copy link
Copy Markdown
Member Author

/override "ci/prow/e2e-aws"

failure is not related to the PR

@openshift-ci

openshift-ci Bot commented May 5, 2026

Copy link
Copy Markdown
Contributor

@bryan-cox: Overrode contexts on behalf of bryan-cox: ci/prow/e2e-aws

Details

In response to this:

/override "ci/prow/e2e-aws"

failure is not related to the PR

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.

@openshift-ci

openshift-ci Bot commented May 5, 2026

Copy link
Copy Markdown
Contributor

@bryan-cox: 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.

@openshift-merge-bot
openshift-merge-bot Bot merged commit 0ca85b1 into openshift:main May 5, 2026
41 checks passed
@bryan-cox
bryan-cox deleted the CNTRLPLANE-3351 branch May 5, 2026 00:41
@hypershift-jira-solve-ci

hypershift-jira-solve-ci Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

Test Failure Analysis Complete

Job Information

Test Failure Analysis

Error

TestKarpenter/Main/Billing_vCPUs,_consolidation,_and_cluster_deletion_with_blocking_PDB:
  karpenter_test.go:1245: Failed to wait for HostedCluster e2e-clusters-fjc6x/karpenter-zbh4v AutoNode.VCPUs=0 in 1m0s: context deadline exceeded
  eventually.go:225: observed AutoNode.VCPUs=4, want 0

TestCreateClusterPrivate/Teardown:
  fixture.go:333: Failed to wait for infra resources in guest cluster to be deleted: context deadline exceeded
  fixture.go:340: Failed to clean up 3 remaining resources for guest cluster (2 EBS volumes, 1 NLB)

Summary

Both failures are pre-existing test flakes unrelated to PR #8385. The PR only modifies test/e2e/util/options.go to add opt-in CPU resource request overrides behind an env var (E2E_RESOURCE_REQUEST_OVERRIDES=1), and this env var was not set for this job. The e2e-aws check has since passed on a subsequent run. The Karpenter billing vCPU test failure is caused by a race condition in the test suite where the preceding "OpenshiftEC2NodeClass version field and MetadataOptions" subtest does not wait for its provisioned Karpenter node to fully terminate before the billing test asserts AutoNode.VCPUs=0. The TestCreateClusterPrivate failure is a standard teardown timeout waiting for AWS infrastructure resources (EBS volumes and NLB) to be deleted.

Root Cause

TestKarpenter failure — race condition in Karpenter test node cleanup:

The testNodeClassVersionField() subtest (part of "Parallel provisioning tests") provisions a Karpenter node using a version-test NodePool with a t3.xlarge instance (4 vCPUs). At the end of the subtest, it deletes the NodePool and workload via guestClient.Delete() calls (karpenter_test.go lines 676-677), but it does not wait for the underlying Karpenter node to be fully terminated and the AutoNode.VCPUs status to converge back to 0.

The "Billing vCPUs, consolidation, and cluster deletion with blocking PDB" subtest runs immediately after and its first assertion at line 1245 expects AutoNode.VCPUs=0. However, the version-test node is still terminating (or its NodeClaim still exists), so AutoNode.VCPUs reports 4 (= 1 × t3.xlarge with 4 vCPUs). The 1-minute timeout is insufficient for the Karpenter controller to reconcile the NodeClaim deletion and update the HostedCluster status.

This is a race condition in the test ordering — the cleanup from the version-test subtest has not completed by the time the billing subtest's precondition check runs.

TestCreateClusterPrivate failure — AWS resource cleanup timeout:

The TestCreateClusterPrivate test passed all its functional subtests (ValidateHostedCluster, Main/SwitchFromPrivateToPublic, Main/SwitchFromPublicToPrivate, EnsureHostedCluster). The failure occurred only during Teardown when the test framework timed out waiting for 3 AWS infrastructure resources to be deleted:

  • 2 EBS volumes (attached to worker machine nodes private-j2wq5-us-east-1a-nnfdz-wsrhn and private-j2wq5-us-east-1a-nnfdz-crbdj)
  • 1 NLB (for openshift-ingress/router-default service)

The cluster itself was successfully destroyed. This is a known flaky behavior where AWS resource deletion is slow and exceeds the test teardown deadline.

Recommendations
  1. No action needed for PR CNTRLPLANE-3351: e2e: add opt-in CPU resource request overrides for control plane components #8385 — The failures are pre-existing test flakes completely unrelated to the code changes. The e2e-aws check has already passed on a subsequent run.

  2. For the Karpenter vCPU race condition (separate fix): The testNodeClassVersionField() function should add an explicit wait for Karpenter node termination after deleting the version-test NodePool (lines 676-677 of karpenter_test.go), similar to the pattern used in testInstanceProfileAnnotationPropagation() which calls WaitForReadyNodesByLabels(... 0 ...) after cleanup. This would ensure the AutoNode.VCPUs status has converged before the billing test runs.

  3. For the TestCreateClusterPrivate teardown timeout: This is a known intermittent issue with AWS resource cleanup latency. Consider increasing the teardown deadline or adding retry logic for resource deletion verification.

Evidence
Evidence Detail
PR changes Only test/e2e/util/options.go modified — adds opt-in CPU override annotations behind E2E_RESOURCE_REQUEST_OVERRIDES=1 env var
Env var not set E2E_RESOURCE_REQUEST_OVERRIDES not set for this job, so no override annotations were applied
Subsequent run ci/prow/e2e-aws now shows SUCCESS on PR #8385
Karpenter VCPUs=4 at billing test start eventually.go:225: observed AutoNode.VCPUs=4, want 0 — matches exactly 1 t3.xlarge node
Version-test node provisioned karpenter_test.go:654: Node provisioned with correct kubelet version (v1.34.2) at line 2025
No wait after version-test cleanup Lines 2056-2057 show version-skew cleanup then immediately starts AutoNode enable/disable lifecycle test — no node termination wait
Billing test timeout 1m0s timeout at line 2204, AutoNode.VCPUs never reached 0
TestCreateClusterPrivate subtests passed ValidateHostedCluster ✓, Main/SwitchFromPrivateToPublic ✓, Main/SwitchFromPublicToPrivate ✓, EnsureHostedCluster ✓
Teardown-only failure fixture.go:333: Failed to wait for infra resources in guest cluster to be deleted: context deadline exceeded
Remaining AWS resources 2 EBS volumes + 1 NLB for cluster private-j2wq5 — standard cleanup lag

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/testing Indicates the PR includes changes for e2e testing jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria verified-later

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants