Deploying with Helm¶
The Helm chart is the supported way to install HAPTIC. A default install deploys the controller, a 2-replica HAProxy Deployment, the CRDs, and a ready-to-use set of template libraries covering Ingress and Gateway API β so traffic routes without any template authoring. Cross-namespace HAProxy management, conditional resource watching, and which libraries load are all configured through Helm values.
Prerequisites¶
- Kubernetes 1.21+ (the default
PodDisruptionBudgetusespolicy/v1and the controller watchesdiscovery.k8s.io/v1EndpointSlices) - Helm 3.0+
- HAProxy 3.0 or newer (the chart deploys HAProxy by default; template libraries require 3.0+ for SSL/TLS features)
Note
The haproxyVersion value controls both the controller image tag and the HAProxy image tag, ensuring version compatibility between the two. See the configuration reference for details.
Installation¶
helm install my-controller oci://registry.gitlab.com/haproxy-haptic/haptic/charts/haptic --version 0.2.0-alpha.1
With custom values:
helm install my-controller oci://registry.gitlab.com/haproxy-haptic/haptic/charts/haptic \
--version 0.2.0-alpha.1 \
-f my-values.yaml
What's in this chart¶
The chart deploys:
- Controller Deployment -- the controller that watches resources and generates configurations
- HAProxy Deployment (optional, on by default) -- the load balancers that serve your traffic, with Dataplane API sidecars
- CRDs -- five resource types under the
haproxy-haptic.orgAPI group:HAProxyTemplateConfig(input β templates, watched resources, settings) plusHAProxyCfg,HAProxyGeneralFile,HAProxyCRTListFile, andHAProxyMapFile(outputs the controller publishes for observability). Installed fromcharts/haptic/crds/; preserved acrosshelm uninstall(delete them explicitly β see Uninstalling) HAProxyTemplateConfigcustom resource -- the merged template-library configuration that drives config rendering (created from the enabledcontroller.templateLibraries.*at render time)- IngressClass and GatewayClass -- routing API integration for Ingress and Gateway API resources
- RBAC, NetworkPolicy, and ServiceAccount -- permissions and network security
- Optional ServiceMonitor -- Prometheus integration for metrics scraping
- Optional admission webhook -- configuration validation before deployment
New to HAPTIC? Getting Started walks through a first install and a sample app, end to end.
Where to go next¶
Jump to what you need:
| I want to⦠| See |
|---|---|
| Configure ingress class or filter namespaces | Configuration |
| Set up TLS/HTTPS | SSL Certificates |
| Use Ingress annotations (auth, rate limiting, etc.) | Annotations |
| Tune HAProxy resource limits or service type | HAProxy Deployment |
| Enable or disable template libraries | Template Libraries |
| Run multiple controller replicas | High Availability |
| Set up Prometheus scraping | Monitoring |
| Restrict network access with NetworkPolicy | Networking |
| Diagnose problems | Troubleshooting |
Upgrading¶
If you installed with a values file, re-pass it so your custom values survive the upgrade:
helm upgrade my-controller oci://registry.gitlab.com/haproxy-haptic/haptic/charts/haptic \
--version 0.2.0-alpha.1 \
-f my-values.yaml
Otherwise, upgrade without it:
helm upgrade my-controller oci://registry.gitlab.com/haproxy-haptic/haptic/charts/haptic \
--version 0.2.0-alpha.1
Uninstalling¶
Replace my-controller with whatever release name you used at install time. helm uninstall removes all resources created by the chart; the chart's CRDs are preserved so a reinstall picks up existing custom resources. To remove the CRDs as well, delete the whole haproxy-haptic.org API group explicitly: