OwlpaneDOCS
Collectors & Agents

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 kubectl configured 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

PieceKindRole
Cluster collectorDeployment (1)Workload state, HPA/PVC gauges, events, optional object snapshots
Node agentDaemonSetKubelet 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 InstrumentationInject 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-1

Pin --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.yaml

Verify

  1. Pods healthy:
kubectl get pods -n owlpane
kubectl logs -n owlpane -l app.kubernetes.io/name=owlpane-agent --tail=50
  1. In the Owlpane console, open Infrastructure → Kubernetes (or Metrics / Logs) and confirm series tagged with your cluster.name.
  2. 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.com

Auto-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

SymptomCheck
Chart pull fails / 401 from GHCRConfirm you can pull oci://ghcr.io/owlpane/owlpane-agent anonymously; contact Owlpane if the package is not public
Pods CrashLoopkubectl describe pod -n owlpane … — usually missing ingest Secret or wrong endpoint
No data in consoleConfirm ingest key, cluster.name, and egress from the cluster to ingest.owlpane.com
Empty logsContainer logs are off until logs.enabled=true

Uninstall

helm uninstall owlpane -n owlpane
kubectl delete namespace owlpane

Last updated

On this page