Connecting Clusters
The KlusterAlert agent is a lightweight Helm chart that runs inside your cluster. It connects outbound to the KlusterAlert ingestion API. No inbound firewall rules required.
How the agent works
The agent runs as a single Deployment in the klusteralert-agent namespace. It uses the Kubernetes API to list pods and check their status every 60 seconds. Issues are pushed outbound over HTTPS to the KlusterAlert ingestion API on port 443. No data is stored on the node. The agent is stateless.
Getting your agent token
Each cluster gets its own unique agent token. To get one, go to Clusters → Add Cluster in the KlusterAlert dashboard and complete the onboarding wizard. The token is shown once. Copy it before closing the dialog.
Full Helm values reference
# Required
agentToken: "" # Per-cluster agent token from the KlusterAlert dashboard
clusterName: "" # Display name for this cluster in the dashboard
# Optional
image:
repository: klusteralert/agent
tag: "" # Defaults to chart appVersion
pullPolicy: IfNotPresent
resources:
requests:
cpu: "50m"
memory: "64Mi"
limits:
cpu: "200m"
memory: "256Mi"
# Store the agent token as a Kubernetes secret (recommended for production)
existingSecret: "" # Name of existing Secret with AGENT_TOKEN key
# Namespaces to watch (empty = watch all non-system namespaces)
watchNamespaces: []
# watchNamespaces:
# - production
# - staging
# Node selector and tolerations for the agent pod
nodeSelector: {}
tolerations: []
affinity: {}
# Proxy configuration (if your cluster routes outbound through a proxy)
proxy:
http: ""
https: ""
noProxy: ""Using a Kubernetes secret for the agent token
Avoid passing the token directly via Helm values. Instead, create a Kubernetes secret:
kubectl create secret generic klusteralert-creds \ --namespace klusteralert-agent \ --from-literal=AGENT_TOKEN=your_token_here
helm install klusteralert-agent klusteralert/agent \ --namespace klusteralert-agent \ --create-namespace \ --set clusterName=production \ --set existingSecret=klusteralert-creds
Multi-cluster setup
Install the Helm chart once per cluster. Each cluster needs its own token. Create a separate cluster entry in the KlusterAlert dashboard for each one. Use a descriptive clusterName:
# Production cluster (uses its own token) helm install klusteralert-agent klusteralert/agent \ --namespace klusteralert-agent --create-namespace \ --set agentToken=$PROD_AGENT_TOKEN \ --set clusterName=prod-eu-west-1 \ --kube-context prod-context # Staging cluster (uses its own separate token) helm install klusteralert-agent klusteralert/agent \ --namespace klusteralert-agent --create-namespace \ --set agentToken=$STAGING_AGENT_TOKEN \ --set clusterName=staging \ --kube-context staging-context
RBAC requirements
The Helm chart automatically creates a ClusterRole with the following read-only permissions:
rules:
- apiGroups: [""]
resources: [pods, nodes, events, namespaces]
verbs: [get, list, watch]
- apiGroups: ["apps"]
resources: [deployments, daemonsets, statefulsets, replicasets]
verbs: [get, list, watch]Upgrading the agent
helm repo update helm upgrade klusteralert-agent klusteralert/agent \ --namespace klusteralert-agent
Uninstalling
helm uninstall klusteralert-agent --namespace klusteralert-agent kubectl delete namespace klusteralert-agent