Chart RBAC for Capacity: cloud tiers read Karpenter; EKS Auto NodeClasses covered - #1327
Merged
Conversation
…e karpenter grant
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Capacity view gates per-CALLER: the page on `list nodes`, the Karpenter screens on `list nodepools`. The radar ServiceAccount already collects everything (`rbac.crdGroups.karpenter` defaults on), but in Cloud mode the caller is the hub user under the `radar:{viewer,member,owner}` tier bindings — and the cluster-read add-on granted nodes without Karpenter, so every Cloud tier would land in the denied-NodePools shape on Karpenter clusters. No new flag: every permission Capacity needs already has a home in the existing model.
What changed (in `deploy/helm/radar` — the chart's source of truth; releases sync it wholesale to skyhook-io/helm-charts)
Landing this here rather than in helm-charts means the grants ship with exactly the release whose binary needs them (v1.9.0), and the release pipeline's `rm -rf && cp` sync can't erase them. Supersedes skyhook-io/helm-charts#35, closed for that reason.
Verification
`helm lint` clean. Rendered permutations: default → SA rule carries the widened group list; cloud mode → the `-cluster-read` role carries the karpenter rule bound to all three tiers; `rbac.crdGroups.karpenter=false` → both rules drop together.
Note
Low Risk
Read-only RBAC widening for provisioning config CRDs, gated on an existing flag; no secrets or write verbs.
Overview
Fixes Radar Cloud Capacity/Karpenter UX where hub users under
radar:{viewer,member,owner}could list nodes but were denied on NodePools because the cluster-read add-on never included Karpenter.cloud-rbac-cluster-read.yamladds group-wideget/list/watchon Karpenter provider groups whenrbac.crdGroups.karpenteris enabled, matching the SA cache gate used for metrics.eks.amazonaws.comis added alongside the existing Karpenter groups in the SA ClusterRole, the new tier rule, README, and values comments so EKS Auto Mode NodeClasses (and related readiness/Inspect behavior) are covered.Setting
rbac.crdGroups.karpenter=falsedrops both the SA and tier Karpenter rules together.Reviewed by Cursor Bugbot for commit a11e517. Bugbot is set up for automated code reviews on this repo. Configure here.