HAProxy Versions¶
Overview¶
HAPTIC supports multiple HAProxy major.minor series simultaneously. The haproxyVersion value selects the series and controls two things:
- The controller image tag suffix (e.g.
-haproxy3.2) — must match a version built by CI - The HAProxy pod image tag — defaults to the latest tested patch for that series
The controller image uses major.minor only (-haproxy3.2, not -haproxy3.2.13) because CI builds one image per supported series. Patch versions within a series are API-compatible with the controller.
Supported Versions¶
| Series | Status | Community image | Enterprise image |
|---|---|---|---|
| 3.0 | Supported (LTS) | haproxytech/haproxy-debian:3.0.x |
...:3.0r1 |
| 3.1 | Supported | haproxytech/haproxy-debian:3.1.x |
...:3.1r1 |
| 3.2 | Supported (default) | haproxytech/haproxy-debian:3.2.x |
...:3.2r1 |
| 3.3 | Supported | haproxytech/haproxy-debian:3.3.x |
— |
Selecting a Version¶
Set haproxyVersion to your desired series. The chart defaults to 3.2:
# Use HAProxy 3.0 LTS
helm install haptic ... --set haproxyVersion=3.0
# Use HAProxy 3.3
helm install haptic ... --set haproxyVersion=3.3
Or in your values file:
Patch Version Pinning¶
By default, the HAProxy pod image is pinned to the latest patch version tested with the chart (stored in haproxyPatchVersions). For example, with haproxyVersion: "3.2", the pod uses haproxytech/haproxy-debian:3.2.13.
To pin a specific patch version, set haproxy.image.tag:
Keeping Patches Up to Date¶
The chart ships with haproxyPatchVersions defaults that are updated with each chart release. If you manage your values in a GitOps repository, you can automate patch updates with Renovate.
Add a renovate.json (or update your existing one):
{
"packageRules": [
{
"matchDatasources": ["docker"],
"matchPackageNames": ["haproxytech/haproxy-debian"],
"matchFileNames": ["**/values.yaml"],
"versioning": "semver"
}
]
}
Renovate will detect the # renovate: annotation on haproxy.image.tag in your values file and propose patch updates within the selected series.
HAProxy Enterprise¶
Enterprise deployments require:
- Setting
haproxy.enterprise.enabled: true - Pointing
haproxy.image.repositoryto the enterprise registry - Configuring
imagePullSecretswith your registry credentials
haproxyVersion: "3.2"
haproxy:
image:
repository: hapee-registry.haproxy.com/haproxy-enterprise
enterprise:
enabled: true
version: "3.2"
imagePullSecrets:
- name: hapee-registry-secret
With enterprise.enabled: true, the pod image tag defaults to the enterprise revision from haproxyEnterprisePatchVersions (e.g. 3.2r1). To pin a specific revision:
Check HAProxy Enterprise release notes for available revisions.
Building the controller
Enterprise controller images are not distributed by the HAPTIC project. You must build the controller yourself and push it to your own registry, then set image.repository and optionally image.tag accordingly.
Upgrading to a New Series¶
To move from one major.minor to another (e.g. 3.2 → 3.3):
- Verify the new series is supported in the chart version you are using
- Update
haproxyVersionin your values - Clear any
haproxy.image.tagoverride, or update it to a patch in the new series - Run
helm upgrade
The controller and HAProxy pods will restart with the new images.