Deploy Radar to your Kubernetes cluster for shared team access.Documentation Index
Fetch the complete documentation index at: https://radarhq.io/docs/llms.txt
Use this file to discover all available pages before exploring further.
Note: This guide covers deploying Radar as a pod in your cluster. If you’re running Radar locally but need to understand cluster connection behavior (e.g., using KUBECONFIG to override in-cluster detection), see the Configuration Guide.
Quick Start
Exposing with Ingress
Basic (No Authentication)
With Basic Authentication
-
Create the auth secret:
-
Configure ingress:
-
Deploy:
With TLS (HTTPS)
Requires cert-manager installed in your cluster.DNS Setup
-
Get your ingress IP:
- Create a DNS A record pointing your domain to the ingress IP.
radar.prod-us-east1.example.com
RBAC
Radar uses its ServiceAccount to access the Kubernetes API. The Helm chart creates a ClusterRole with read-only access to common resources by default:- Pods, Services, ConfigMaps, Events, Namespaces, Nodes, ServiceAccounts, Endpoints
- Deployments, DaemonSets, StatefulSets, ReplicaSets
- Ingresses, NetworkPolicies, Jobs, CronJobs, HPAs, PVCs
- Pod logs (enabled by default)
Opt-in Permissions
Some features require additional permissions. Most are disabled by default for security:| Feature | Value | Default | Description |
|---|---|---|---|
| Secrets | rbac.secrets: true | false | Show secrets in resource list |
| Terminal | rbac.podExec: true | false | Shell access to pods |
| Port Forward | rbac.portForward: true | false | Port forwarding to pods/services |
| Logs | rbac.podLogs: true | true | View pod logs |
| Helm Write | rbac.helm: true | false | Install/upgrade/rollback/uninstall Helm releases (grants broad write access; auto-enables secrets) |
| Traffic TLS | rbac.traffic: true | true | Read Hubble relay TLS certs for Cilium traffic observation |
Node management (cordon, uncordon, drain) is available via the MCP server and API. These operations requireEnable features as needed:patchon nodes,liston pods, andcreateonpods/eviction, which are not included in the default ClusterRole. Add them viarbac.additionalRulesor use per-user authentication so each user’s own RBAC governs node operations.
CRD Permissions
Radar reads CRDs from many popular tools. Each CRD group can be toggled individually:Graceful RBAC Degradation
Radar works with whatever permissions are available - it does not require full cluster-admin access. At startup, Radar checks which resource types are accessible usingSelfSubjectAccessReview and only starts informers for permitted resources.
What this means in practice:
- If your ServiceAccount can only list Pods and Services, Radar shows those - other resource types display an “Access Restricted” message
- Cluster-scoped resources (Nodes, Namespaces) require a ClusterRole; if unavailable, those sections are gracefully hidden
- For namespace-scoped ServiceAccounts (RoleBinding instead of ClusterRoleBinding), Radar automatically detects this and scopes its informers to the permitted namespace
- The UI clearly indicates which resources are restricted vs simply empty
rbac.create: false in the Helm values and apply the custom Role/RoleBinding above. Radar will detect the namespace-scoped permissions and work within my-team only.
Authentication
For shared team access, enable authentication so each user gets per-user permissions via Kubernetes RBAC. See the Authentication & Authorization Guide for full setup instructions. Quick start with proxy auth:Security Considerations
When deploying Radar in-cluster:- Authentication: Always enable authentication when exposing via ingress. Use built-in auth (proxy or OIDC mode) or basic auth (shown above) at minimum.
-
RBAC scope: The default ClusterRole grants cluster-wide read access. For namespace-restricted access, set
rbac.create: falseand create a custom Role/RoleBinding. Radar will gracefully adapt to the available permissions. -
Privileged features: Terminal (
podExec) and port forwarding grant significant access. Only enable these in trusted environments or when using per-user authentication. - Network access: Consider using NetworkPolicies to restrict which pods can reach Radar.
Configuration Reference
See Helm Chart README for all available values.| Parameter | Description | Default |
|---|---|---|
image.repository | Container image | ghcr.io/skyhook-io/radar |
image.tag | Image tag | Chart appVersion |
ingress.enabled | Enable ingress | false |
ingress.className | Ingress class | "" |
service.port | Service port | 9280 |
mcp.enabled | Enable MCP server for AI tools | true |
timeline.storage | Event storage (memory/sqlite) | memory |
timeline.dbPath | SQLite database path | /data/timeline.db |
timeline.historyLimit | Max events to retain | 10000 |
traffic.prometheusUrl | Manual Prometheus/VictoriaMetrics URL | "" (auto-discover) |
persistence.enabled | Enable PVC for SQLite storage | false |
persistence.size | PVC size | 1Gi |
rbac.podLogs | Enable log viewer | true |
rbac.podExec | Enable terminal feature | false |
rbac.portForward | Enable port forwarding | false |
rbac.secrets | Show secrets in resource list | false |
rbac.helm | Enable Helm write operations | false |
rbac.traffic | Read Hubble TLS certs | true |
rbac.crdGroups.all | Wildcard CRD read access | false |