Skip to content

Add VPC cleanup safety net for Classic STS conformance - #82824

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
dustman9000:fix/sts-conformance-vpc-cleanup
Aug 3, 2026
Merged

Add VPC cleanup safety net for Classic STS conformance#82824
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
dustman9000:fix/sts-conformance-vpc-cleanup

Conversation

@dustman9000

@dustman9000 dustman9000 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

Classic STS conformance jobs (4.19-4.22) are failing at 17% pass rate due to NAT Gateway quota exhaustion in us-east-2. Root cause: when rosa delete cluster fails (cluster in error state), the deprovision step exits without cleaning up ROSA-managed VPC resources, orphaning NAT Gateways that accumulate across ~35 runs/week.

Changes:

  • Mark rosa-aws-sts-deprovision chain as best_effort: true so post steps always run even when cluster deletion fails
  • Add new rosa-cluster-cleanup-vpc step that finds orphaned VPCs by api.openshift.com/name tag and force-deletes all resources (NAT GWs, EIPs, ENIs, subnets, route tables, IGWs, security groups)

This aligns the STS conformance workflow with the HCP conformance workflow, which already has best_effort and cleanup safety nets (rosa-e2e-cleanup-vpc + aws-deprovision-stacks).

Test plan

  • pj-rehearse passes for affected periodic jobs
  • Verify cleanup step is a no-op when no orphaned VPCs exist (normal case)
  • Verify cleanup step finds and deletes orphaned VPCs when deprovision fails
  • Monitor STS conformance pass rate after merge (target: recovery from 17% to ~70%+)

Summary by CodeRabbit

  • Improves Classic STS conformance reliability by running deprovisioning and VPC cleanup as best-effort post actions.
  • Adds a safety net that finds orphaned non-BYOVPC ROSA VPC resources and deletes dependent AWS resources, including NAT Gateways, EIPs, ENIs, load balancers, endpoints, subnets, route tables, internet gateways, and security groups.
  • Registers the cleanup step with ownership, resource requests, a 15-minute timeout, and an optional REGION override.

@coderabbitai

coderabbitai Bot commented Aug 3, 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: 5c04f304-ef74-4ec7-ada2-062a4aea6b40

📥 Commits

Reviewing files that changed from the base of the PR and between 8938c5b and 81dcbf7.

📒 Files selected for processing (5)
  • ci-operator/step-registry/rosa/aws/sts/conformance/rosa-aws-sts-conformance-workflow.yaml
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/OWNERS
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-ref.metadata.json
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-ref.yaml
🚧 Files skipped from review as they are similar to previous changes (4)
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-ref.metadata.json
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/OWNERS
  • ci-operator/step-registry/rosa/aws/sts/conformance/rosa-aws-sts-conformance-workflow.yaml
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-ref.yaml

Walkthrough

The pull request adds a ROSA VPC cleanup CI step. The step finds cluster-tagged orphaned VPCs, removes dependent AWS resources, and deletes each VPC. The STS conformance workflow runs the cleanup as a best-effort post action.

Changes

ROSA VPC cleanup

Layer / File(s) Summary
Define and register the cleanup step
ci-operator/step-registry/rosa/cluster/cleanup-vpc/*
Adds the step definition, command wiring, execution settings, ownership, and reviewer metadata.
Discover and remove VPC resources
ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh
Finds cluster-tagged VPCs and removes endpoints, load balancers, NAT gateways, Elastic IPs, network interfaces, security groups, subnets, route tables, internet gateways, and VPCs.
Enable best-effort post-cleanup
ci-operator/step-registry/rosa/aws/sts/conformance/rosa-aws-sts-conformance-workflow.yaml
Marks the deprovisioning chain and VPC cleanup action as best-effort post actions.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Suggested reviewers: bmeng, amandahla

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding VPC cleanup for Classic STS conformance workflows.
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 PR changes only YAML, shell, OWNERS, and metadata; no Ginkgo It, Describe, Context, or When declarations or dynamic test-title construction exists.
Test Structure And Quality ✅ Passed The PR changes only workflow YAML, metadata, OWNERS, and a Bash cleanup script; no Ginkgo test files, It blocks, or Eventually/Consistently calls are present.
Microshift Test Compatibility ✅ Passed The pull request adds no Ginkgo tests or test declarations. Changed files are CI YAML, JSON, OWNERS, and a shell cleanup script, so MicroShift test compatibility is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The pull request adds workflow, metadata, ownership, and Bash cleanup files only; no new Ginkgo tests or multi-node test assumptions are present.
Topology-Aware Scheduling Compatibility ✅ Passed The PR changes only CI workflow, ownership metadata, and an AWS cleanup shell script; it adds no deployment manifests, operator code, controllers, or scheduling constraints.
Ote Binary Stdout Contract ✅ Passed All changed files are CI configuration or a Bash AWS cleanup step; no OTE binary or main/suite code is modified. Its echo output is outside this check.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The pull request adds no Ginkgo tests; changes are workflow YAML, metadata, and an AWS cleanup script with no flagged IPv4 or public-internet test logic.
No-Weak-Crypto ✅ Passed The patch contains no MD5, SHA1, DES, 3DES, RC4, Blowfish, ECB, custom crypto, or secret/token comparisons; the script only performs AWS resource cleanup.
Container-Privileges ✅ Passed Changed CI step and workflow files contain no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation, or root-user settings.
No-Sensitive-Data-In-Logs ✅ Passed Cleanup logs CI cluster and AWS resource identifiers only; no credentials, tokens, passwords, API keys, PII, or hostnames are printed.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci
openshift-ci Bot requested review from amandahla and bmeng August 3, 2026 15:33
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 3, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@dustman9000: pj-rehearse could not automatically process this event because the request waited in queue for longer than 5 minutes. Use /pj-rehearse to trigger rehearsals manually.

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

🤖 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
`@ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh`:
- Around line 3-4: Update the shell options at the start of the cleanup command
script to use set -euo pipefail, preserving nounset and pipefail while enabling
errexit. If any cleanup command is intentionally allowed to fail, handle its
status explicitly rather than disabling errexit globally.
- Around line 24-26: Update the cleanup flow before the AWS VPC lookup and
mutation represented by vpc_ids so it first confirms the cluster’s ROSA or OCM
deletion state. Treat a failed or unreadable describe result as an error, not as
an empty/deleted state; proceed only for an explicit terminal deletion state.
Otherwise skip VPC cleanup and report the state-read or non-terminal failure.
- Around line 24-26: Update the cleanup flow for delete-vpc-endpoints, load
balancer deletion, and delete-vpc to stop suppressing failures and retain
affected resource IDs. Track endpoint deletion failures, poll until dependent
resources are gone using a bounded deadline instead of relying on the fixed
sleep, and retry delete-vpc during that period. When the deadline expires,
report unresolved resource IDs and return a nonzero status; otherwise preserve
successful cleanup behavior.
🪄 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: 9670296d-3f02-4df1-a72c-9e583858023a

📥 Commits

Reviewing files that changed from the base of the PR and between ab2a276 and 8938c5b.

📒 Files selected for processing (5)
  • ci-operator/step-registry/rosa/aws/sts/conformance/rosa-aws-sts-conformance-workflow.yaml
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/OWNERS
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-ref.metadata.json
  • ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-ref.yaml

Comment on lines +3 to +4
set -o nounset
set -o pipefail

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.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use set -euo pipefail as the default.

If a cleanup command must continue after an error, handle that command status explicitly. Do not remove -e globally.

As per coding guidelines, step registry command scripts must default to set -euo pipefail without -x.

🤖 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
`@ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh`
around lines 3 - 4, Update the shell options at the start of the cleanup command
script to use set -euo pipefail, preserving nounset and pipefail while enabling
errexit. If any cleanup command is intentionally allowed to fail, handle its
status explicitly rather than disabling errexit globally.

Source: Coding guidelines

Comment on lines +24 to +26
vpc_ids=$(aws ec2 describe-vpcs \
--filters "Name=tag:api.openshift.com/name,Values=${CLUSTER_NAME}" \
--query 'Vpcs[].VpcId' --output text 2>/dev/null || true)

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.

🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

fd -t f '^rosa-aws-sts-deprovision' ci-operator/step-registry
rg -n -C 4 'rosa delete|delete cluster|cluster-name|SHARED_DIR|deletion' ci-operator/step-registry/rosa

Repository: openshift/release

Length of output: 50374


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- target cleanup script ---'
cat -n ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh

printf '%s\n' '--- related cleanup metadata and references ---'
fd -t f 'rosa-cluster-cleanup-vpc|rosa-aws-sts-deprovision|rosa-teardown' ci-operator/step-registry/rosa \
  -x sh -c 'echo "--- $1"; cat -n "$1"' sh

printf '%s\n' '--- references to target cleanup step ---'
rg -n -C 5 'rosa-cluster-cleanup-vpc|cleanup-vpc' ci-operator/step-registry/rosa

Repository: openshift/release

Length of output: 33726


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- cluster deprovision chain and components ---'
fd -t f 'rosa-cluster-deprovision|cluster-deprovision' ci-operator/step-registry/rosa \
  -x sh -c 'echo "--- $1"; cat -n "$1"' sh

printf '%s\n' '--- ROSA/OCM cluster deletion and status operations ---'
rg -n -C 5 --glob '*.sh' --glob '*.yaml' --glob '*.json' \
  'rosa (delete|describe|get)|ocm .*clusters|cluster.*(delete|state|status)|DELETE|destroy' \
  ci-operator/step-registry/rosa/cluster ci-operator/step-registry/rosa/aws ci-operator/step-registry/rosa/e2e

Repository: openshift/release

Length of output: 50373


Gate VPC cleanup on a confirmed cluster deletion state.

The best-effort deprovision step can fail, and its failed rosa describe call is converted to an empty state that it treats as deletion. Before any AWS mutation, require an explicit terminal ROSA or OCM deletion state. If the state cannot be read or is not terminal, skip cleanup and report the failure.

🤖 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
`@ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh`
around lines 24 - 26, Update the cleanup flow before the AWS VPC lookup and
mutation represented by vpc_ids so it first confirms the cluster’s ROSA or OCM
deletion state. Treat a failed or unreadable describe result as an error, not as
an empty/deleted state; proceed only for an explicit terminal deletion state.
Otherwise skip VPC cleanup and report the state-read or non-terminal failure.

🩺 Stability & Availability | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

script='ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh'
rg -n -C 3 'delete-vpc-endpoints|delete-load-balancer|sleep 30|delete-vpc|2>/dev/null \|\| true' "${script}"

Repository: openshift/release

Length of output: 6535


🏁 Script executed:

#!/bin/bash
set -euo pipefail

script='ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh'
printf '%s\n' '--- script ---'
cat -n "${script}"
printf '%s\n' '--- related files ---'
git ls-files 'ci-operator/step-registry/rosa/cluster/cleanup-vpc/*' 'ci-operator/step-registry/rosa/cluster/*' | sed -n '1,120p'
printf '%s\n' '--- callers and step metadata ---'
rg -n -C 3 'rosa-cluster-cleanup-vpc|cleanup-vpc|VPC cleanup complete|orphaned VPCs' ci-operator | sed -n '1,240p'

Repository: openshift/release

Length of output: 27895


🌐 Web query:

AWS CLI delete-vpc-endpoints Unsuccessful response endpoint deletion asynchronous delete-load-balancer wait delete-vpc dependencies documentation

💡 Result:

When using the AWS CLI to delete VPC endpoints or load balancers, it is important to understand that these operations involve asynchronous backend processes and specific resource dependencies [1][2][3]. AWS CLI delete-vpc-endpoints The delete-vpc-endpoints command deletes specified VPC endpoints [1]. If a batch deletion is performed, the command returns a list of any unsuccessful items [1]. If the command succeeds, this returned list is empty [1]. Common causes for unsuccessful deletion include: - Requester-Managed Endpoints: These are created and managed by other AWS services (e.g., RDS Proxy, ElastiCache Serverless) [4][3]. You cannot delete them directly; you must identify and delete the underlying AWS resource that created them, which will then trigger the automatic deletion of the endpoint [4][3]. - Dependencies: For Gateway Load Balancer endpoints, you must ensure all associated routes are deleted before the endpoint can be deleted [1]. - NotFound Errors: If you receive an InvalidVpcEndpoint.NotFound error, the endpoint may have already been cleaned up by the service that created it, often as a result of deleting the parent resource [3]. AWS CLI delete-load-balancer Deleting a load balancer is an operation that may not be instantaneous [2]. While the command initiates the deletion, it is best practice to use a waiter to confirm the state of the resource if you have subsequent dependent actions [5]. The AWS CLI provides a specific waiter command for this purpose: aws elbv2 wait load-balancers-deleted --load-balancer-arns This command polls the load balancer status every 15 seconds until it confirms the load balancer is deleted (or reaches a maximum number of attempts) [2][6]. Using this waiter is essential in scripts where you intend to delete related resources (like target groups or security groups) immediately after a load balancer, as it prevents errors caused by attempting to delete resources that are still in use by the load balancer [5]. General Guidance When cleaning up VPC resources, you must remove them in the correct dependency order [7]. If you encounter a DependencyViolation error, it indicates that other resources (like network interfaces or active services) are still associated with the component you are trying to delete [8]. Always prioritize deleting the parent application or service first, allowing the backend to clean up managed network interfaces and endpoints automatically [4][3].

Citations:


Fail cleanup when dependent resources remain.

delete-vpc-endpoints, load balancer deletion, and delete-vpc suppress errors and discard responses. The fixed 30-second sleep does not prove that dependent resources were deleted. Track failed endpoint deletions, poll dependencies with a bounded deadline, retry delete-vpc, and return nonzero with unresolved resource IDs when the deadline expires.

🤖 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
`@ci-operator/step-registry/rosa/cluster/cleanup-vpc/rosa-cluster-cleanup-vpc-commands.sh`
around lines 24 - 26, Update the cleanup flow for delete-vpc-endpoints, load
balancer deletion, and delete-vpc to stop suppressing failures and retain
affected resource IDs. Track endpoint deletion failures, poll until dependent
resources are gone using a bounded deadline instead of relying on the fixed
sleep, and retry delete-vpc during that period. When the deadline expires,
report unresolved resource IDs and return a nonzero status; otherwise preserve
successful cleanup behavior.

Source: MCP tools

@dustman9000
dustman9000 force-pushed the fix/sts-conformance-vpc-cleanup branch from 8938c5b to 81dcbf7 Compare August 3, 2026 17:15
@dustman9000

Copy link
Copy Markdown
Member Author

/pj-rehearse periodic-ci-openshift-release-main-nightly-4.22-e2e-rosa-sts-ovn

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@dustman9000: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@dustman9000, pj-rehearse: unable prepare a candidate for rehearsal; rehearsals will not be run. This could be due to a branch that needs to be rebased. ERROR:

couldn't checkout base SHA 36202659773251568f27d8a8fefde426ce939640: error checking out "36202659773251568f27d8a8fefde426ce939640": exit status 128 fatal: unable to read tree (36202659773251568f27d8a8fefde426ce939640)

Classic STS conformance jobs (4.19-4.22) are failing at 17% pass rate
due to NAT Gateway quota exhaustion in us-east-2. Root cause: when
rosa delete cluster fails (cluster in error state), the deprovision
step exits without cleaning up ROSA-managed VPC resources, orphaning
NAT Gateways that accumulate across runs.

Fix:
- Mark rosa-aws-sts-deprovision as best_effort so post steps always
  run even when cluster deletion fails
- Add rosa-cluster-cleanup-vpc step that finds orphaned VPCs by
  api.openshift.com/name tag and force-deletes all resources (NAT GWs,
  EIPs, ENIs, subnets, route tables, IGWs, security groups)

This aligns the STS conformance workflow with the HCP conformance
workflow which already has best_effort and cleanup safety nets.
@dustman9000
dustman9000 force-pushed the fix/sts-conformance-vpc-cleanup branch from 81dcbf7 to 0559a80 Compare August 3, 2026 17:25
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@dustman9000: 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
periodic-ci-openshift-operator-framework-operator-controller-release-5.0-periodics-e2e-rosa-sts-ovn-slow-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-olm-release-4.22-periodics-e2e-rosa-sts-ovn-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-release-main-nightly-4.18-e2e-rosa-sts-ovn N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-operator-controller-release-4.22-periodics-e2e-rosa-sts-ovn-slow-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-operator-controller-release-4.22-periodics-e2e-rosa-sts-ovn-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-release-main-nightly-4.19-e2e-rosa-sts-ovn N/A periodic Registry content changed
periodic-ci-openshift-release-main-nightly-4.21-e2e-rosa-sts-ovn N/A periodic Registry content changed
periodic-ci-openshift-release-main-nightly-4.20-e2e-rosa-sts-ovn N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-olm-release-4.23-periodics-e2e-rosa-sts-ovn-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-release-main-nightly-4.22-e2e-rosa-sts-ovn N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-operator-controller-release-4.23-periodics-e2e-rosa-sts-ovn-slow-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-operator-controller-release-5.0-periodics-e2e-rosa-sts-ovn-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-operator-controller-release-4.21-periodics-e2e-rosa-sts-ovn-slow-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-operator-controller-release-4.23-periodics-e2e-rosa-sts-ovn-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-operator-controller-release-4.21-periodics-e2e-rosa-sts-ovn-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-olm-release-5.0-periodics-e2e-rosa-sts-ovn-extended-f3 N/A periodic Registry content changed
periodic-ci-openshift-operator-framework-olm-release-4.21-periodics-e2e-rosa-sts-ovn-extended-f3 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.

@dustman9000

Copy link
Copy Markdown
Member Author

/pj-rehearse periodic-ci-openshift-release-main-nightly-4.22-e2e-rosa-sts-ovn

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@dustman9000: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@dustman9000

Copy link
Copy Markdown
Member Author

/pj-rehearse abort

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@dustman9000: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@dustman9000

Copy link
Copy Markdown
Member Author

/pj-rehearse ack

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@dustman9000: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Aug 3, 2026
@jfrazierRedHat

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

openshift-ci Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dustman9000, jfrazierRedHat

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-merge-bot
openshift-merge-bot Bot merged commit e545c41 into openshift:main Aug 3, 2026
11 of 12 checks passed
amogh-redhat pushed a commit to amogh-redhat/release that referenced this pull request Aug 5, 2026
Classic STS conformance jobs (4.19-4.22) are failing at 17% pass rate
due to NAT Gateway quota exhaustion in us-east-2. Root cause: when
rosa delete cluster fails (cluster in error state), the deprovision
step exits without cleaning up ROSA-managed VPC resources, orphaning
NAT Gateways that accumulate across runs.

Fix:
- Mark rosa-aws-sts-deprovision as best_effort so post steps always
  run even when cluster deletion fails
- Add rosa-cluster-cleanup-vpc step that finds orphaned VPCs by
  api.openshift.com/name tag and force-deletes all resources (NAT GWs,
  EIPs, ENIs, subnets, route tables, IGWs, security groups)

This aligns the STS conformance workflow with the HCP conformance
workflow which already has best_effort and cleanup safety nets.
TimurMP pushed a commit to TimurMP/release that referenced this pull request Aug 9, 2026
Classic STS conformance jobs (4.19-4.22) are failing at 17% pass rate
due to NAT Gateway quota exhaustion in us-east-2. Root cause: when
rosa delete cluster fails (cluster in error state), the deprovision
step exits without cleaning up ROSA-managed VPC resources, orphaning
NAT Gateways that accumulate across runs.

Fix:
- Mark rosa-aws-sts-deprovision as best_effort so post steps always
  run even when cluster deletion fails
- Add rosa-cluster-cleanup-vpc step that finds orphaned VPCs by
  api.openshift.com/name tag and force-deletes all resources (NAT GWs,
  EIPs, ENIs, subnets, route tables, IGWs, security groups)

This aligns the STS conformance workflow with the HCP conformance
workflow which already has best_effort and cleanup safety nets.
TimurMP pushed a commit to TimurMP/release that referenced this pull request Sep 5, 2026
Classic STS conformance jobs (4.19-4.22) are failing at 17% pass rate
due to NAT Gateway quota exhaustion in us-east-2. Root cause: when
rosa delete cluster fails (cluster in error state), the deprovision
step exits without cleaning up ROSA-managed VPC resources, orphaning
NAT Gateways that accumulate across runs.

Fix:
- Mark rosa-aws-sts-deprovision as best_effort so post steps always
  run even when cluster deletion fails
- Add rosa-cluster-cleanup-vpc step that finds orphaned VPCs by
  api.openshift.com/name tag and force-deletes all resources (NAT GWs,
  EIPs, ENIs, subnets, route tables, IGWs, security groups)

This aligns the STS conformance workflow with the HCP conformance
workflow which already has best_effort and cleanup safety nets.
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. lgtm Indicates that a PR is ready to be merged. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants