Compatibility Matrix
Kure Compatibility Matrix
This document describes the versions of infrastructure tools that Kure supports.
Version Philosophy
Kure maintains two version concepts for each dependency:
- Build Version (
currentin versions.yaml): The exact library version Kure imports in go.mod - Deployment Compatibility (
supported_range): The range of deployed tool versions that Kure can generate YAML for
Go Version
Current: Go 1.24.12
Infrastructure Dependencies
| Tool | Build Version | Deployment Compatibility | Notes |
|---|---|---|---|
| cert-manager | 1.16.5 | 1.14 - 1.16 | 1.17+ requires Go 1.25 |
| fluxcd | 2.6.4 | 2.4 - 2.6 | 2.7+ requires Go 1.25, tracked in #128 |
| image-automation-controller 1.0+ requires Go 1.25 (#171) | |||
| All github.com/fluxcd/* packages blocked from minor/major updates | |||
| flux-operator | 0.24.1 | 0.23 - 0.24 | 0.25+ requires Go 1.25 |
| metallb | 0.15.2 | 0.14 - 0.15 | 0.15.3+ requires Go 1.25 and triggers k8s.io upgrade to 0.34+ (#169) |
| external-secrets | 0.19.2 | 0.18 - 0.19 | Compatible with current Go version |
| controller-runtime | 0.21.0 | 0.19 - 0.21 | 0.22+ requires Go 1.25 |
| kubernetes | 0.33.2 | 1.28 - 1.33 | Tested in CI matrix |
Understanding the Matrix
Build Version (go.mod)
The version Kure imports and builds against. This is validated by CI to match versions.yaml.
Deployment Compatibility
The range of versions that Kure can generate valid YAML for. Kure may generate YAML compatible with older or newer versions than it builds against.
For example:
- Kure builds against cert-manager 1.16.2
- But generates YAML compatible with cert-manager 1.14.x, 1.15.x, and 1.16.x
Upgrading Dependencies
When upgrading a dependency:
- Update
versions.yamlwith newcurrentandsupported_range - Run
go get <module>@<version>to update go.mod - Update code for any API changes
- Run
./scripts/sync-versions.sh generateto update docs - Run
./scripts/sync-versions.sh checkto validate consistency