Skip to content

Conversation

@ingvagabund
Copy link
Member

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.:

@openshift-ci
Copy link
Contributor

openshift-ci bot commented May 21, 2023

Hello @ingvagabund! 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 openshift-ci bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label May 21, 2023
@ingvagabund ingvagabund changed the title Make Build and DeploymentConfig API optional through capabilities WRKLDS-728: Make Build and DeploymentConfig API optional through capabilities May 21, 2023
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label May 21, 2023
@openshift-ci-robot
Copy link

openshift-ci-robot commented May 21, 2023

@ingvagabund: This pull request references WRKLDS-728 which is a valid jira issue.

Details

In response to this:

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.:

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.

@openshift-ci openshift-ci bot requested review from deads2k and soltysh May 21, 2023 11:50
@ingvagabund ingvagabund force-pushed the dc-build-capabilities branch from 582e6c7 to a161f97 Compare May 24, 2023 13:05
@ingvagabund ingvagabund force-pushed the dc-build-capabilities branch from a161f97 to d557f97 Compare May 24, 2023 13:06
@JoelSpeed
Copy link
Contributor

/lgtm

/hold Feel free to release when ready, may want to line this up with some other PRs for pre-merge testing

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 24, 2023
@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label May 24, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented May 24, 2023

[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

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 May 24, 2023
ingvagabund added a commit to ingvagabund/cluster-openshift-apiserver-operator that referenced this pull request Jun 20, 2023
ingvagabund added a commit to ingvagabund/cluster-openshift-apiserver-operator that referenced this pull request Jul 14, 2023
ingvagabund added a commit to ingvagabund/cluster-openshift-apiserver-operator that referenced this pull request Jul 19, 2023
knelasevero added a commit to knelasevero/cluster-openshift-controller-manager-operator that referenced this pull request Jul 24, 2023
knelasevero added a commit to knelasevero/cluster-openshift-controller-manager-operator that referenced this pull request Jul 24, 2023
knelasevero added a commit to knelasevero/cluster-openshift-controller-manager-operator that referenced this pull request Jul 24, 2023
@ingvagabund
Copy link
Member Author

/hold cancel

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 3, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 3, 2023

@ingvagabund: 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/test-infra repository. I understand the commands that are listed here.

@openshift-merge-robot openshift-merge-robot merged commit 6bb5f92 into openshift:master Aug 3, 2023
@ingvagabund ingvagabund deleted the dc-build-capabilities branch August 3, 2023 16:57
wking added a commit to wking/cluster-version-operator that referenced this pull request Oct 11, 2023
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
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-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants