- 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
2.5 KiB
☸️ Kubernetes (Helm)
Deploy Pulse to Kubernetes using the official Helm chart.
🚀 Installation
-
Install (OCI chart, recommended)
helm upgrade --install pulse oci://ghcr.io/rcourtman/pulse-chart \ --namespace pulse \ --create-namespace -
Access
kubectl -n pulse port-forward svc/pulse 7655:7655Open
http://localhost:7655to 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_TOKENSenvironment 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 referencespulse-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:
- Expose port
9091with an additional Service. - Point your
ServiceMonitorat 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