Skip to content

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.io read permissions (roles, clusterroles, rolebindings, clusterrolebindings). After upgrading, reapply RBAC (helm upgrade for the chart or kubectl apply -f k8s/rbac.yaml for raw manifests). Without this, the new Roles mode returns HTTP 403; the rest of the dashboard is unaffected.

  • 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.
  • Synthesized node summary panel. Clicking a Permission, Subject:User, or Subject:Group node opens a new RbacSummaryModal that 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.
  • Diagram tab: Roles mode in the dashboard, with namespace and cluster scopes.
  • Three new backend endpoints under /api/diagram/*, all gated by require_read:
    • GET /api/diagram/roles
    • GET /api/diagram/role/{ns}/{name}
    • GET /api/diagram/clusterrole/{name}
  • Diagram manifest endpoint now serves Role, ClusterRole, RoleBinding, ClusterRoleBinding, and ServiceAccount (in addition to the existing workload kinds).
  • Frontend RbacSummaryModal component plus new node-type styling for Role, ClusterRole, RoleBinding, ClusterRoleBinding, Permission, and Subject:*.
  • Backend ClusterRole expanded with rbac.authorization.k8s.io reads. The full backend RBAC for the Diagram tab is now:
API groupResourcesVerbs
"" (core)namespaceslist
"" (core)services, endpoints, configmaps, persistentvolumeclaimsget, list
"" (core)serviceaccountsget
appsdeployments, replicasets, statefulsets, daemonsetsget, list
batchjobs, cronjobsget, list
networking.k8s.ioingresses, networkpoliciesget, list
discovery.k8s.ioendpointslicesget, list
autoscalinghorizontalpodautoscalersget, list
rbac.authorization.k8s.ioroles, clusterroles, rolebindings, clusterrolebindingsget, list (added in 2.3.3)

secrets remains intentionally NOT granted — Kure Monitor never reads Secret values.

Terminal window
helm repo update
helm upgrade kure-monitor kure-monitor/kure \
--namespace kure-system \
--version 2.3.3

helm upgrade reapplies the ClusterRole automatically. There is no data migration step.

Terminal window
kubectl apply -f k8s/rbac.yaml
# Bump image tags in k8s/{backend,frontend,agent,security-scanner}.yaml to 2.3.3, then
kubectl apply -f k8s/

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 — run kubectl apply -f k8s/rbac.yaml (or helm upgrade again).

See CHANGELOG.md in the repository.