[release-4.15] OCPBUGS-28928: Prevent upgrades for SHA1 default cert and SHA1 route certs #1014
Conversation
|
@gcs278: This pull request references Jira Issue OCPBUGS-26498, which is invalid:
Comment The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
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. |
|
@gcs278: This pull request references Jira Issue OCPBUGS-26498, which is valid. 3 validation(s) were run on this bug
Requesting review from QA contact: DetailsIn response to this:
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. |
4ea39b1 to
a565640
Compare
|
@gcs278: This pull request references Jira Issue OCPBUGS-26498, which is valid. 3 validation(s) were run on this bug
Requesting review from QA contact: The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
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. |
|
@gcs278: This pull request references Jira Issue OCPBUGS-26498, which is invalid:
Comment DetailsIn response to this:
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. |
Add a SignatureAlgorithm argument the generateCertificate E2E helper function so that we can support generating certificates with incompatible SHA-1 algorithms in future E2E tests.
The route upgradeable control loop determines upgradeablity by searching for the UnservableInFutureVersions condition in the routes. It creates an admin-gate if the condition is found. This implemenentation targets 4.15 upgrades to 4.16 specifically and assumes any UnservableInFutureVersions route status is an upgrade blocker. Add E2E test to validate the functionality of the admin-gate as well as validating that the router adds the UnservableInFutureVersions condition for routes with SHA-1 certificates.
|
Thanks for the quick updates! |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Miciah The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
This is fairly low risk. The changes are scoped to a small refactoring in the route-metrics controller, a new route-upgradeable controller, and a new upgradeability check, all of which have good test coverage. /label backport-risk-assessed |
/test e2e-azure-operator |
|
@wking Yea it's caused by quite a simple problem and not related to this PR: I'll make a bug eventually so NE can track this flake. |
|
/label qe-approved |
|
/test e2e-gcp-operator |
|
/label cherry-pick-approved |
|
@gcs278: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions 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. |
|
@gcs278: Jira Issue OCPBUGS-28928: All pull requests linked via external trackers have merged:
Jira Issue OCPBUGS-28928 has been moved to the MODIFIED state. DetailsIn response to this:
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. |
|
[ART PR BUILD NOTIFIER] This PR has been included in build ose-cluster-ingress-operator-container-v4.15.0-202406120537.p0.ga0ac804.assembly.stream.el9 for distgit ose-cluster-ingress-operator. |
|
Fix included in accepted release 4.15.0-0.nightly-2024-06-12-223752 |
Note: This is NOT a backport or cherry-pick of any commits, but instead a discrete PR targeting 4.15.
This PR handles SHA1 certificate upgradeable scenarios for 4.15. With OpenSSL3.0 provided by RHEL9 in 4.16, the router will fail to start if any cert provided is SHA1.
First, if the default certificate on the Ingress Controller object is using SHA1, then set
Upgradeableto be False.Secondly, add a new control loop, route deprecated, that determines upgradeablity by searching for the
UnservableInFutureVersionscondition in the routes. TheUnservableInFutureVersionswill be added to the route by openshift/router#555 when a SHA1 certificate exists on the route. It creates an admin-gate if aUnservableInFutureVersionscondition is found. This logic assumes anyUnservableInFutureVersionsroute status condition is an upgrade blocker.This implementation targets 4.15 to 4.16 updates specifically, so it is only targeting the
release-4.15branch and we will be merged in the backport of https://issues.redhat.com/browse/OCPBUGS-26498. The code should not be merged into 4.16.This PR leveraged logic from openshift/vmware-vsphere-csi-driver-operator#171.
This PR depends on openshift/router#585 for E2E test to succeed.