Kubernetes Helm Agent
Deploy the Owlpane agent on any Kubernetes cluster to collect node/pod/container metrics, Kubernetes events, optional container logs, and application OTLP traces — then forward them to your Owlpane workspace.
Customers install from the public OCI Helm chart. The agent source repository is private; you do not clone GitHub to deploy.
Prerequisites
- A Kubernetes cluster (kind, EKS, GKE, AKS, or similar)
- Helm 3.x and
kubectlconfigured for the cluster - An Owlpane ingest key (
owl_ing_…) from Setup (/observability/setup) - Ingest URL (SaaS default:
https://ingest.owlpane.com) and API URL (https://api.owlpane.com)
What the chart runs
| Piece | Kind | Role |
|---|---|---|
| Cluster collector | Deployment (1) | Workload state, HPA/PVC gauges, events, optional object snapshots |
| Node agent | DaemonSet | Kubelet stats, host metrics, optional container logs, OTLP receiver for apps |
| Ops runner (optional) | Deployment (1) | Heartbeat + console-queued safe ops when apiEndpoint is set |
| Auto-instrumentation (optional) | Operator Instrumentation | Inject OTel into Java / Node / Python / .NET / Go workloads |
Telemetry RBAC is read-only by default (no Secret data, no exec, no write verbs). Enable ops.enabled only if you want console-driven scale/restart.
Install (OCI Helm)
kubectl create namespace owlpane
kubectl -n owlpane create secret generic owlpane-ingest \
--from-literal=key='owl_ing_YOUR_KEY'
helm upgrade --install owlpane oci://ghcr.io/owlpane/owlpane-agent \
--version 0.3.6 \
--namespace owlpane \
--set endpoint=https://ingest.owlpane.com \
--set apiEndpoint=https://api.owlpane.com \
--set cluster.name=prod-us-east-1Pin --version to a released chart version. Prefer creating the ingest Secret yourself so the key never lands in Helm values or git.
Minimal values.yaml override
endpoint: https://ingest.owlpane.com
apiEndpoint: https://api.owlpane.com
cluster:
name: prod-us-east-1
# Optional: container logs (off by default — often contains PII)
# logs:
# enabled: true
# Optional: console-queued operations (scale/restart)
# ops:
# enabled: true
# scopeNamespaces: ["payments", "web"]helm upgrade --install owlpane oci://ghcr.io/owlpane/owlpane-agent \
--version 0.3.6 -n owlpane -f values.yamlVerify
- Pods healthy:
kubectl get pods -n owlpane
kubectl logs -n owlpane -l app.kubernetes.io/name=owlpane-agent --tail=50- In the Owlpane console, open Infrastructure → Kubernetes (or Metrics / Logs) and confirm series tagged with your
cluster.name. - Install the Kubernetes (owlpane-otel-collector) pack from Dashboards → Library (
/observability/dashboards/library).
Verify chart signature (optional)
Releases are signed keylessly with cosign:
cosign verify ghcr.io/owlpane/owlpane-agent:0.3.6 \
--certificate-identity-regexp 'https://github.com/.*/owlpane-agent/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.comAuto-instrumentation (optional)
When enabled in values (and the OpenTelemetry Operator is installed in the cluster), annotate workloads so traces and runtime metrics flow to the node agent OTLP port — see Runtime telemetry.
Troubleshooting
| Symptom | Check |
|---|---|
| Chart pull fails / 401 from GHCR | Confirm you can pull oci://ghcr.io/owlpane/owlpane-agent anonymously; contact Owlpane if the package is not public |
| Pods CrashLoop | kubectl describe pod -n owlpane … — usually missing ingest Secret or wrong endpoint |
| No data in console | Confirm ingest key, cluster.name, and egress from the cluster to ingest.owlpane.com |
| Empty logs | Container logs are off until logs.enabled=true |
Uninstall
helm uninstall owlpane -n owlpane
kubectl delete namespace owlpaneRelated
- Host OpenTelemetry collector for VMs without Kubernetes
- IoT edge gateway
- Kubernetes integration packs
Last updated
Control-plane API
Reference for the Owlpane control-plane API: organizations and projects, members and invites, API tokens, billing, SCIM, SAML, OIDC, and device fleets.
Linux & Windows Host Collector
Collect host CPU, memory, disk, filesystem, network, and system log telemetry using the OpenTelemetry Collector configured for Owlpane.