Overview
The Niro agent starts with a read-only RBAC role. Additional capabilities are opt-in — you enable them by re-running the installer with the appropriate environment flag. Each capability grants a specific set of RBAC permissions and unlocks corresponding features in the dashboard. Capabilities are additive and reversible: setting a flag to1 adds the RBAC grant; setting it to 0 removes it. No enrollment token is needed for capability changes — the agent reuses its existing key.
Enabling capabilities
Re-run the installer with the flags you want:Revoking capabilities
Set any flag to0 to revoke the corresponding RBAC grant:
Capabilities reference
NIRO_ENABLE_PODS (default: on)
Controls whether the agent includes pod details in its heartbeat.
Pod listing is enabled by default because it’s read-only and low-risk. You’d only disable it if you have a compliance reason to prevent Niro from seeing pod names or images.
NIRO_ENABLE_LOGS
Enables live pod log streaming to the browser.
When enabled, the agent can receive log stream commands from Niro and stream the output of
kubectl logs --follow back to the browser.
Log streaming establishes a
pods/log SubResource access on your cluster. This means Niro will have access to your pod logs. Only enable this if your security model permits Niro to access application logs.NIRO_ENABLE_APPLY
Enables applying Kubernetes manifests from the Niro dashboard and GitOps flow.
NIRO_ENABLE_SELF_UPDATE
Allows the agent to update itself to the version specified by Niro.
When this is enabled:
- Niro signals the desired agent version in the response to each status update
- If the agent’s current image tag doesn’t match, the agent patches its own Deployment’s image tag
- Kubernetes rolls out the new pod; the old pod terminates
- The new pod reports the updated version on its first heartbeat
Self-update replaces the running pod. There’s no in-place upgrade — the pod is replaced as part of a normal Kubernetes rollout. If you have a single replica (the default), there’s a brief gap between the old pod terminating and the new pod becoming ready.
Default RBAC (always granted)
Even without any opt-in capability flags, the agent always has:- Report node inventory in heartbeats
- Report pod inventory in heartbeats
- Report resource usage (if metrics-server is installed)
- Report Kubernetes Warning events in heartbeats
Checking enabled capabilities
The dashboard shows a capabilities badge on the cluster card in the Fleet view and in the cluster settings. You can also check directly:Related
- Connect a Cluster — install the agent and set capability flags
- Stream Pod Logs — using
NIRO_ENABLE_LOGS - Deploy an App — using
NIRO_ENABLE_APPLY - Manage Secrets and ConfigMaps — app configuration resources
- Agents — how the agent works