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 URLhttps://uptimeduck.com/charts
Indexhttps://uptimeduck.com/charts/index.yaml
Chartuptimeduck-agent
Latest chart version1.0.1 (agent 0.2.0)
RequirementsHelm 3+

1. Get a cluster token

  1. In panel.uptimeduck.com, open the Kubernetes section and choose Connect Kubernetes Cluster.
  2. Enter a cluster name and, optionally, a project.
  3. 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

ValueDefaultDescription
config.token""Cluster token from the panel. Required. Stored in a Kubernetes Secret.
config.serverUrlhttps://api.uptimeduck.comBase URL of the UptimeDuck API.
config.interval60Check-in interval in seconds (minimum 60).
config.autoUpdatefalseSelf-update is off in Kubernetes; update with Helm.
config.allowRemoteConfigtrueLet settings be changed from the panel.
config.dockerEnabledfalseDocker monitoring plugin.
config.kubernetesEnabledtrueKubernetes monitoring plugin.
image.repositoryuptimeduck/monitoring-agentAgent container image.
image.tagkubernetesImage tag.
image.pullPolicyAlwaysImage pull policy.
replicaCount1Number of agent pods.
serviceAccount.createtrueCreate a ServiceAccount for the agent.
serviceAccount.name""ServiceAccount name; generated when empty.
rbac.createtrueCreate the read-only ClusterRole and ClusterRoleBinding.
resourcesrequests 100m CPU / 128Mi; limits 200m CPU / 256MiPod resources.
nodeSelector, tolerations, affinityemptyPod scheduling.
podAnnotations, podSecurityContext, securityContextemptyPod metadata and security settings.
imagePullSecrets, nameOverride, fullnameOverrideemptyStandard chart options.

What the chart creates

  • A Deployment running the agent with -kubernetes-enabled set from config.kubernetesEnabled.
  • A Secret (name ending in -token) holding config.token, passed to the agent as UPTIMEDUCK_TOKEN.
  • A ServiceAccount, plus a ClusterRole and ClusterRoleBinding with read-only access:
API groupResourcesVerbs
corenodes, pods, services, namespaces, events, persistentvolumeclaims, persistentvolumesget, list, watch
appsdeployments, statefulsets, daemonsets, replicasetsget, list, watch
networking.k8s.ioingressesget, list, watch
metrics.k8s.ionodes, podsget, list

3. Verify

After installing, the panel shows Waiting for Cluster Data... until the agent reports, then Cluster Connected! and opens the cluster dashboard.