Kubernetes (Helm)
Install the UptimeDuck agent in your cluster with Helm.
Kubernetes monitoring is in Beta and is available on paid plans. Cluster and node limits per plan are on the pricing page.
Helm repository
| Repository URL | https://uptimeduck.com/charts |
| Index | https://uptimeduck.com/charts/index.yaml |
| Chart | uptimeduck-agent |
| Latest chart version | 1.0.1 (agent 0.2.0) |
| Requirements | Helm 3+ |
1. Get a cluster token
- In panel.uptimeduck.com, open the Kubernetes section and choose Connect Kubernetes Cluster.
- Enter a cluster name and, optionally, a project.
- The next step, Install with Helm, shows the commands with your token filled in.
Helm is the recommended installation method. Until the cluster reports, its dashboard shows the same Helm commands under Waiting for Cluster Data...
2. Install
helm repo add uptimeduck https://uptimeduck.com/charts
helm repo update
helm install uptimeduck-agent uptimeduck/uptimeduck-agent \
--set config.token=YOUR_CLUSTER_TOKEN
Override any chart value with additional --set key=value arguments, for example:
helm install uptimeduck-agent uptimeduck/uptimeduck-agent \
--set config.token=YOUR_CLUSTER_TOKEN \
--set config.interval=120
Chart values
| Value | Default | Description |
|---|---|---|
config.token | "" | Cluster token from the panel. Required. Stored in a Kubernetes Secret. |
config.serverUrl | https://api.uptimeduck.com | Base URL of the UptimeDuck API. |
config.interval | 60 | Check-in interval in seconds (minimum 60). |
config.autoUpdate | false | Self-update is off in Kubernetes; update with Helm. |
config.allowRemoteConfig | true | Let settings be changed from the panel. |
config.dockerEnabled | false | Docker monitoring plugin. |
config.kubernetesEnabled | true | Kubernetes monitoring plugin. |
image.repository | uptimeduck/monitoring-agent | Agent container image. |
image.tag | kubernetes | Image tag. |
image.pullPolicy | Always | Image pull policy. |
replicaCount | 1 | Number of agent pods. |
serviceAccount.create | true | Create a ServiceAccount for the agent. |
serviceAccount.name | "" | ServiceAccount name; generated when empty. |
rbac.create | true | Create the read-only ClusterRole and ClusterRoleBinding. |
resources | requests 100m CPU / 128Mi; limits 200m CPU / 256Mi | Pod resources. |
nodeSelector, tolerations, affinity | empty | Pod scheduling. |
podAnnotations, podSecurityContext, securityContext | empty | Pod metadata and security settings. |
imagePullSecrets, nameOverride, fullnameOverride | empty | Standard chart options. |
What the chart creates
- A Deployment running the agent with
-kubernetes-enabledset fromconfig.kubernetesEnabled. - A Secret (name ending in
-token) holdingconfig.token, passed to the agent asUPTIMEDUCK_TOKEN. - A ServiceAccount, plus a ClusterRole and ClusterRoleBinding with read-only access:
| API group | Resources | Verbs |
|---|---|---|
| core | nodes, pods, services, namespaces, events, persistentvolumeclaims, persistentvolumes | get, list, watch |
apps | deployments, statefulsets, daemonsets, replicasets | get, list, watch |
networking.k8s.io | ingresses | get, list, watch |
metrics.k8s.io | nodes, pods | get, list |
3. Verify
After installing, the panel shows Waiting for Cluster Data... until the agent reports, then Cluster Connected! and opens the cluster dashboard.