Skip to content

OCPBUGS-74511: remove RouteExternalCertificate feature gate#1355

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:masterfrom
jcmoraisjr:OCPBUGS-74511-remove-featuregate
Mar 4, 2026
Merged

OCPBUGS-74511: remove RouteExternalCertificate feature gate#1355
openshift-merge-bot[bot] merged 1 commit intoopenshift:masterfrom
jcmoraisjr:OCPBUGS-74511-remove-featuregate

Conversation

@jcmoraisjr
Copy link
Copy Markdown
Member

@jcmoraisjr jcmoraisjr commented Feb 3, 2026

RouteExternalCertificate is enabled by default, this is the first half of the change to remove it. After merging, its declaration should be removed from openshift/api as well.

Jira: https://issues.redhat.com/browse/OCPBUGS-74511

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Feb 3, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@jcmoraisjr: This pull request references Jira Issue OCPBUGS-74511, 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 (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @melvinjoseph86

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

Details

In response to this:

Jira: https://issues.redhat.com/browse/OCPBUGS-74511

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 openshift-ci-robot added the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label Feb 3, 2026
@melvinjoseph86
Copy link
Copy Markdown

/retest

@melvinjoseph86
Copy link
Copy Markdown

@jcmoraisjr i think we need a API PR also to test..
today i tested with this PR and it seems the 'RouteExternalCertificate' is still enabled in the featuregate

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@jcmoraisjr: This pull request references Jira Issue OCPBUGS-74511, which is valid.

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

Requesting review from QA contact:
/cc @melvinjoseph86

Details

In response to this:

RouteExternalCertificate is enabled by default, this is the first half of the change to remove it. After merging, its declaration should be removed from openshift/api as well.

Jira: https://issues.redhat.com/browse/OCPBUGS-74511

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.

jcmoraisjr added a commit to jcmoraisjr/openshift-api that referenced this pull request Feb 5, 2026
RouteExternalCertificate is enabled by default, this is the second half
of the changes to remove it and should be merged only after
openshift/cluster-ingress-operator#1355
being merged.
@jcmoraisjr jcmoraisjr force-pushed the OCPBUGS-74511-remove-featuregate branch from cc2729b to 9a9972e Compare February 9, 2026 20:41
@jcmoraisjr
Copy link
Copy Markdown
Member Author

/retest

Comment thread pkg/operator/controller/ingress/deployment_test.go
@jcmoraisjr jcmoraisjr force-pushed the OCPBUGS-74511-remove-featuregate branch from 9a9972e to d50f599 Compare February 10, 2026 10:08
)
}
env = append(env,
corev1.EnvVar{Name: "ROUTER_ENABLE_EXTERNAL_CERTIFICATE", Value: "true"},
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.

I was wondering what if we completely drop this environment variable, now that it's default value is true

The only consumer of this environment is here: https://github.com/openshift/router/blob/d2db065ae452ecfdb482f0ac4c6778b0c0e48b7f/pkg/cmd/infra/router/router.go#L115

So, should we remove the logic from o/router first, then here?

/cc @Miciah @alebedev87

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.

Router change in case this is the way to go: openshift/router#730

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.

I was wondering what if we completely drop this environment variable

After an internal discussion we agreed on keeping the existing envvar as the safest way forward.

@openshift-ci openshift-ci Bot requested a review from Miciah February 10, 2026 10:21
@melvinjoseph86
Copy link
Copy Markdown

Verified using cluster bot
Installed a cluster using all the PRs
launch 4.22,openshift/api#2693,#1355,openshift/kubernetes#2585,openshift/openshift-apiserver#604,openshift/library-go#2122,openshift/router#730 aws

➜  oc get featuregates.config.openshift.io cluster -oyaml
apiVersion: config.openshift.io/v1
kind: FeatureGate
metadata:
  annotations:
    include.release.openshift.io/self-managed-high-availability: "true"
  creationTimestamp: "2026-02-10T14:47:19Z"
  generation: 1
  name: cluster
  resourceVersion: "693"
  uid: b82ab7c5-7557-4ebf-beca-696bb6ea69cd
spec: {}
status:
  featureGates:
<-----snipp----->
    enabled:
    - name: AzureWorkloadIdentity
    - name: BuildCSIVolumes
    - name: CPMSMachineNamePrefix
    - name: ConsolePluginContentSecurityPolicy
    - name: ExternalOIDC
    - name: ExternalOIDCWithUIDAndExtraClaimMappings
    - name: GCPClusterHostedDNSInstall
    - name: GatewayAPI
    - name: GatewayAPIController
    - name: HighlyAvailableArbiter
    - name: ImageStreamImportMode
    - name: ImageVolume
    - name: KMSv1
    - name: MachineConfigNodes
    - name: ManagedBootImages
    - name: ManagedBootImagesAWS
    - name: ManagedBootImagesAzure
    - name: ManagedBootImagesCPMS
    - name: ManagedBootImagesvSphere
    - name: MetricsCollectionProfiles
    - name: MutableCSINodeAllocatableCount
    - name: NewOLM
    - name: NewOLMOwnSingleNamespace
    - name: NewOLMWebhookProviderOpenshiftServiceCA
    - name: OpenShiftPodSecurityAdmission
    - name: PinnedImages
    - name: ServiceAccountTokenNodeBinding
    - name: SigstoreImageVerification
    - name: SigstoreImageVerificationPKI
    - name: StoragePerformantSecurityPolicy
    - name: UpgradeStatus
    - name: UserNamespacesPodSecurityStandards
    - name: UserNamespacesSupport
    - name: VSphereMultiDisk
    - name: VSphereMultiNetworks
    version: 4.22.0-0-2026-02-10-142923-test-ci-ln-6krqtdk-latest

The RouteExternalCertificate is not visible in feature gate enable status.
Also the QE test case of RouteExternalCertificate is passing without any issue

passed: (1m43s) 2026-02-10T16:18:55 "[sig-network-edge] Network_Edge Component_Router Author:hongli-ROSA-OSD_CCS-ARO-High-73771-router can load secret"
Writing JUnit report to junit_e2e_20260210-161855.xml
1 pass, 0 skip (1m43s)

Hence marking as verified
/verified by @mjoseph

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Feb 10, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@melvinjoseph86: This PR has been marked as verified by @mjoseph.

Details

In response to this:

Verified using cluster bot
Installed a cluster using all the PRs
launch 4.22,openshift/api#2693,#1355,openshift/kubernetes#2585,openshift/openshift-apiserver#604,openshift/library-go#2122,openshift/router#730 aws

➜  oc get featuregates.config.openshift.io cluster -oyaml
apiVersion: config.openshift.io/v1
kind: FeatureGate
metadata:
 annotations:
   include.release.openshift.io/self-managed-high-availability: "true"
 creationTimestamp: "2026-02-10T14:47:19Z"
 generation: 1
 name: cluster
 resourceVersion: "693"
 uid: b82ab7c5-7557-4ebf-beca-696bb6ea69cd
spec: {}
status:
 featureGates:
<-----snipp----->
   enabled:
   - name: AzureWorkloadIdentity
   - name: BuildCSIVolumes
   - name: CPMSMachineNamePrefix
   - name: ConsolePluginContentSecurityPolicy
   - name: ExternalOIDC
   - name: ExternalOIDCWithUIDAndExtraClaimMappings
   - name: GCPClusterHostedDNSInstall
   - name: GatewayAPI
   - name: GatewayAPIController
   - name: HighlyAvailableArbiter
   - name: ImageStreamImportMode
   - name: ImageVolume
   - name: KMSv1
   - name: MachineConfigNodes
   - name: ManagedBootImages
   - name: ManagedBootImagesAWS
   - name: ManagedBootImagesAzure
   - name: ManagedBootImagesCPMS
   - name: ManagedBootImagesvSphere
   - name: MetricsCollectionProfiles
   - name: MutableCSINodeAllocatableCount
   - name: NewOLM
   - name: NewOLMOwnSingleNamespace
   - name: NewOLMWebhookProviderOpenshiftServiceCA
   - name: OpenShiftPodSecurityAdmission
   - name: PinnedImages
   - name: ServiceAccountTokenNodeBinding
   - name: SigstoreImageVerification
   - name: SigstoreImageVerificationPKI
   - name: StoragePerformantSecurityPolicy
   - name: UpgradeStatus
   - name: UserNamespacesPodSecurityStandards
   - name: UserNamespacesSupport
   - name: VSphereMultiDisk
   - name: VSphereMultiNetworks
   version: 4.22.0-0-2026-02-10-142923-test-ci-ln-6krqtdk-latest

The RouteExternalCertificate is not visible in feature gate enable status.
Also the QE test case of RouteExternalCertificate is passing without any issue

passed: (1m43s) 2026-02-10T16:18:55 "[sig-network-edge] Network_Edge Component_Router Author:hongli-ROSA-OSD_CCS-ARO-High-73771-router can load secret"
Writing JUnit report to junit_e2e_20260210-161855.xml
1 pass, 0 skip (1m43s)

Hence marking as verified
/verified by @mjoseph

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.

@jcmoraisjr
Copy link
Copy Markdown
Member Author

/retest

@rikatz
Copy link
Copy Markdown
Member

rikatz commented Feb 25, 2026

/assign
/cc

@openshift-ci openshift-ci Bot requested a review from rikatz February 25, 2026 15:50
t.Fatalf("invalid router Deployment: %v", err)
}

