Prerequisites
- Kubernetes 1.25+
- Helm 3.8+
Install
Configuration
Inline config (default)
Pass yourconfig.yaml content directly in values:
values.yaml file:
Existing ConfigMap or Secret
If you manage config separately (e.g. via an operator or external-secrets), reference it instead:Redis backend
Enable the bundled Redis subchart for multi-instance HA deployments:-redis Docker image and wires up the Redis URL when backend.type: redis is set.
To use an external Redis instance instead:
Scaling
Enable the HorizontalPodAutoscaler:HPA with multiple replicas requires the Redis backend so that all instances share pool state. The in-memory backend is not suitable for multi-replica deployments.
Ingress
Prometheus metrics
Enable the ServiceMonitor for Prometheus Operator:Upgrading
Uninstall
Production checklist
Use an existing Secret for config
Use an existing Secret for config
Avoid putting credentials in
config.inline in plain values files. Use config.existingSecret referencing a Secret managed by your secrets operator (e.g. External Secrets, Sealed Secrets).Set resource requests and limits
Set resource requests and limits
Proxy Hopper is I/O-bound — CPU usage is low but memory scales with open connections. Set
resources.requests and resources.limits based on observed usage.Use a managed Redis for production
Use a managed Redis for production
The bundled Redis subchart is convenient but not hardened for production. For serious workloads use a managed service (AWS ElastiCache, GCP Memorystore, Redis Cloud) and reference it via
backend.redis.url.Add a PodDisruptionBudget
Add a PodDisruptionBudget
Configure a PDB to maintain minimum availability during node drain or rolling upgrades. This is not included in the chart but can be added manually.