Skip to content

OTA-1956: Skip ConsolePlugin manifests during CVO bootstrap#8839

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
jhadvig:skip-consoleplugin-bootstrap
Jun 29, 2026
Merged

OTA-1956: Skip ConsolePlugin manifests during CVO bootstrap#8839
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
jhadvig:skip-consoleplugin-bootstrap

Conversation

@jhadvig

@jhadvig jhadvig commented Jun 25, 2026

Copy link
Copy Markdown
Member

Summary

The CVO bootstrap init container in HyperShift gets stuck in an infinite retry loop trying to kubectl apply the ConsolePlugin manifest (0000_50_cluster-update-console-plugin_90_consoleplugin.yaml). The ConsolePlugin CRD (console.openshift.io/v1) is not available during bootstrap because the console operator hasn't started yet.

Add *_consoleplugin.yaml to the wildcard removals in preparePayloadScript, alongside the existing *_deployment.yaml and *_servicemonitor.yaml patterns that are already removed for the same reason (CRDs not available during bootstrap).

Root cause

From CVO PR #1398 CI logs:

error: resource mapping not found for name: "openshift-cluster-update-console-plugin"
namespace: "" from "/var/payload/manifests/0000_50_cluster-update-console-plugin_90_consoleplugin.yaml":
no matches for kind "ConsolePlugin" in version "console.openshift.io/v1"

The bootstrap init container retries this indefinitely, preventing the CVO pod from starting.

Related

Summary by CodeRabbit

  • Bug Fixes
    • Improved payload preparation by excluding console plugin manifest files matching 0000_50_cluster-update-console-plugin_* from the copied /var/payload/manifests/ content before the release workflow continues, preventing unintended console plugin resources from being processed.

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

openshift-ci-robot commented Jun 25, 2026

Copy link
Copy Markdown

@jhadvig: This pull request references OTA-1956 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:

Summary

The CVO bootstrap init container in HyperShift gets stuck in an infinite retry loop trying to kubectl apply the ConsolePlugin manifest (0000_50_cluster-update-console-plugin_90_consoleplugin.yaml). The ConsolePlugin CRD (console.openshift.io/v1) is not available during bootstrap because the console operator hasn't started yet.

Add *_consoleplugin.yaml to the wildcard removals in preparePayloadScript, alongside the existing *_deployment.yaml and *_servicemonitor.yaml patterns that are already removed for the same reason (CRDs not available during bootstrap).

Root cause

From CVO PR #1398 CI logs:

error: resource mapping not found for name: "openshift-cluster-update-console-plugin"
namespace: "" from "/var/payload/manifests/0000_50_cluster-update-console-plugin_90_consoleplugin.yaml":
no matches for kind "ConsolePlugin" in version "console.openshift.io/v1"

The bootstrap init container retries this indefinitely, preventing the CVO pod from starting.

Related

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.

@jhadvig jhadvig force-pushed the skip-consoleplugin-bootstrap branch from 1e4b5e9 to 0354a8d Compare June 25, 2026 21:08
@openshift-ci openshift-ci Bot requested review from clebs and jparrill June 25, 2026 21:08
@coderabbitai

coderabbitai Bot commented Jun 25, 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: 707f84ed-c576-4a9b-95e7-04d06a9dd717

📥 Commits

Reviewing files that changed from the base of the PR and between 3d26691 and 24ac382.

