Skip to content

Conversation

@camilamacedo86
Copy link
Contributor

@camilamacedo86 camilamacedo86 commented Jan 12, 2026

Add rbac-escalation-operator test bundle and e2e scenario to validate that the ClusterExtension installer ServiceAccount can install operators with diverse RBAC requirements.

This operator requires storage.k8s.io and scheduling.k8s.io permissions that differ from the basic test-operator, ensuring the installer SA's bind/escalate verbs are properly exercised per the documented permission model in docs/concepts/permission-model.md.

The test validates:

  • Installer SA can create RBAC for operators with different permissions
  • Kubernetes escalation prevention works with bind/escalate verbs
  • OLMv1 permission model supports diverse operator requirements
  • Regression prevention for RBAC permission issues

The error can be faced with: https://github.com/operator-framework/operator-controller/actions/runs/20921664760/job/60108536707?pr=2441#step:4:1414

The bind and escalate verbs are documented prerequisites and should have been included in the test RBAC. We’re adding a test to ensure this scenario is exercised and validated correctly.

Copilot AI review requested due to automatic review settings January 12, 2026 13:00
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 12, 2026
@openshift-ci openshift-ci bot requested a review from anik120 January 12, 2026 13:00
@openshift-ci
Copy link

openshift-ci bot commented Jan 12, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign grokspawn for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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 requested a review from grokspawn January 12, 2026 13:00
@netlify
Copy link

netlify bot commented Jan 12, 2026

Deploy Preview for olmv1 ready!

Name Link
🔨 Latest commit bf17ecc
🔍 Latest deploy log https://app.netlify.com/projects/olmv1/deploys/69650635c081900008f5dba8
😎 Deploy Preview https://deploy-preview-2441--olmv1.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new test operator bundle (rbac-escalation-operator) and corresponding e2e test scenario to validate that the ClusterExtension installer ServiceAccount can install operators with diverse RBAC requirements. The test operator requires storage.k8s.io and scheduling.k8s.io permissions that differ from existing test operators, ensuring proper exercise of the installer SA's bind/escalate verbs.

Changes:

  • Added rbac-escalation-operator bundle v1.0.0 with ClusterServiceVersion requiring storage.k8s.io and scheduling.k8s.io permissions
  • Added catalog entry for the new operator to test-catalog
  • Added e2e test feature file to validate RBAC escalation handling

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

Show a summary per file
File Description
testdata/images/catalogs/test-catalog/v1/configs/catalog.yaml Added catalog entry for rbac-escalation-operator package with stable channel
testdata/images/bundles/rbac-escalation-operator/v1.0.0/metadata/annotations.yaml Standard bundle metadata annotations
testdata/images/bundles/rbac-escalation-operator/v1.0.0/manifests/rbac-escalation-operator.clusterserviceversion.yaml ClusterServiceVersion defining operator with storage.k8s.io and scheduling.k8s.io permissions
testdata/images/bundles/rbac-escalation-operator/README.md Comprehensive documentation explaining the purpose and expected behavior of the test
test/e2e/features/rbac-escalation.feature E2E test scenario validating installation with different RBAC requirements

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@camilamacedo86 camilamacedo86 changed the title WIP Add RBAC escalation test for installer ServiceAccount permissions 🌱 Add RBAC escalation test for installer ServiceAccount permissions Jan 12, 2026
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 12, 2026
@camilamacedo86 camilamacedo86 changed the title 🌱 Add RBAC escalation test for installer ServiceAccount permissions WIP 🌱 Add RBAC escalation test for installer ServiceAccount permissions Jan 12, 2026
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 12, 2026
Add rbac-escalation-operator test bundle and e2e scenario to validate
that the ClusterExtension installer ServiceAccount can install operators
with diverse RBAC requirements.

This operator requires storage.k8s.io and scheduling.k8s.io permissions
that differ from the basic test-operator, ensuring the installer SA's
bind/escalate verbs are properly exercised per the documented permission
model in docs/concepts/permission-model.md.

The test validates:
- Installer SA can create RBAC for operators with different permissions
- Kubernetes escalation prevention works with bind/escalate verbs
- OLMv1 permission model supports diverse operator requirements
- Regression prevention for RBAC permission issues
Copilot AI review requested due to automatic review settings January 12, 2026 13:47
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Add bind and escalate verbs to test RBAC template to comply with documented
prerequisites in docs/concepts/permission-model.md.

These verbs are REQUIRED per our documentation for installer ServiceAccounts
that install operators with their own RBAC.

The missing prerequisites were exposed by the rbac-escalation e2e test, which
uses an operator requiring permissions the test SA doesn't have (storage.k8s.io,
scheduling.k8s.io). Without bind/escalate verbs, Kubernetes rejects the
ClusterRoleBinding creation with escalation prevention errors.

Previous tests passed because they only used test-operator, which has minimal
RBAC (tokenreviews, subjectaccessreviews) that the test SA coincidentally
already has. This created false confidence and hid the incomplete RBAC template.

Fixes: rbac-escalation e2e test
Aligns: test template with docs/concepts/permission-model.md
See: https://github.com/operator-framework/operator-controller/actions/runs/20920337864/job/60103970542?pr=2441
Add startup, liveness, and readiness probes to rbac-escalation-operator
deployment so the pod can report ready status and the ClusterExtension
can reach Available condition.

Without probes, the deployment never reports ready, causing the test
to timeout waiting for 'ClusterExtension is available'.

Fixes: rbac-escalation.feature test availability check
Copilot AI review requested due to automatic review settings January 12, 2026 14:33
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant