Changelog¶
All notable changes to the HAProxy Template Ingress Controller will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
For Helm chart changes, see Chart CHANGELOG.
[Unreleased]¶
[0.1.0-alpha.1] - 2025-12-26¶
Added¶
- Template-driven HAProxy configuration: Generate HAProxy configs using Scriggo templates (Go-based, Jinja2-like syntax)
- Full access to Kubernetes resources in templates via
resources.<type>.List()andresources.<type>.Get() - Built-in functions for common operations: sorting, filtering, deduplication, base64 encoding
-
Template snippets for modular, reusable configuration blocks
-
Embedded validation tests: Test HAProxy configurations within template libraries
- Declarative test fixtures (Services, Endpoints, Ingresses, HTTPRoutes)
- Assertions: HAProxy config validity, pattern matching, exact content
-
Run tests via
controller validate --test <name> -
Dry-run validation webhook: Validate configuration changes before applying
- Admission webhook for HAProxyTemplateConfig CRD
- Renders templates with proposed changes
- Validates resulting HAProxy config syntax
-
Rejects invalid configurations with detailed errors
-
Multi-architecture container images: Support for common Kubernetes platforms
- linux/amd64, linux/arm64, linux/arm/v7
-
Based on official HAProxy Docker images
-
Multiple HAProxy version support: Choose your HAProxy version
- HAProxy 3.0, 3.1, 3.2 variants available
-
Version-specific images tagged accordingly
-
Supply chain security: Signed artifacts and transparency
- All container images signed with Cosign (keyless OIDC)
- SBOM (Software Bill of Materials) attestations in SPDX format
- Signed release binaries with SHA256 checksums
-
Helm chart OCI artifacts signed
-
Prometheus metrics: Comprehensive observability
- Reconciliation timing and success/failure counts
- Template rendering duration
- HAProxy config validation results
-
Kubernetes API request latencies
-
Leader election for high availability: Multiple controller replicas now supported with automatic leader election
- Only the leader replica deploys configurations to HAProxy instances
- All replicas continue watching resources, rendering templates, and validating configs (hot standby)
- Automatic failover when leader fails (~15-20 seconds downtime)
- Configurable timing parameters for failover speed and clock skew tolerance