⛔ Files ignored due to path filters (5)
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-version-operator/AROSwift/zz_fixture_TestControlPlaneComponents_cluster_version_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-version-operator/GCP/zz_fixture_TestControlPlaneComponents_cluster_version_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-version-operator/IBMCloud/zz_fixture_TestControlPlaneComponents_cluster_version_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-version-operator/TechPreviewNoUpgrade/zz_fixture_TestControlPlaneComponents_cluster_version_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-version-operator/zz_fixture_TestControlPlaneComponents_cluster_version_operator_deployment.yaml is excluded by !**/testdata/**
📒 Files selected for processing (1)
  • control-plane-operator/controllers/hostedcontrolplane/v2/cvo/deployment.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • control-plane-operator/controllers/hostedcontrolplane/v2/cvo/deployment.go

📝 Walkthrough

Walkthrough

The payload preparation script now deletes 0000_50_cluster-update-console-plugin_* files from /var/payload/manifests/ before the release-manifests step runs. No other logic or signatures changed.

🚥 Pre-merge checks | ✅ 11
✅ 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 clearly matches the change: skipping ConsolePlugin manifests during CVO bootstrap.
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 Scanned 33 added Ginkgo/t.Run titles across changed tests; none contain dynamic values or unstable generated identifiers.
Test Structure And Quality ✅ Passed PASS: This PR only changes preparePayloadScript in deployment.go; no Ginkgo tests were added or modified, so the test-structure check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed Change only removes a ConsolePlugin manifest during payload filtering; no node selectors, affinity, spread constraints, replicas, or PDB logic were introduced.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the change only adds a manifest-removal line in preparePayloadScript.
No-Weak-Crypto ✅ Passed The only change adds a manifest removal string; the touched file contains no weak-crypto APIs, custom crypto, or secret comparisons.
Container-Privileges ✅ Passed The only functional change removes a manifest from a bash payload script; no privileged, host* , SYS_ADMIN, root, or allowPrivilegeEscalation settings are added.
No-Sensitive-Data-In-Logs ✅ Passed The change only adds a manifest removal in preparePayloadScript; I found no new logging or any code that would emit sensitive data.
✨ 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 added area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release and removed do-not-merge/needs-area labels Jun 25, 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)
control-plane-operator/controllers/hostedcontrolplane/v2/cvo/deployment.go (1)

203-209: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add a regression assertion for the new manifest cleanup.

TestPreparePayloadScript already checks the other generated rm -f statements, but this new *_consoleplugin.yaml removal is not covered in the provided test cases. Adding one assertion there would lock in the bootstrap fix and catch future regressions.

🤖 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 `@control-plane-operator/controllers/hostedcontrolplane/v2/cvo/deployment.go`
around lines 203 - 209, Add a regression assertion in TestPreparePayloadScript
to cover the new manifest cleanup generated by preparePayloadScript. Update the
existing checks for the script-building logic in deployment.go so the test also
verifies the rm -f statement removing *_consoleplugin.yaml alongside the other
manifest cleanup commands. Ensure the assertion targets the same generated
script content used for the existing *_deployment.yaml and *_servicemonitor.yaml
checks.
🤖 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.

Nitpick comments:
In `@control-plane-operator/controllers/hostedcontrolplane/v2/cvo/deployment.go`:
- Around line 203-209: Add a regression assertion in TestPreparePayloadScript to
cover the new manifest cleanup generated by preparePayloadScript. Update the
existing checks for the script-building logic in deployment.go so the test also
verifies the rm -f statement removing *_consoleplugin.yaml alongside the other
manifest cleanup commands. Ensure the assertion targets the same generated
script content used for the existing *_deployment.yaml and *_servicemonitor.yaml
checks.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 5f19ef6b-dc02-452b-8767-ba6b6d6569de

📥 Commits

Reviewing files that changed from the base of the PR and between 334535c and 0354a8d.

📒 Files selected for processing (1)
  • control-plane-operator/controllers/hostedcontrolplane/v2/cvo/deployment.go

@jhadvig

jhadvig commented Jun 25, 2026

Copy link
Copy Markdown
Member Author

/test ci/prow/verify-deps

@jhadvig

jhadvig commented Jun 25, 2026

Copy link
Copy Markdown
Member Author

/test verify-deps

fmt.Sprintf("cp -R /manifests %s/", payloadDir),
fmt.Sprintf("rm -f %s/manifests/*_deployment.yaml", payloadDir),
fmt.Sprintf("rm -f %s/manifests/*_servicemonitor.yaml", payloadDir),
fmt.Sprintf("rm -f %s/manifests/*_consoleplugin.yaml", payloadDir),

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

While just removing the ConsolePlugin like this may be sufficient to recover HyperShift install in openshift/cluster-version-operator#1398, I'd expect us to be using %s/manifests/0000_50_cluster-update-console-plugin_* or similar to remove all of these:

cluster-version-operator$ git show --stat=200 origin/pr/1398  |grep install/
 install/0000_50_cluster-update-console-plugin_10_namespace.yaml      | 15 +++++++++++++++
 install/0000_50_cluster-update-console-plugin_15_serviceaccount.yaml | 11 +++++++++++
 install/0000_50_cluster-update-console-plugin_20_networkpolicy.yaml  | 16 ++++++++++++++++
 install/0000_50_cluster-update-console-plugin_30_configmap.yaml      | 28 ++++++++++++++++++++++++++++
 install/0000_50_cluster-update-console-plugin_50_deployment.yaml     | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 install/0000_50_cluster-update-console-plugin_60_service.yaml        | 20 ++++++++++++++++++++
 install/0000_50_cluster-update-console-plugin_90_consoleplugin.yaml  | 21 +++++++++++++++++++++
 install/image-references                                             |  8 ++++++++

The existing *_deployment.yaml would cover the plugin Deployment, but I'm not seeing anything that would cover the Namespace, etc. And I don't see a point to running anything cluster-update-console-plugin related on HyperShift (where folks launch updates via HostedCluster or some other higher-level API/UI, and do not use in-cluster consoles). Or a point to running anything cluster-update-console-plugin without a ConsolePlugin to get that Service wired up for console rendering.

@jhadvig jhadvig Jun 25, 2026

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.

Good call, updated to 0000_50_cluster-update-console-plugin_* to remove all console plugin manifests. No point running any of them on HyperShift.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IIUC, by removing these behavior does not actually change because the CVO took over the installation of these manifests. Is this correct?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The behavior on current HyperShift is "there are no cluster-update console plugin resources", because cvo#1398 hasn't merged yet. With this HyperShift pull, even after cvo#1398 merges, and TechPreviewNoUpdate standalone clusters get the plugin resources, HyperShift will continue to not get the plugin resources. Because we're deleting those manifests with this HyperShift pull, so the HyperShift-run CVO will not know about them. Because cluster-update is not something HyperShift cluster-owners action from hosted-cluster, spoke-side APIs/UIs; instead, they action cluster updates via HostedCluster or higher-level, hub-ward APIs and UIs.

@codecov

codecov Bot commented Jun 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 43.02%. Comparing base (334535c) to head (24ac382).
⚠️ Report is 35 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8839   +/-   ##
=======================================
  Coverage   43.02%   43.02%           
=======================================
  Files         766      766           
  Lines       94780    94781    +1     
=======================================
+ Hits        40775    40776    +1     
  Misses      51186    51186           
  Partials     2819     2819           
Files with missing lines Coverage Δ
...ontrollers/hostedcontrolplane/v2/cvo/deployment.go 42.02% <100.00%> (+0.28%) ⬆️
Flag Coverage Δ
cmd-support 36.42% <ø> (ø)
cpo-hostedcontrolplane 45.01% <100.00%> (+<0.01%) ⬆️
cpo-other 45.10% <ø> (ø)
hypershift-operator 53.11% <ø> (ø)
other 31.69% <ø> (ø)

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.

@jhadvig jhadvig force-pushed the skip-consoleplugin-bootstrap branch from 0354a8d to 3d26691 Compare June 25, 2026 21:48
The ConsolePlugin CRD (console.openshift.io/v1) is not available during
HyperShift bootstrap — the console operator has not started yet. The
CVO bootstrap init container gets stuck in an infinite retry loop
trying to kubectl apply the ConsolePlugin manifest.

Add *_consoleplugin.yaml to the wildcard removals alongside the
existing *_deployment.yaml and *_servicemonitor.yaml patterns.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jhadvig jhadvig force-pushed the skip-consoleplugin-bootstrap branch from 3d26691 to 24ac382 Compare June 25, 2026 21:54
@muraee

muraee commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

/approve

@openshift-ci

openshift-ci Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jhadvig, muraee

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 the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 26, 2026
@csrwng csrwng added the lgtm Indicates that a PR is ready to be merged. label Jun 26, 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
/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

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

AI Test Failure Analysis

Job: pull-ci-openshift-hypershift-main-e2e-aks | Build: 2070504661890109440 | Cost: $3.6171100000000003 | Failed step: hypershift-azure-run-e2e

View full analysis report


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

@cwbotbot

cwbotbot commented Jun 26, 2026

Copy link
Copy Markdown

Test Results

e2e-aws

e2e-aks

@jhadvig

jhadvig commented Jun 26, 2026

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-aks | Build: 2070608559489421312 | Cost: $2.7789137 | Failed step: hypershift-azure-run-e2e

View full analysis report


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

@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

I now have all the evidence for both jobs. Here's the complete analysis:

Test Failure Analysis Complete

Job Information

Job 1:

  • Prow Job: pull-ci-openshift-hypershift-main-e2e-aws-upgrade-hypershift-operator
  • Build ID: 2070608569559945216
  • Target: e2e-aws-upgrade-hypershift-operator
  • Failed Step: hypershift-aws-run-e2e-nested (test phase)
  • Failed Test: TestUpgradeHyperShiftOperator/ValidateHostedCluster/EnsureNoCrashingPods

Job 2:

  • Prow Job: pull-ci-openshift-hypershift-main-e2e-aks
  • Build ID: 2070608559489421312
  • Target: e2e-aks
  • Failed Step: hypershift-azure-run-e2e (test phase)
  • Failed Tests: TestCreateCluster/ValidateHostedCluster/EnsureNoCrashingPods, TestAutoscaling/ValidateHostedCluster/EnsureNoCrashingPods

Test Failure Analysis

Error

Container packageserver in pod packageserver-6c76778d95-h6hsp has a restartCount > 0 (2)

Packageserver crash reason (from pod lastState.terminated.message):
  level=fatal msg="failed to apply cluster TLS profile to serving options:
  failed to get APIServer config: apiservers.config.openshift.io \"cluster\" not found"

Summary

Both jobs failed with the identical root cause: the packageserver container in the hosted cluster's control plane namespace crashed twice during startup (restartCount=2) before stabilizing. The crash occurs because packageserver attempts to read the apiservers.config.openshift.io/cluster resource during initialization, but this resource does not yet exist during early hosted cluster bootstrap. After 2 crash-loop restarts the resource becomes available and the container starts successfully — but the EnsureNoCrashingPods validation check flags any container with restartCount > 0 as a failure. This is a pre-existing startup race condition in HyperShift's hosted cluster bootstrap, entirely unrelated to PR #8839's CVO ConsolePlugin manifest changes.

Root Cause

Pre-existing bootstrap race condition in packageserver, not caused by PR #8839.

The packageserver deployment in the hosted control plane namespace starts before the apiservers.config.openshift.io/cluster config resource is created by the cluster version operator. The packageserver fatally exits with:

failed to apply cluster TLS profile to serving options: failed to get APIServer config: apiservers.config.openshift.io "cluster" not found

This race happens consistently across both AWS and AKS platforms:

  • AWS (upgrade job): packageserver-6c76778d95-h6hsp in namespace e2e-clusters-hp4vq-ho-upgrade-qq94s — restartCount=2, last crash at 2026-06-26T21:17:51Z, recovered by 21:18:04Z
  • AKS (e2e-aks): packageserver-668564b57c-fs9br in namespace e2e-clusters-rp29d-autoscaling-5rpfq — restartCount=2, last crash at 2026-06-26T21:22:25Z
  • AKS (e2e-aks): packageserver-7fc49ffb-l82md in namespace for TestCreateCluster — restartCount=2

The EnsureNoCrashingPods test then validates all pods and fails any with restartCount > 0, catching these transient startup crashes.

PR #8839 is unrelated. The PR only modifies the CVO bootstrap init container's preparePayloadScript to add rm -f of 0000_50_cluster-update-console-plugin_* manifests alongside existing *_deployment.yaml and *_servicemonitor.yaml removals. It changes files in control-plane-operator/controllers/hostedcontrolplane/v2/cvo/deployment.go and test fixtures — nothing related to packageserver, OLM, or the APIServer config resource ordering.

Recommendations
  1. Retry / /retest: These failures are flaky and unrelated to PR OTA-1956: Skip ConsolePlugin manifests during CVO bootstrap #8839. A retest should pass if the packageserver happens to not crash-loop (or crashes fewer times before the resource exists).

  2. Upstream fix for packageserver startup: The packageserver should handle the missing apiservers.config.openshift.io/cluster resource gracefully during startup rather than fatally exiting. It could retry with backoff or use a default TLS profile until the resource becomes available.

  3. Consider tolerating transient restarts in EnsureNoCrashingPods: The test could allow a small number of restarts (e.g., ≤2) for known control-plane components during bootstrap, or only check restarts after the cluster is fully rolled out.

  4. Alternative: The availability-prober init container already gates packageserver startup on kube-apiserver readiness and CatalogSource CRD availability, but it does not check for apiservers.config.openshift.io/cluster. Adding this resource to the --required-api list would prevent the race.

Evidence
Evidence Detail
Failing test EnsureNoCrashingPods — flags any pod with restartCount > 0
Crashing pod packageserver container, restartCount=2 in all affected clusters
Crash message level=fatal msg="failed to apply cluster TLS profile to serving options: failed to get APIServer config: apiservers.config.openshift.io \"cluster\" not found"
AWS pod packageserver-6c76778d95-h6hsp in e2e-clusters-hp4vq-ho-upgrade-qq94s, exitCode=1, crashed at 21:17:51Z, recovered by 21:18:04Z
AKS pod (Autoscaling) packageserver-668564b57c-fs9br in e2e-clusters-rp29d-autoscaling-5rpfq, exitCode=1, crashed at 21:22:25Z
AKS pod (CreateCluster) packageserver-7fc49ffb-l82md, restartCount=2, same fatal error
PR #8839 changes Only cvo/deployment.go and CVO test fixtures — adds rm -f for ConsolePlugin manifests during CVO bootstrap
Relationship to PR None — packageserver crash is a pre-existing bootstrap race condition unrelated to CVO manifest handling
Pod final state All pods recovered to Running/Ready after restarts — the cluster was fully operational
Operator JUnit All CI steps passed except hypershift-aws-run-e2e-nested / hypershift-azure-run-e2e (the e2e test step)

@jhadvig

jhadvig commented Jun 29, 2026

Copy link
Copy Markdown
Member Author

/retest

@wking

wking commented Jun 29, 2026

Copy link
Copy Markdown
Member

/verified by CI, and we'll run even more CI on cvo#1398

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jun 29, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@wking: This PR has been marked as verified by CI,and we'll run even more CI on [cvo#1398](https://github.com/openshift/cluster-version-operator/pull/1398).

Details

In response to this:

/verified by CI, and we'll run even more CI on cvo#1398

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 Jun 29, 2026

Copy link
Copy Markdown
Contributor

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

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants