AUTOSCALE-812: Add NodeSelectorAdjuster admission plugin for standalone clusters#2695
AUTOSCALE-812: Add NodeSelectorAdjuster admission plugin for standalone clusters#2695joelsmith wants to merge 1 commit into
Conversation
…dalone clusters Add a new kube-apiserver admission plugin that adds the node-role.kubernetes.io/control-plane node selector to qualifying control-plane-adjacent Day 2 operator pods at admission time. On standalone OpenShift clusters, operators like the VPA operator must run on master nodes for security reasons (e.g., limiting blast radius of privilege escalation from a worker-node compromise). HCP clusters have a different security posture (using the cluster rather than the node as a security boundary) and no master nodes exist in the guest cluster, so the plugin must not activate. The plugin detects standalone clusters by checking POD_NAMESPACE=openshift-kube-apiserver at start-up. Currently the VPA operator pod (identified by the label k8s-app=vertical-pod-autoscaler-operator) is the only registered workload. The design is extensible to other control-plane-adjacent operators by adding label matchers to requiresNodeSelectorAdjustment(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@joelsmith: This pull request references AUTOSCALE-812 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set. 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. |
|
@joelsmith: the contents of this pull request could not be automatically validated. The following commits could not be validated and must be approved by a top-level approver:
Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: joelsmith The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: openshift/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (3)
WalkthroughA new ChangesNodeSelectorAdjuster admission plugin
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 14 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (14 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@rphillips could you please take a look at this? |
|
@joelsmith: This pull request references AUTOSCALE-812 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 openshift-eng/jira-lifecycle-plugin repository. |
|
@joelsmith: The following tests failed, say
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. |
Add a new kube-apiserver admission plugin that adds the
node-role.kubernetes.io/control-planenode selector to qualifying control-plane-adjacent Day 2 operator pods at admission time.On standalone OpenShift clusters, operators like the VPA operator must run on master nodes for security reasons (e.g., limiting blast radius of privilege escalation from a worker-node compromise). HCP clusters have a different security posture (using the cluster rather than the node as a security boundary) and no master nodes exist in the guest cluster, so the plugin must not activate. The plugin detects standalone clusters by checking
POD_NAMESPACE=openshift-kube-apiserverat start-up.Currently the VPA operator pod (identified by the label
k8s-app=vertical-pod-autoscaler-operator) is the only registered workload. The design is extensible to other control-plane-adjacent operators by adding label matchers torequiresNodeSelectorAdjustment().Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
Summary by CodeRabbit
Release Notes
New Features
Tests