Skip to content

NO-JIRA: Gate control-plane TLS options by payload version - #9626

Draft
stevekuznetsov wants to merge 1 commit into
openshift:mainfrom
stevekuznetsov:skuznets/tls-payload-compatibility
Draft

stevekuznetsov wants to merge 1 commit into
openshift:mainfrom
stevekuznetsov:skuznets/tls-payload-compatibility

Conversation

@stevekuznetsov

@stevekuznetsov stevekuznetsov commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

Scope: compatibility with an overridden, mismatched CPO; not a demonstrated fix required for normal payload-matched HyperShift operation.

The performance experiment paired a current custom CPO with older 4.21 payload binaries. The newer rendering code emitted TLS options/configuration that those binaries do not support. The audit documents that pairing, but the original launch command and exact deployed attempt artifact were unavailable; the particular harness override invocation is not proven.

Normally, HO selects CPO from the effective control-plane payload, and CPO selects management-side binaries from that same payload. A newer HO managing an older cluster does not itself cause this mismatch. Ordinary upgrades render target images and arguments together; temporarily running older pods is not evidence that these gates are necessary.

Consequently, this PR should be evaluated as accommodation for forced/custom CPO version skew, not as a general production regression fix. Release-specific production hotfix overrides are another possible source of decoupling, but do not imply arbitrary main-CPO/older-payload support. No concrete normal-operation requirement for these TLS gates has been established. Keep this draft pending agreement that this override compatibility belongs upstream.

The implementation gates against ReleaseImageProvider.Version(), not the potentially different user payload version:

Component Newly supported setting Gate
AWS pod identity webhook Minimum TLS and cipher flags 4.22
Azure workload identity webhook Cipher flag and VersionTLSxx minimum values 4.22
Image registry operator Metrics serving --config 4.22
CVO and machine approver Minimum TLS and cipher flags 4.23
Konnectivity Minimum TLS flag 4.23

Preserve supported konnectivity cipher arguments, existing certificates/file watches, and older shipped defaults. Add version/profile matrices including split payloads and regenerate 28 affected deployment fixtures. This does not make arbitrary CPO/payload skew supported or restore unavailable TLS-profile enforcement.

Code references: CPO image selection, release reconciliation guard.

Which issue(s) this PR fixes:

No Jira issue associated yet.

Special notes for your reviewer:

This restores specific startup compatibility, not equivalent centralized TLS-profile enforcement on older binaries. In particular, older konnectivity retains TLS 1.2 even for Modern, and older Azure retains its shipped default. Newer binaries retain configured profile controls. No plaintext transport workaround, resource policy, budgets, replicas, or NodePool hash changes are introduced. CPO adoption can roll affected control-plane deployments.

Feature source references:

The prior experiment audit recorded 4.21.32/4.22 binary checks and source-based 4.23 evidence. Those binary checks were not rerun during extraction. Minor-version gates do not certify every early nightly or overridden image, or general current-CPO compatibility with older releases.

Validation passed locally with vendored modules and bounded Go parallelism:

  • go test -race -count=1 ./control-plane-operator/controllers/hostedcontrolplane/v2/{cvo,kas,machine_approver,registryoperator}
  • go test -race -count=1 -run "^TestControlPlaneComponents$" ./control-plane-operator/controllers/hostedcontrolplane (full fixture verification without update/filter)
  • make lint (API and main modules: zero issues)
  • make run-gitlint, git diff --check, and git verify-commit HEAD

The attempted full pre-commit gate completed binary/e2e builds but was cancelled during repository-wide test compilation. Full pre-commit and live AWS/Azure bring-up/upgrade validation remain incomplete. Keep draft pending remaining validation. One signed-off, GPG-signed commit.

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

  • Compatibility

    • Updated hosted control plane components to apply release-specific configuration based on the control-plane version.
    • TLS minimum-version settings are now passed only to releases that support them, while supported cipher settings remain available.
    • Older releases no longer receive unsupported TLS options.
  • Bug Fixes

    • Registry components on OpenShift 4.21 and earlier no longer receive an unsupported configuration argument.
    • Invalid or missing release versions now produce a clear configuration error.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Sep 16, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@stevekuznetsov: This pull request explicitly references no jira issue.

Details

In response to this:

What this PR does / why we need it:

Avoid unsupported TLS flags/configuration when a newer CPO reconciles older control-plane payload binaries. Gate against ReleaseImageProvider.Version(), not the potentially different user payload version:

Component Newly supported setting Gate
AWS pod identity webhook Minimum TLS and cipher flags 4.22
Azure workload identity webhook Cipher flag and VersionTLSxx minimum values 4.22
Image registry operator Metrics serving --config 4.22
CVO and machine approver Minimum TLS and cipher flags 4.23
Konnectivity Minimum TLS flag 4.23

Preserve supported konnectivity cipher arguments, existing certificates/file watches, and older shipped defaults. Add version/profile matrices including split payloads and regenerate 28 affected deployment fixtures.

Which issue(s) this PR fixes:

No Jira issue associated yet.

Special notes for your reviewer:

This restores specific startup compatibility, not equivalent centralized TLS-profile enforcement on older binaries. In particular, older konnectivity retains TLS 1.2 even for Modern, and older Azure retains its shipped default. Newer binaries retain configured profile controls. No plaintext transport workaround, resource policy, budgets, replicas, or NodePool hash changes are introduced. CPO adoption can roll affected control-plane deployments.

Feature source references:

The prior experiment audit recorded 4.21.32/4.22 binary checks and source-based 4.23 evidence. Those binary checks were not rerun during extraction. Minor-version gates do not certify every early nightly or overridden image, or general current-CPO compatibility with older releases.

Validation passed locally with vendored modules and bounded Go parallelism:

  • go test -race -count=1 ./control-plane-operator/controllers/hostedcontrolplane/v2/{cvo,kas,machine_approver,registryoperator}
  • go test -race -count=1 -run "^TestControlPlaneComponents$" ./control-plane-operator/controllers/hostedcontrolplane (full fixture verification without update/filter)
  • make lint (API and main modules: zero issues)
  • make run-gitlint, git diff --check, and git verify-commit HEAD

The attempted full pre-commit gate completed binary/e2e builds but was cancelled during repository-wide test compilation. Full pre-commit and live AWS/Azure bring-up/upgrade validation remain incomplete. Keep draft pending remaining validation. One signed-off, GPG-signed commit.

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.

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 16, 2026
@openshift-ci

openshift-ci Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@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

@coderabbitai

coderabbitai Bot commented Sep 16, 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: 2071dc07-8a41-460c-9426-749b641e4d5b

📥 Commits

Reviewing files that changed from the base of the PR and between 8403f2e and 79bb76d.

