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.26.1
Infrastructure Dependencies
| Tool | Build Version | Deployment Compatibility | Notes |
|---|---|---|---|
| cert-manager | 1.20.0 | 1.14 - 1.20 | Stable v1 APIs. v1.20 deprecated ObjectReference in favor of IssuerReference (type alias). |
| fluxcd | 2.8.2 | 2.4 - 2.8 | v1beta2 APIs removed in 2.8, DependsOn uses DependencyReference. |
| image-automation-controller promoted to v1. | |||
| All github.com/fluxcd/* packages upgraded together. | |||
| flux-operator | 0.40.0 | 0.23 - 0.40 | Upgraded with FluxCD 2.8 ecosystem. |
| metallb | 0.15.3 | 0.14 - 0.15 | Stable v1beta1 APIs, patch release |
| prometheus-operator | 0.89.0 | 0.75 - 0.89 | Prometheus operator monitoring API types (ServiceMonitor, PodMonitor, PrometheusRule). |
| Only the /pkg/apis/monitoring submodule is imported — not the full operator. | |||
| Stable v1 APIs (monitoring.coreos.com/v1). | |||
| external-secrets | 0.0.0-20260213133823-31b0c7c37342 | 1.3 | Module path changed from root to /apis submodule in v1.0 (#5494). |
| No semver tags for apis submodule — use pseudo-versions pinned to release commits. | |||
| v1.3.2+ commit: 31b0c7c3734255a92dfe5cf9e1e204de127eb24c (includes controller-runtime v0.23.1 compat) | |||
| cnpg | 1.28.1 | 1.24 - 1.28 | CloudNativePG operator for PostgreSQL on Kubernetes. |
| Cluster CR (with managed roles), Database CR (postgresql.cnpg.io/v1), | |||
| ObjectStore CR (barmancloud.cnpg.io/v1), and ScheduledBackups. | |||
| ObjectStore lives in a separate module (plugin-barman-cloud). | |||
| cnpg-barman-cloud | 0.11.0 | 0.9 - 0.11 | Barman Cloud plugin for CNPG — provides ObjectStore CR (barmancloud.cnpg.io/v1). |
| Versioned independently from the CNPG operator. | |||
| controller-runtime | 0.23.3 | 0.22 - 0.23 | Upgraded with FluxCD 2.8 and external-secrets 1.3 migrations |
| gateway-api | 1.5.1 | 1.0 - 1.5 | Gateway API v1 types (HTTPRoute). Used by pkg/kubernetes HTTPRoute builders. |
| Kure generates gateway.networking.k8s.io/v1 resources (GA since v1.0). | |||
| kubernetes | 0.35.1 | 1.33 - 1.35 | Go 1.26 baseline; generated YAML uses stable APIs compatible across this range |
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