Files
pulse/docs/KUBERNETES.md
T
rcourtman 3f0808e9f9 docs: comprehensive core and Pro documentation overhaul
- Major updates to README.md and docs/README.md for Pulse v5
- Added technical deep-dives for Pulse Pro (docs/PULSE_PRO.md) and AI Patrol (docs/AI.md)
- Updated Prometheus metrics documentation and Helm schema for metrics separation
- Refreshed security, installation, and deployment documentation for unified agent models
- Cleaned up legacy summary files
2026-01-07 17:38:27 +00:00

2.5 KiB

☸️ Kubernetes (Helm)

Deploy Pulse to Kubernetes using the official Helm chart.

🚀 Installation

  1. Install (OCI chart, recommended)

    helm upgrade --install pulse oci://ghcr.io/rcourtman/pulse-chart \
      --namespace pulse \
      --create-namespace
    
  2. Access

    kubectl -n pulse port-forward svc/pulse 7655:7655
    

    Open http://localhost:7655 to complete setup.

If you installed using a Helm repository URL previously, you can keep using it. OCI is the preferred distribution format going forward.


⚙️ Configuration

Configure via values.yaml or --set flags.

Note

: API_TOKEN / API_TOKENS environment variables are legacy. Prefer managing API tokens in the UI after initial setup.

Parameter Description Default
service.type Service type (ClusterIP/LoadBalancer) ClusterIP
ingress.enabled Enable Ingress false
persistence.enabled Enable PVC for /data true
persistence.size PVC Size 8Gi
agent.enabled Enable legacy pulse-docker-agent workload (deprecated) false

Note: the agent.* block is legacy and references pulse-docker-agent. For new deployments, prefer the unified agent (pulse-agent) where possible.

Prometheus Metrics

The Helm chart exposes only the main HTTP port (7655). Prometheus metrics are served on a separate listener (9091) and are not exposed by default.

If you want to scrape metrics:

  1. Expose port 9091 with an additional Service.
  2. Point your ServiceMonitor at that service/port (the built-in ServiceMonitor targets the HTTP service by default).

Example values.yaml

ingress:
  enabled: true
  className: nginx
  hosts:
    - host: pulse.example.com
      paths:
        - path: /
          pathType: Prefix

server:
  env:
    - name: TZ
      value: Europe/London
  secretEnv:
    create: true
    data:
      PULSE_AUTH_USER: "admin"
      PULSE_AUTH_PASS: "replace-me"

Apply with:

helm upgrade --install pulse oci://ghcr.io/rcourtman/pulse-chart -n pulse -f values.yaml

🔄 Upgrades

helm upgrade pulse oci://ghcr.io/rcourtman/pulse-chart -n pulse

Rollback:

helm rollback pulse -n pulse

⚠️ Troubleshooting

  • Check Pods: kubectl -n pulse get pods
  • Check Logs: kubectl -n pulse logs deploy/pulse
  • Scheduler Health:
    kubectl -n pulse exec deploy/pulse -- curl -s http://localhost:7655/api/monitoring/scheduler/health