⛔ Files ignored due to path filters (28)
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-image-registry-operator/AROSwift/zz_fixture_TestControlPlaneComponents_cluster_image_registry_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-image-registry-operator/EtcdRestore/zz_fixture_TestControlPlaneComponents_cluster_image_registry_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-image-registry-operator/GCP/zz_fixture_TestControlPlaneComponents_cluster_image_registry_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-image-registry-operator/IBMCloud/zz_fixture_TestControlPlaneComponents_cluster_image_registry_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-image-registry-operator/ModernTLS/zz_fixture_TestControlPlaneComponents_cluster_image_registry_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-image-registry-operator/TechPreviewNoUpgrade/zz_fixture_TestControlPlaneComponents_cluster_image_registry_operator_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/cluster-image-registry-operator/zz_fixture_TestControlPlaneComponents_cluster_image_registry_operator_deployment.yaml is excluded by !**/testdata/**
  • 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/EtcdRestore/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/ModernTLS/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/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/kube-apiserver/AROSwift/zz_fixture_TestControlPlaneComponents_kube_apiserver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/kube-apiserver/EtcdRestore/zz_fixture_TestControlPlaneComponents_kube_apiserver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/kube-apiserver/GCP/zz_fixture_TestControlPlaneComponents_kube_apiserver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/kube-apiserver/IBMCloud/zz_fixture_TestControlPlaneComponents_kube_apiserver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/kube-apiserver/ModernTLS/zz_fixture_TestControlPlaneComponents_kube_apiserver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/kube-apiserver/TechPreviewNoUpgrade/zz_fixture_TestControlPlaneComponents_kube_apiserver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/kube-apiserver/zz_fixture_TestControlPlaneComponents_kube_apiserver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/machine-approver/AROSwift/zz_fixture_TestControlPlaneComponents_machine_approver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/machine-approver/EtcdRestore/zz_fixture_TestControlPlaneComponents_machine_approver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/machine-approver/GCP/zz_fixture_TestControlPlaneComponents_machine_approver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/machine-approver/IBMCloud/zz_fixture_TestControlPlaneComponents_machine_approver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/machine-approver/ModernTLS/zz_fixture_TestControlPlaneComponents_machine_approver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/machine-approver/TechPreviewNoUpgrade/zz_fixture_TestControlPlaneComponents_machine_approver_deployment.yaml is excluded by !**/testdata/**
  • control-plane-operator/controllers/hostedcontrolplane/testdata/machine-approver/zz_fixture_TestControlPlaneComponents_machine_approver_deployment.yaml is excluded by !**/testdata/**
📒 Files selected for processing (9)
  • control-plane-operator/controllers/hostedcontrolplane/v2/cvo/deployment.go
  • control-plane-operator/controllers/hostedcontrolplane/v2/cvo/deployment_test.go
  • control-plane-operator/controllers/hostedcontrolplane/v2/kas/azure_workload_identity_webhook_test.go
  • control-plane-operator/controllers/hostedcontrolplane/v2/kas/deployment.go
  • control-plane-operator/controllers/hostedcontrolplane/v2/kas/deployment_test.go
  • control-plane-operator/controllers/hostedcontrolplane/v2/machine_approver/deployment.go
  • control-plane-operator/controllers/hostedcontrolplane/v2/machine_approver/deployment_test.go
  • control-plane-operator/controllers/hostedcontrolplane/v2/registryoperator/deployment.go
  • control-plane-operator/controllers/hostedcontrolplane/v2/registryoperator/deployment_test.go

Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Walkthrough

Walkthrough

Deployment adapters now parse the control-plane release version and return errors for invalid or empty versions. CVO and machine approver TLS arguments apply only to supported releases. KAS applies version-specific TLS behavior to KAS, AWS, and Azure components. Registry operator removes its configuration argument for OpenShift 4.21 and older releases. Tests now cover release versions, TLS profiles, argument presence, and parsing errors.

Sequence Diagram(s)

sequenceDiagram
  participant ReleaseImageProvider
  participant DeploymentAdapter
  participant TLSConfiguration
  participant Deployment
  ReleaseImageProvider->>DeploymentAdapter: provide release version
  DeploymentAdapter->>DeploymentAdapter: parse semantic version
  DeploymentAdapter->>TLSConfiguration: evaluate version and TLS profile
  TLSConfiguration->>Deployment: add supported arguments
Loading

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to 79bb7

The compatibility gates align with the stated payload-version behavior, and no actionable merge-blocking risk remains.


Important

Pre-merge checks failed

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

❌ Failed checks (1 error, 1 warning)

Check name Status Explanation Resolution
Stable And Deterministic Test Names ❌ Error A newly added subtest title includes a date and timestamp. In kas/deployment_test.go, the release matrix adds 4.23.0-0.nightly-2026-09-08-022115, and t.Run(fmt.Sprintf(..., tc.version), ...) ins… Use stable, descriptive case names for subtests. Keep the full release version, including nightly dates, only in the test data and assertions. For example, add a static name field such as 4.23 nightly or supported 4.23 and use that fi…
Test Structure And Quality ⚠️ Warning The changed unit tests use Gomega assertions without meaningful failure messages, including the exact discouraged pattern from the check. Examples include g.Expect(err).ToNot(HaveOccurred()) and bar… Add meaningful failure messages to every new Gomega assertion. Include the release version, TLS profile, component, and expected flag where relevant. For example, replace bare error assertions with messages such as `"failed to adapt CVO dep…
✅ Passed checks (9 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.
Topology-Aware Scheduling Compatibility ✅ Passed The PR changes only release-version parsing and TLS/registry command arguments. The authoritative diff adds no anti-affinity, topology spread, replica, PDB, node selector/affinity, toleration, arbiter…
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The pull request adds or updates only standard Go unit tests (func Test... with testing.T). It adds no Ginkgo It, Describe, Context, or similar e2e tests. The changed test hunks contain no n…
No-Weak-Crypto ✅ Passed The pull request does not introduce MD5, SHA1, DES, RC4, 3DES, Blowfish, or ECB usage. The added code only gates existing TLS minimum-version and cipher-suite arguments by release version. No custom c…
Container-Privileges ✅ Passed The pull request does not introduce container privileges. The authoritative diff changes TLS arguments, release-version parsing, and a registry --config argument. Added-line and full-diff audits fou…
No-Sensitive-Data-In-Logs ✅ Passed The PR adds no logging calls, logger imports, or event output. The changed production code only parses ReleaseImageProvider.Version(), gates TLS/configuration arguments, and returns errors. The new …
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the primary change: gating control-plane TLS options by payload version. It is concise, specific, and relevant to the changeset.
Full details: Stable And Deterministic Test Names

Explanation

A newly added subtest title includes a date and timestamp. In kas/deployment_test.go, the release matrix adds 4.23.0-0.nightly-2026-09-08-022115, and t.Run(fmt.Sprintf(..., tc.version), ...) inserts that value into the test name. This violates the prohibition on dates and timestamps in test titles. The base version had no such release matrix or title.

Resolution

Use stable, descriptive case names for subtests. Keep the full release version, including nightly dates, only in the test data and assertions. For example, add a static name field such as 4.23 nightly or supported 4.23 and use that field in t.Run; do not interpolate tc.version into the title. Apply the same pattern to the other new version-matrix subtests if their exact version strings are not required in test output.

Full details: Test Structure And Quality

Explanation

The changed unit tests use Gomega assertions without meaningful failure messages, including the exact discouraged pattern from the check. Examples include g.Expect(err).ToNot(HaveOccurred()) and bare object/argument assertions in cvo/deployment_test.go:437-463, kas/deployment_test.go:526-557, machine_approver/deployment_test.go:216-234, and registryoperator/deployment_test.go:34-51. The version/profile matrix names provide test context, but the individual assertion failures do not identify the failed operation, component, release version, or TLS profile. The tests are in-memory unit tests, so no cluster-resource cleanup or wait-timeout issue is introduced. The KAS assertions concern the same TLS-gating behavior across related sidecars rather than unrelated cluster operations.

Resolution

Add meaningful failure messages to every new Gomega assertion. Include the release version, TLS profile, component, and expected flag where relevant. For example, replace bare error assertions with messages such as "failed to adapt CVO deployment for release %q", release.version, and add specific messages to container existence, argument, certificate, cipher, port, and configuration assertions. Preserve the existing matrix coverage.

  • Fix all pre-merge checks with AI
✨ 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 area/platform/azure PR/issue for Azure (AzurePlatform) platform and removed do-not-merge/needs-area labels Sep 16, 2026
@openshift-ci

openshift-ci Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: stevekuznetsov
Once this PR has been reviewed and has the lgtm label, please assign sjenning for approval. For more information see the Code Review Process.

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

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@codecov

codecov Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.71429% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 47.59%. Comparing base (8403f2e) to head (d6b493f).
⚠️ Report is 420 commits behind head on main.

Files with missing lines Patch % Lines
...ontrollers/hostedcontrolplane/v2/kas/deployment.go 74.19% 4 Missing and 4 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #9626      +/-   ##
==========================================
+ Coverage   47.54%   47.59%   +0.04%     
==========================================
  Files         796      796              
  Lines      100027   100057      +30     
==========================================
+ Hits        47560    47619      +59     
+ Misses      49298    49268      -30     
- Partials     3169     3170       +1     
Files with missing lines Coverage Δ
...ontrollers/hostedcontrolplane/v2/cvo/deployment.go 72.97% <100.00%> (+0.75%) ⬆️
...stedcontrolplane/v2/machine_approver/deployment.go 100.00% <100.00%> (+21.42%) ⬆️
...stedcontrolplane/v2/registryoperator/deployment.go 72.50% <100.00%> (+72.50%) ⬆️
...ontrollers/hostedcontrolplane/v2/kas/deployment.go 59.20% <74.19%> (+2.57%) ⬆️
Flag Coverage Δ
cmd-support 41.13% <ø> (ø)
cpo-hostedcontrolplane 50.73% <85.71%> (+0.24%) ⬆️
cpo-other 48.49% <ø> (ø)
hypershift-operator 57.86% <ø> (ø)
other 34.70% <ø> (ø)

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.

…ride

The performance experiment paired a current custom CPO with older 4.21 payload binaries,
causing unsupported TLS flags and registry configuration to be emitted.
This addresses overridden CPO/payload skew, not a demonstrated failure of normal
payload-matched HyperShift. A newer HO alone does not cause this mismatch: CPO and
management-side binaries normally come from the same control-plane release payload.
Ordinary upgrades render target images and arguments together.

Gate options by the control-plane payload version and retain older shipped defaults.
Older binaries still cannot enforce every centralized TLS profile, including Modern.
Version/profile tests and fixtures cover these specific mismatches, not general support
for arbitrary main-CPO/older-payload combinations. An upstream support requirement for
this override compatibility remains to be established.

Signed-off-by: Steve Kuznetsov <stekuznetsov@microsoft.com>
@openshift-ci

openshift-ci Bot commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

Stale PRs are closed after 21d of inactivity.

If this PR is still relevant, comment to refresh it or remove the stale label.
Mark the PR as fresh by commenting /remove-lifecycle stale.

If this PR is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci Bot added lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Oct 17, 2026
@openshift-ci

openshift-ci Bot commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

PR needs rebase.

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.

This branch has not been deployed

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

Labels

area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release area/platform/azure PR/issue for Azure (AzurePlatform) platform do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants