-
Notifications
You must be signed in to change notification settings - Fork 585
WRKLDS-728: Make Build and DeploymentConfig API optional through capabilities #1462
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WRKLDS-728: Make Build and DeploymentConfig API optional through capabilities #1462
Conversation
|
Hello @ingvagabund! Some important instructions when contributing to openshift/api: |
|
@ingvagabund: This pull request references WRKLDS-728 which is a valid jira issue. 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 kubernetes/test-infra repository. |
582e6c7 to
a161f97
Compare
a161f97 to
d557f97
Compare
|
/lgtm /hold Feel free to release when ready, may want to line this up with some other PRs for pre-merge testing |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ingvagabund, JoelSpeed 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 |
|
/hold cancel |
|
@ingvagabund: 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/test-infra repository. I understand the commands that are listed here. |
The capability is new in 4.14, via openshift/api@d557f9784b (WRKLDS-728: Make Build and DeploymentConfig API optional through capabilities, 2023-05-24, openshift/api#1462) and ba3aeb9 (vendor: bump openshift/api, 2023-08-02, openshift#950). But as pointed out in [1], 4.14 releases do not declare any manifests as linked to the new capability: $ oc adm release extract --to manifests quay.io/openshift-release-dev/ocp-release:4.14.0-rc.5-x86_64 Extracted release payload from digest sha256:042899f17f33259ed9f2cfc179930af283733455720f72ea3483fd1905f9b301 created at 2023-10-10T18:00:08Z $ grep -ohr 'capability.openshift.io/name:.*' manifests | sort | uniq capability.openshift.io/name: baremetal capability.openshift.io/name: Console capability.openshift.io/name: CSISnapshot capability.openshift.io/name: ImageRegistry capability.openshift.io/name: Insights capability.openshift.io/name: MachineAPI capability.openshift.io/name: marketplace capability.openshift.io/name: NodeTuning capability.openshift.io/name: openshift-samples capability.openshift.io/name: Storage That means our existing logic to compare reconciled-manifest requirements for detecting the need to implicitly enable capabilities breaks down. In this commit, I'm teaching the outgoing 4.13 CVO that all 4.13 clusters have the DeploymentConfig capability enabled (even if it is not declared by a ClusterVersion capability in 4.13), so that capability needs to persist into 4.14 releases, to avoid surprising admins by dropping functionality. Folks who do want to drop DeploymentConfig functionality will need to perform fresh installs with 4.14 or later, because capabilities cannot be uninstalled [2]. [1]: https://issues.redhat.com/browse/OCPBUGS-20321 [2]: https://github.com/openshift/enhancements/blob/d2edd51b600c5490eaa3650aac3b45a0bff5b3d5/enhancements/installer/component-selection.md#capabilities-cannot-be-uninstalled
Both Build and DeploymentConfig APIs have been selected as optional APIs to reduce the resource footprint and bug surface area for clusters that do not need to utilize the deploymentconfig functionality, such as SNO and OKE. OCP 4.14 will be the first release where both APIs are optional, yet still enabled. Corresponding epics:
This PR is a prerequisite for merging any work over OAM and OCM. E.g.: