Release Notes — 2.3.3
Released: 2026-05-09
Kure Monitor 2.3.3 extends the Diagram tab with RBAC visualization: a new Roles mode that graphs Roles / ClusterRoles together with their bindings, synthesized Permission nodes, and the Users / Groups / ServiceAccounts they grant access to.
Operator action required: the backend ClusterRole has been expanded with
rbac.authorization.k8s.ioread permissions (roles,clusterroles,rolebindings,clusterrolebindings). After upgrading, reapply RBAC (helm upgradefor the chart orkubectl apply -f k8s/rbac.yamlfor raw manifests). Without this, the new Roles mode returns HTTP 403; the rest of the dashboard is unaffected.
Highlights
Section titled “Highlights”- Roles mode in the Diagram tab. Two scopes:
- Namespace — pick a namespace + Role; the graph shows the Role, its RoleBindings, synthesized Permission nodes (one per
(apiGroup, resource)tuple), and the Subjects the Role is bound to. - Cluster — pick a ClusterRole; same shape but for ClusterRoles + ClusterRoleBindings.
- Namespace — pick a namespace + Role; the graph shows the Role, its RoleBindings, synthesized Permission nodes (one per
- Synthesized node summary panel. Clicking a
Permission,Subject:User, orSubject:Groupnode opens a newRbacSummaryModalthat renders the data already on the node (verbs,resourceNames, kind, namespace) — no fetch is performed because these nodes have no underlying Kubernetes manifest. Real RBAC objects (Role,ClusterRole,RoleBinding,ClusterRoleBinding,ServiceAccount) still open the existing live-manifest panel. - No application-level breaking changes. Agent and security-scanner are unchanged. The only operator-action item is reapplying RBAC.
What’s changed
Section titled “What’s changed”- Diagram tab: Roles mode in the dashboard, with namespace and cluster scopes.
- Three new backend endpoints under
/api/diagram/*, all gated byrequire_read:GET /api/diagram/rolesGET /api/diagram/role/{ns}/{name}GET /api/diagram/clusterrole/{name}
- Diagram manifest endpoint now serves
Role,ClusterRole,RoleBinding,ClusterRoleBinding, andServiceAccount(in addition to the existing workload kinds). - Frontend
RbacSummaryModalcomponent plus new node-type styling forRole,ClusterRole,RoleBinding,ClusterRoleBinding,Permission, andSubject:*.
Changed
Section titled “Changed”- Backend ClusterRole expanded with
rbac.authorization.k8s.ioreads. The full backend RBAC for the Diagram tab is now:
| API group | Resources | Verbs |
|---|---|---|
"" (core) | namespaces | list |
"" (core) | services, endpoints, configmaps, persistentvolumeclaims | get, list |
"" (core) | serviceaccounts | get |
apps | deployments, replicasets, statefulsets, daemonsets | get, list |
batch | jobs, cronjobs | get, list |
networking.k8s.io | ingresses, networkpolicies | get, list |
discovery.k8s.io | endpointslices | get, list |
autoscaling | horizontalpodautoscalers | get, list |
rbac.authorization.k8s.io | roles, clusterroles, rolebindings, clusterrolebindings | get, list (added in 2.3.3) |
secrets remains intentionally NOT granted — Kure Monitor never reads Secret values.
Upgrading
Section titled “Upgrading”helm repo updatehelm upgrade kure-monitor kure-monitor/kure \ --namespace kure-system \ --version 2.3.3helm upgrade reapplies the ClusterRole automatically. There is no data migration step.
Raw k8s manifests
Section titled “Raw k8s manifests”kubectl apply -f k8s/rbac.yaml
# Bump image tags in k8s/{backend,frontend,agent,security-scanner}.yaml to 2.3.3, thenkubectl apply -f k8s/Verifying the upgrade
Section titled “Verifying the upgrade”After upgrade, open the dashboard, switch to the Diagram tab, and pick the Roles mode.
- If the graph renders, the new RBAC is in place.
- If you see HTTP 403 in the backend logs when calling
/api/diagram/roles, the ClusterRole hasn’t been updated — runkubectl apply -f k8s/rbac.yaml(orhelm upgradeagain).
Full changelog
Section titled “Full changelog”See CHANGELOG.md in the repository.