Skip to content

OCPBUGS-105408: Remove DualReplica feature gate - #3123

Open
vimauro wants to merge 1 commit into
openshift:masterfrom
vimauro:retire-dualreplica-add-pacemaker-status
Open

vimauro wants to merge 1 commit into
openshift:masterfrom
vimauro:retire-dualreplica-add-pacemaker-status

Conversation

@vimauro

@vimauro vimauro commented Oct 23, 2026 •

Copy link
Copy Markdown

This PR removes the DualReplica feature gate since it has been promoted.

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

openshift-ci Bot commented Oct 23, 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-ci

openshift-ci Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Hello @vimauro! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@openshift-ci-robot openshift-ci-robot added jira/severity-low Referenced Jira bug's severity is low for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Oct 23, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@vimauro: This pull request references Jira Issue OCPBUGS-105408, which is invalid:

  • expected the bug to target the "5.1.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

…lity feature gate

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 size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Oct 23, 2026
@vimauro vimauro changed the title OCPBUGS-105408: OCPEDGE-3178: Remove DualReplica and add TNFObservabi… OCPBUGS-105408: OCPEDGE-3178: Remove DualReplica and add TNFObservability feature gate Oct 23, 2026
@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Source mode: Auto
  • Repository: openshift/api
  • Branch: master
  • File: .coderabbit.yaml
  • Commit: 9809689
  • Layers: Repository YAML (base), Central YAML (inherited)
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 57950275-4c60-452a-aa59-9c2191b212a0
📥 Commits

Reviewing files that changed from the base of the PR and between 26e1c4c and ecb96c8.

⛔ Files ignored due to path filters: 50
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !**/zz_generated*
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AAA_ungated.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSClusterHostedDNSInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AWSDualStackInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/AzureDualStackInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/BGPBasedVIPManagement.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DualReplica.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/DyanmicServiceEndpointIBMCloud.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/GCPSovereignCloudInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/MutableTopology.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/NutanixMultiSubnets.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/OnPremDNSRecords.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereHostVMGroupZonal.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.featuregated-crd-manifests/infrastructures.config.openshift.io/VSphereMultiVCenterDay2.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.swagger_doc_generated.go is excluded by !**/zz_generated*
  • etcd/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !**/zz_generated*
  • etcd/v1/zz_generated.featuregated-crd-manifests/pacemakerclusters.etcd.openshift.io/AAA_ungated.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • etcd/v1alpha1/zz_generated.featuregated-crd-manifests.yaml is excluded by !**/zz_generated*
  • etcd/v1alpha1/zz_generated.featuregated-crd-manifests/pacemakerclusters.etcd.openshift.io/AAA_ungated.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !**/zz_generated*
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AAA_ungated.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSClusterHostedDNSInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSDualStackInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AWSEuropeanSovereignCloudInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/AzureDualStackInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/BGPBasedVIPManagement.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DualReplica.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/DyanmicServiceEndpointIBMCloud.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/GCPSovereignCloudInstall.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/MutableTopology.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/NutanixMultiSubnets.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/OnPremDNSRecords.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereHostVMGroupZonal.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • machineconfiguration/v1/zz_generated.featuregated-crd-manifests/controllerconfigs.machineconfiguration.openshift.io/VSphereMultiVCenterDay2.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • openapi/generated_openapi/zz_generated.openapi.go is excluded by !openapi/**, !**/zz_generated*
  • openapi/openapi.json is excluded by !openapi/**
📒 Files selected for processing: 2
  • etcd/README.md
  • features/features.go
💤 Files with no reviewable changes: 2
  • features/features.go
  • etcd/README.md

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

📝 Walkthrough

The change removes the DualReplica feature-gate registration and its use in PacemakerCluster declarations and tests. Infrastructure control-plane topology validation now lists DualReplica without feature-gate conditions. Tests cover DualReplica control-plane topology and reject DualReplica as an infrastructure topology. CRD descriptions document DualReplica as the mode for two-node deployments with fencing. Feature-gate catalogs and payload manifests add TNFObservability in the specified configurations.

Priority: ⚪ Pending latest changes

Merge Risk: ⚪ Minimal · up to ecb96

No actionable merge-blocking risk was established for the reviewed changes.

Pre-merge checks: Passed 14 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 5 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 14 passed
Check name Status Explanation
Title check Passed The title clearly and concisely identifies the primary change: removing the DualReplica feature gate.
Description check Passed The description accurately relates the change to promoting DualReplica and removing its feature gate.
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 PASS: The changed test titles are static and descriptive. The added titles name the stable DualReplica topology and validation behavior, with no generated suffixes, timestamps, UUIDs, node names, na…
Test Structure And Quality Passed PASS. The PR adds declarative API validation cases, not handwritten Ginkgo It blocks. Each added case has one responsibility: accept DualReplica control-plane status, reject DualReplica infrastructure…
Microshift Test Compatibility Passed Pass. The pull request adds YAML API integration cases under config/v1/tests and machineconfiguration/v1/tests; it adds no Ginkgo e2e source (It, Describe, Context, or When). The repositor…
Single Node Openshift (Sno) Test Compatibility Passed The pull request adds declarative YAML API tests under config/v1/tests and machineconfiguration/v1/tests. The diff adds no Ginkgo e2e tests or It/Describe/Context/When blocks. The new cases validate t…
Topology-Aware Scheduling Compatibility Passed The pull request does not introduce a topology-blind scheduling constraint. The diff changes API validation and documentation, feature-gate metadata, generated CRDs, and API test fixtures. It adds no …
Ote Binary Stdout Contract Passed PASS. The pull request introduces no process-level stdout writes. The Go diff changes API annotations, documentation, generated schema text, and removes the DualReplica feature registration. It adds…
Ipv6 And Disconnected Network Test Compatibility Passed PASS: The pull request adds YAML API validation cases and moves existing YAML tests; it does not add Ginkgo e2e tests using It, Describe, Context, or When. The added ControllerConfig fixture…
No-Weak-Crypto Passed The pull-request diff contains no MD5, SHA-1, DES, 3DES, RC4, Blowfish, or ECB usage. The changed Go lines only update topology documentation and validation markers, and remove the DualReplica feature…
Container-Privileges Passed No changed container or Kubernetes workload manifest introduces the listed conditions. The added YAML contains Infrastructure and ControllerConfig test objects plus feature-gate and CRD data. The adde…
No-Sensitive-Data-In-Logs Passed The pull request adds no logging code or log statements. The Go diff only changes API documentation, validation markers, and feature-gate declarations; the other changes are tests, manifests, and gene…
Full details: Stable And Deterministic Test Names

Explanation

PASS: The changed test titles are static and descriptive. The added titles name the stable DualReplica topology and validation behavior, with no generated suffixes, timestamps, UUIDs, node names, namespaces, IP addresses, or legacy metadata prefixes. The other changed test files retain static titles.

Full details: Test Structure And Quality

Explanation

PASS. The PR adds declarative API validation cases, not handwritten Ginkgo It blocks. Each added case has one responsibility: accept DualReplica control-plane status, reject DualReplica infrastructure status, or create a ControllerConfig with that topology. The existing generator provides BeforeEach setup, AfterEach resource and CRD cleanup, and a 5-second timeout for its Eventually wait. The added cases introduce no indefinite Eventually/Consistently calls. The test framework also provides the assertion logic and follows the repository's established fixture pattern. Informing is only a recommendation, and no new explicit It block is added.

Full details: Microshift Test Compatibility

Explanation

Pass. The pull request adds YAML API integration cases under config/v1/tests and machineconfiguration/v1/tests; it adds no Ginkgo e2e source (It, Describe, Context, or When). The repository documents these cases as envtest-based API validation tests using a temporary API server, so the MicroShift e2e compatibility check does not apply.

Full details: Single Node Openshift (Sno) Test Compatibility

Explanation

The pull request adds declarative YAML API tests under config/v1/tests and machineconfiguration/v1/tests. The diff adds no Ginkgo e2e tests or It/Describe/Context/When blocks. The new cases validate topology fields and object persistence; they do not assume multiple nodes, scheduling, failover, or other HA behavior.

Full details: Topology-Aware Scheduling Compatibility

Explanation

The pull request does not introduce a topology-blind scheduling constraint. The diff changes API validation and documentation, feature-gate metadata, generated CRDs, and API test fixtures. It adds no Deployment, StatefulSet, DaemonSet, PDB, affinity, topology-spread, replica, node-selector, node-affinity, or toleration configuration. The added test data only exercises controlPlaneTopology: DualReplica.

Full details: Ote Binary Stdout Contract

Explanation

PASS. The pull request introduces no process-level stdout writes. The Go diff changes API annotations, documentation, generated schema text, and removes the DualReplica feature registration. It adds no main, TestMain, suite setup, fmt.Print*, log.Print*, klog, or os.Stdout code. The YAML changes define test data and feature-gate manifests only.

Full details: Ipv6 And Disconnected Network Test Compatibility

Explanation

PASS: The pull request adds YAML API validation cases and moves existing YAML tests; it does not add Ginkgo e2e tests using It, Describe, Context, or When. The added ControllerConfig fixture uses IPv6 literals (fd02::a) and placeholder hostnames/images only, with no public-network connection or external download.

Full details: No-Weak-Crypto

Explanation

The pull-request diff contains no MD5, SHA-1, DES, 3DES, RC4, Blowfish, or ECB usage. The changed Go lines only update topology documentation and validation markers, and remove the DualReplica feature registration. The added YAML tests and generated manifests contain no cryptographic implementation or non-constant-time secret/token comparison.

Full details: Container-Privileges

Explanation

No changed container or Kubernetes workload manifest introduces the listed conditions. The added YAML contains Infrastructure and ControllerConfig test objects plus feature-gate and CRD data. The added diff has no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation, or root execution settings.

Full details: No-Sensitive-Data-In-Logs

Explanation

The pull request adds no logging code or log statements. The Go diff only changes API documentation, validation markers, and feature-gate declarations; the other changes are tests, manifests, and generated documentation. Added test data contains placeholder image references and a pull-secret object name, but no password, token, API key, PII, session ID, hostname, or customer data.

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

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

@vimauro

vimauro commented Oct 23, 2026

Copy link
Copy Markdown
Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Oct 23, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@vimauro: This pull request references Jira Issue OCPBUGS-105408, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.1.0) matches configured target version for branch (5.1.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

/jira refresh

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-robot

Copy link
Copy Markdown

@vimauro: This pull request references Jira Issue OCPBUGS-105408, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.1.0) matches configured target version for branch (5.1.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

This PR removes the DualReplica feature gate since it has been promoted.
Add a new TNFObservability feature gate that we will use for upcoming API changes related to the observability of a two node with fencing topology cluster

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.

@vimauro
vimauro marked this pull request as ready for review October 23, 2026 10:55
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 23, 2026
@openshift-ci
openshift-ci Bot requested review from JoelSpeed and jkyros October 23, 2026 10:56
@vimauro
vimauro force-pushed the retire-dualreplica-add-pacemaker-status branch from 26e1c4c to ecb96c8 Compare October 23, 2026 11:24
@vimauro vimauro changed the title OCPBUGS-105408: OCPEDGE-3178: Remove DualReplica and add TNFObservability feature gate OCPBUGS-105408: Remove DualReplica feature gate Oct 23, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@vimauro: This pull request references Jira Issue OCPBUGS-105408, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.1.0) matches configured target version for branch (5.1.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

This PR removes the DualReplica feature gate since it has been promoted.

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.

@vimauro
vimauro force-pushed the retire-dualreplica-add-pacemaker-status branch from ecb96c8 to 72bdcb8 Compare October 23, 2026 11:26
@JoelSpeed

Copy link
Copy Markdown
Contributor

/payload 5.1 nightly blocking

@openshift-ci

openshift-ci Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

@JoelSpeed: trigger 14 job(s) of type blocking for the nightly release of OCP 5.1

  • periodic-ci-openshift-release-main-ci-5.1-e2e-aws-upgrade-ovn-single-node
  • periodic-ci-openshift-release-main-nightly-5.1-e2e-aws-ovn-upgrade-fips
  • periodic-ci-openshift-release-main-ci-5.1-e2e-azure-ovn-upgrade
  • periodic-ci-openshift-release-main-ci-5.1-upgrade-from-stable-5.0-e2e-gcp-ovn-rt-upgrade
  • periodic-ci-openshift-hypershift-release-5.1-periodics-e2e-azure-aks-ovn-conformance
  • periodic-ci-openshift-hypershift-release-5.1-periodics-e2e-aws-ovn-conformance
  • periodic-ci-openshift-release-main-nightly-5.1-e2e-aws-ovn-serial-1of2
  • periodic-ci-openshift-release-main-nightly-5.1-e2e-aws-ovn-serial-2of2
  • periodic-ci-openshift-release-main-ci-5.1-e2e-aws-ovn-techpreview
  • periodic-ci-openshift-release-main-ci-5.1-e2e-aws-ovn-techpreview-serial-1of3
  • periodic-ci-openshift-release-main-ci-5.1-e2e-aws-ovn-techpreview-serial-2of3
  • periodic-ci-openshift-release-main-ci-5.1-e2e-aws-ovn-techpreview-serial-3of3
  • periodic-ci-openshift-release-main-nightly-5.1-e2e-metal-ipi-ovn-ipv4
  • periodic-ci-openshift-release-main-nightly-5.1-e2e-metal-ipi-ovn-ipv6

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/023c2cd0-ced5-11f1-84f1-c242df0df082-0

@fracappa fracappa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for this clean up @vimauro !

I just want to recommend you to update also the installer, so that we can also retire FeatureGateDualReplica:

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

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Oct 23, 2026
@openshift-ci

openshift-ci Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: jaypoulz
Once this PR has been reviewed and has the lgtm label, please assign deads2k 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

@redhat-chai-bot

Copy link
Copy Markdown
Contributor

Chai test selection for 72bdcb86f360edf5db703f7aa3e9bc1280eb6f82 → master

  • pull-ci-openshift-api-master-e2e-aws-ovn
  • pull-ci-openshift-api-master-e2e-aws-ovn-hypershift
  • pull-ci-openshift-api-master-e2e-aws-ovn-techpreview
  • pull-ci-openshift-api-master-e2e-upgrade
  • pull-ci-openshift-api-master-e2e-upgrade-out-of-change

Reason: PR removes the DualReplica feature gate, promoting it from gated-but-always-enabled to unconditionally ungated. The 4 source changes are in types_infrastructure.go (enum validation marker), features.go (gate definition removal), and types_pacemakercluster.go v1/v1alpha1 (CRD gate marker removal). The remaining 84 files are generated CRD manifests, featuregate payloads, and documentation. Since DualReplica was already enabled in all profiles (Default, OKD, TechPreview, DevPreview), the net CRD schema output is unchanged — DualReplica was already in the controlPlaneTopology enum. The mechanism change (FeatureGateAwareEnum → kubebuilder:validation:Enum) and the PacemakerCluster CRD annotation change (gated → ungated) need runtime validation. First-stage verify-crd-schema, verify-feature-promotion, verify-crdify, and unit all passed, confirming generation correctness. Selected coverage: - e2e-aws-ovn: Default feature set e2e — validates CRD installation and cluster operation with ungated schema. - e2e-aws-ovn-techpreview: TechPreview feature set — validates TechPreview CRD variant (different CRD files modified). - e2e-upgrade: Upgrade from stable — critical for feature gate removal; validates CVO processes the transition from gated to ungated PacemakerCluster CRD and removes DualReplica from featuregate manifests during upgrade. - e2e-upgrade-out-of-change: Upgrade from older image — validates the cross-version transition path where the source image has the DualReplica gate and the target does not. - e2e-aws-ovn-hypershift: HyperShift variant — validates distinct HyperShift CRD manifests (Hypershift-CustomNoUpgrade, Hypershift-DevPreviewNoUpgrade variants all modified). Not selected: - e2e-aws-ovn-customnoupgrade: Same openshift-e2e-aws workflow as e2e-aws-ovn; DualReplica was enabled in CustomNoUpgrade, so net CRD schema is identical. Covered by default e2e. - e2e-aws-ovn-hypershift-conformance: HyperShift CRD installation already exercised by e2e-aws-ovn-hypershift. - e2e-aws-serial-{1,2}of2, e2e-aws-serial-techpreview-{1,2}of2: No topology behavior change (gate was already enabled); serial tests don't exercise the CRD mechanism change differently than parallel. - e2e-azure, e2e-gcp: Change is cloud-agnostic (Infrastructure CRD controlPlaneTopology enum, PacemakerCluster CRD, featuregate manifests). AWS e2e already validates CRD installation. - e2e-vsphere-ovn, e2e-vsphere-ovn-techpreview: types_infrastructure.go matches the vSphere annotation, but the change (DualReplica enum ungating) is not vSphere-specific — DualReplica is a BareMetal two-node topology. Infrastructure CRD schema already validated by AWS e2e. - minor-e2e-upgrade-minor: Two upgrade tests already cover the feature gate transition path.

/test e2e-aws-ovn
/test e2e-aws-ovn-hypershift
/test e2e-aws-ovn-techpreview
/test e2e-upgrade
/test e2e-upgrade-out-of-change

@redhat-chai-bot

Copy link
Copy Markdown
Contributor

/pipeline mark-pipeline-gate 72bdcb8

@redhat-chai-bot

Copy link
Copy Markdown
Contributor

Chai test selection for 72bdcb86f360edf5db703f7aa3e9bc1280eb6f82 → master

  • pull-ci-openshift-api-master-e2e-aws-ovn
  • pull-ci-openshift-api-master-e2e-aws-ovn-hypershift
  • pull-ci-openshift-api-master-e2e-aws-ovn-techpreview
  • pull-ci-openshift-api-master-e2e-upgrade-out-of-change

Reason: PR summary: Removes the DualReplica feature gate from openshift/api, promoting the DualReplica ControlPlaneTopology value from gated-but-always-enabled to unconditionally ungated. Source changes: types_infrastructure.go (FeatureGateAwareEnum→kubebuilder:validation:Enum), features.go (gate registration removal), types_pacemakercluster.go v1/v1alpha1 (CRD gate annotation removal), plus 84 generated manifests/test files. Selection (4 jobs): e2e-aws-ovn (standard e2e), e2e-aws-ovn-hypershift (HyperShift), e2e-aws-ovn-techpreview (TechPreview variant), e2e-upgrade-out-of-change (upgrade with unchanged components). All passed ✅. Override: e2e-upgrade — dropping this blocking job based on accepted run evidence. - Run: 2113667677170962432 at head 72bdcb86. Tests executed: 2,423 monitor tests ran (2,254 passed, 125/126 failures were flakes with both pass+fail results). - Sole non-flake failure: [Monitor:audit-log-analyzer][sig-api-machinery][Feature:APIServer] API LBs follow /readyz of kube-apiserver and stop sending requests before server shutdowns for external clients — a GET request to kube-apiserver routed 116s after graceful shutdown began while /readyz=false. This is an AWS internal LB connection-draining race condition. - Causal overlap: none. The PR modifies feature gate registration and CRD manifest content (PacemakerCluster type annotations, ControlPlaneTopology enum validation). The failing test monitors kube-apiserver graceful-shutdown LB behavior — a completely independent subsystem (sig-api-machinery/networking). The DualReplica gate controls CRD field presence, not apiserver lifecycle, readyz endpoints, or LB routing. - Fleet data: ~1.4% failure rate (22/1,581 runs) in e2e-upgrade on AWS. 5 open Jira bugs tracked against this test via Sippy bug_tests association. Known pre-existing race condition. - PR-relevant coverage satisfied: The upgrade completed successfully within this same run, confirming CVO correctly processed the updated CRD manifests with the unconditionally ungated DualReplica enum value. e2e-upgrade-out-of-change also passed, providing additional upgrade coverage. - Residual risk: Low. The override accepts a known LB-draining flake unrelated to API type changes. All PR-relevant upgrade coverage passed.

/override-sticky ci/prow/e2e-upgrade

@openshift-ci

openshift-ci Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

@redhat-chai-bot: Overrode contexts on behalf of redhat-chai-bot: ci/prow/e2e-upgrade

These overrides will persist across retests on the current HEAD SHA. Pushing a new commit will clear them. Use /override-cancel to remove them.

Details

In response to this:

Chai test selection for 72bdcb86f360edf5db703f7aa3e9bc1280eb6f82 → master

  • pull-ci-openshift-api-master-e2e-aws-ovn
  • pull-ci-openshift-api-master-e2e-aws-ovn-hypershift
  • pull-ci-openshift-api-master-e2e-aws-ovn-techpreview
  • pull-ci-openshift-api-master-e2e-upgrade-out-of-change

Reason: PR summary: Removes the DualReplica feature gate from openshift/api, promoting the DualReplica ControlPlaneTopology value from gated-but-always-enabled to unconditionally ungated. Source changes: types_infrastructure.go (FeatureGateAwareEnum→kubebuilder:validation:Enum), features.go (gate registration removal), types_pacemakercluster.go v1/v1alpha1 (CRD gate annotation removal), plus 84 generated manifests/test files. Selection (4 jobs): e2e-aws-ovn (standard e2e), e2e-aws-ovn-hypershift (HyperShift), e2e-aws-ovn-techpreview (TechPreview variant), e2e-upgrade-out-of-change (upgrade with unchanged components). All passed ✅. Override: e2e-upgrade — dropping this blocking job based on accepted run evidence. - Run: 2113667677170962432 at head 72bdcb86. Tests executed: 2,423 monitor tests ran (2,254 passed, 125/126 failures were flakes with both pass+fail results). - Sole non-flake failure: [Monitor:audit-log-analyzer][sig-api-machinery][Feature:APIServer] API LBs follow /readyz of kube-apiserver and stop sending requests before server shutdowns for external clients — a GET request to kube-apiserver routed 116s after graceful shutdown began while /readyz=false. This is an AWS internal LB connection-draining race condition. - Causal overlap: none. The PR modifies feature gate registration and CRD manifest content (PacemakerCluster type annotations, ControlPlaneTopology enum validation). The failing test monitors kube-apiserver graceful-shutdown LB behavior — a completely independent subsystem (sig-api-machinery/networking). The DualReplica gate controls CRD field presence, not apiserver lifecycle, readyz endpoints, or LB routing. - Fleet data: ~1.4% failure rate (22/1,581 runs) in e2e-upgrade on AWS. 5 open Jira bugs tracked against this test via Sippy bug_tests association. Known pre-existing race condition. - PR-relevant coverage satisfied: The upgrade completed successfully within this same run, confirming CVO correctly processed the updated CRD manifests with the unconditionally ungated DualReplica enum value. e2e-upgrade-out-of-change also passed, providing additional upgrade coverage. - Residual risk: Low. The override accepts a known LB-draining flake unrelated to API type changes. All PR-relevant upgrade coverage passed.

/override-sticky ci/prow/e2e-upgrade

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 Oct 23, 2026

Copy link
Copy Markdown
Contributor

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

jira/severity-low Referenced Jira bug's severity is low for the branch this PR is targeting. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. 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. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants