-
Notifications
You must be signed in to change notification settings - Fork 71
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
OCPBUGS-34077: Always Disable Default Rolebindings Controller #346
OCPBUGS-34077: Always Disable Default Rolebindings Controller #346
Conversation
@adambkaplan: This pull request references Jira Issue OCPBUGS-34077, which is valid. The bug has been moved to the POST state. 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. In 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. |
@adambkaplan: This pull request references Jira Issue OCPBUGS-34077, which is valid. 3 validation(s) were run on this bug
Requesting review from QA contact: In 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. |
eec6883
to
6d168ec
Compare
/assign @apoorvajagtap /cc @ingvagabund |
/retest |
@adambkaplan thanks for taking care of this! I believe, we need to append the controller details in the controller.disabledControllers as well.
|
With OCPBUILD-7, default namespace rolebindings for the Image Registry, DeploymentConfig, and Builds are handled by separate controllers. The initial refactor in OCPBUILD-8 kept the default rolebindings controller in place to allow upgrade from 4.15 -> 4.16. However, the corresponding operator change in OCPBUILD-9 forgot to disable the default rolebindings controller. This leads to the following side effects: - On clusters with no capabilities, the default role bindings are created and reconciled. - On a standard installation, there is potential for race conditions and server-side conflicts as two or more controllers fight to reconcile a resource. At scale, this can lead to excessive load on the apiserver. This change ensures that the default rolebindings controller is always disabled. As a follow-up, the code for the default rolebindings controller can be safely removed in OCP 4.17. Signed-off-by: Adam Kaplan <adam.kaplan@redhat.com>
6d168ec
to
5922aae
Compare
// controller should be always be disabled to prevent race conditions and conflicts. | ||
|
||
// TODO - the default rolebindings controller code should be removed in 4.17+ | ||
controllers = append(controllers, "-openshift.io/default-rolebindings") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ingvagabund now I am wondering why I am duplicating logic. Should this code be removed in favor of what is in observe_controllers.go
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussed in slack - for now we are going to leave this logic in place. I may craft a follow-up PR to address this concern.
/label qe-approved @apoorvajagtap tested this on a no-capabilities cluster, then enabled Build, Image Registry, and DeploymentConfig one by one. |
@adambkaplan: This pull request references Jira Issue OCPBUGS-34077, which is valid. 3 validation(s) were run on this bug
No GitHub users were found matching the public email listed for the QA contact in Jira (olemefer@redhat.com), skipping review request. In 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. |
/label docs-approved Documentation via release note in JIRA. |
/label px-approved No change to product experience - admin workflow to enable a capability is not changing. |
The
|
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: adambkaplan, apoorvajagtap The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@adambkaplan: all tests passed! Full PR test history. Your PR dashboard. 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. |
@adambkaplan: Jira Issue OCPBUGS-34077: All pull requests linked via external trackers have merged: Jira Issue OCPBUGS-34077 has been moved to the MODIFIED state. In 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-openshift-controller-manager-operator-container-v4.17.0-202405240410.p0.g9e5ec64.assembly.stream.el9 for distgit ose-cluster-openshift-controller-manager-operator. |
With OCPBUILD-7, default namespace rolebindings for the Image Registry, DeploymentConfig, and Builds are handled by separate controllers. The initial refactor in OCPBUILD-8 kept the default rolebindings controller in place to allow upgrade from 4.15 -> 4.16. However, the corresponding operator change in OCPBUILD-9 forgot to disable the default rolebindings controller. This leads to the following side effects:
This change ensures that the default rolebindings controller is always disabled. As a follow-up, the code for the default rolebindings controller can be safely removed in OCP 4.17.