Repository navigation
v0.8.0
[0.8.0] - 2026-10-28
HAPTIC 0.8 adds client-certificate identity checks and headers for Ingress,
and serves TLSRoute termination and passthrough listeners on the same port.
It also closes Ingress client-certificate verification bypasses and tightens
trust of client-address headers.
Before upgrading: if you use src-ip-header, check which proxies may set
that header. Routes protected by client-certificate verification now enforce it
when using the default TLS certificate too. Read the
upgrade notes.
Added
validationTests.<name>.useDeploymentWatchScopeschecks fixtures against configured watch namespaces, including expected out-of-scope lookup rejections inhaptic preflight.
Fixed
- Validation tests no longer reject deterministic auxiliary files because their generated section markers change between renders.
Security
- Build with Go 1.27.3 to reject compromised intermediate certificates in TLS verification (CVE-2026-111943).
- Update
golang.org/x/netto 0.62.0 for HTML parsing and rendering security fixes (#519).
Helm chart
Added
- Serve TLSRoute termination and passthrough listeners on one port with isolated certificates and client-validation policies.
haproxy-haptic.org/auth-tls-match-subjectlimits a host to client certificates whose subject DN matches a regular expression.haproxy-haptic.org/auth-tls-cn-headerforwards the verified client certificate's CN in a request header you name, such asX-Scope-OrgID.- Pin controller, agent, and lifecycle hook images with
controller.image.digest.
Changed
- BREAKING:
src-ip-headerno longer trusts client-sentX-Real-IP,X-Client-IP, orClient-IPby itself. List the L7 proxy inforwardedHeaders.trustedProxiesor produce the header in an operator snippet; L4 PROXY-protocol client addresses need no header annotation. - Update the bundled Vector image to 0.60.0.
Fixed
- Forward Ingress client-certificate headers on resumed TLS sessions and when annotation libraries coexist.
- HTTPRoute hostname specificity takes precedence over path length and header conditions when routes intersect the same listener hostname.
- Keep TLS passthrough listener isolation on the shared HTTPS address after routes are removed or listener modes change; unmatched Gateway names still reach Ingress routes.
Security
- Enforce Ingress client-certificate verification with default TLS certificates, including when the certificate names the protected host.
- Reject requests to a client-certificate-protected Ingress with
421when TLS SNI names another host or is absent, instead of bypassing verification. - Drop untrusted client-sent
Forwarded,X-Forwarded-Prefix,X-Forwarded-Server,X-Real-IP,X-Client-IP, andClient-IPheaders, while preserving trusted proxies and operator header changes (#490).
Known issues
- An intermittent
HTTPRouteRequestMirrorconformance failure remains under investigation: affected runs did not observe mirrored requests in backend logs (#517).