// Verify that router external certificate env var is set to 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.

Now as we set this envvar unconditionally, this comment is the accurate one.

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.

Ow what a mess I did. Just addressed.

RouteExternalCertificate is now enabled by default. This update is
removing references to this feature gate, hardcoding its behavior as
enabled.

https://issues.redhat.com/browse/OCPBUGS-74511
@jcmoraisjr jcmoraisjr force-pushed the OCPBUGS-74511-remove-featuregate branch from d50f599 to 70bab84 Compare March 3, 2026 16:46
@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Mar 3, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 3, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 898f1ff and 70bab84.

📒 Files selected for processing (4)
  • pkg/operator/controller/ingress/controller.go
  • pkg/operator/controller/ingress/deployment.go
  • pkg/operator/controller/ingress/deployment_test.go
  • pkg/operator/operator.go

📝 Walkthrough

Walkthrough

The changes remove the RouteExternalCertificateEnabled configuration field from the ingress controller setup. The ROUTER_ENABLE_EXTERNAL_CERTIFICATE environment variable is now unconditionally set to "true" in deployments, replacing the previous conditional logic that gated its inclusion. Feature flag computation for FeatureGateRouteExternalCertificate is removed from the operator initialization. Test coverage is simplified to validate only the scenario where external certificate support is enabled. These modifications consolidate the external certificate feature into a permanent, always-enabled state.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically identifies the main change: removing the RouteExternalCertificate feature gate. It is concise, relates directly to the changeset, and helps readers understand the primary modification.
Description check ✅ Passed The description is directly related to the changeset, explaining that RouteExternalCertificate is now enabled by default and that this PR removes the feature gate. It references the Jira ticket and indicates this is the first part of a two-part change.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@alebedev87
Copy link
Copy Markdown
Contributor

/lgtm
/approve

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Mar 3, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 3, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alebedev87

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 Mar 3, 2026
@melvinjoseph86
Copy link
Copy Markdown

reapplying verified label based on #1355 (comment)
/verified later @mjoseph

@openshift-ci-robot openshift-ci-robot added verified-later verified Signifies that the PR passed pre-merge verification criteria labels Mar 4, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@melvinjoseph86: This PR has been marked to be verified later by @mjoseph.

Details

In response to this:

reapplying verified label based on #1355 (comment)
/verified later @mjoseph

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.

@melvinjoseph86
Copy link
Copy Markdown

/retest

@jcmoraisjr
Copy link
Copy Markdown
Member Author

/test e2e-gcp-operator

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Mar 4, 2026

@jcmoraisjr: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-merge-bot openshift-merge-bot Bot merged commit 134fce9 into openshift:master Mar 4, 2026
18 checks passed
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@jcmoraisjr: Jira Issue OCPBUGS-74511: Some pull requests linked via external trackers have merged:

The following pull request, linked via external tracker, has not merged:

All associated pull requests must be merged or unlinked from the Jira bug in order for it to move to the next state. Once unlinked, request a bug refresh with /jira refresh.

Jira Issue OCPBUGS-74511 has not been moved to the MODIFIED state.

This PR is marked as verified-later. Jira issue(s) in the title of this PR will require post-merge verification. After testing, it must be manually moved to the VERIFIED state.

Details

In response to this:

RouteExternalCertificate is enabled by default, this is the first half of the change to remove it. After merging, its declaration should be removed from openshift/api as well.

Jira: https://issues.redhat.com/browse/OCPBUGS-74511

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.

@jcmoraisjr jcmoraisjr deleted the OCPBUGS-74511-remove-featuregate branch March 4, 2026 14:35
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. 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. verified Signifies that the PR passed pre-merge verification criteria verified-later

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants