pub const HELM_CHART_API_VERSION: &str = "v2";Expand description
Canonical Helm 3 Chart.yaml apiVersion every caixa-helm-rendered
lareira-<nome> chart declares at its top-level apiVersion axis. The
Helm 3 chart-schema resolution contract keys off this exact "v2" value:
helm dependency build, helm lint, and helm template all parse the
chart under the Helm 3 v2 schema (which requires
ChartYaml::description and permits
dependencies: at the top level); drift to the legacy Helm 2 "v1"
(the pre-Helm-3 chart schema every upstream Helm-3-migration doc names)
silently reroutes the rendered Chart.yaml through the Helm 2 parser,
where the top-level dependencies: block is unknown and the chart’s
dep on the pleme-computeunit library chart never resolves —
helm dependency build reports “no requirements found” and every
downstream helm template / helm install on the rendered chart
emits an empty release (no ComputeUnit / Service / ScaledObject
resources land) far from the source caixa.lisp / the renderer’s
build_chart_yaml call site.
The single source of truth the caixa-helm’s build_chart_yaml
Chart.yaml apiVersion axis reaches for (caixa-helm/src/lib.rs:298).
Peer with the FLUX_HELMRELEASE_API_VERSION (55f0fd9) /
FLUX_GITREPOSITORY_API_VERSION (dbbcf29) /
FLUX_KUSTOMIZATION_API_VERSION (d2dd1b1) /
GATEWAY_API_API_VERSION (3c6cfc3) / CILIUM_API_VERSION (279d611)
lifts on the sibling cluster-side-CRD-apiVersion surface — those pin
the K8s apiserver-side (apiVersion, kind) RESTMapper contract,
this one pins the Helm-side chart-schema-parser contract that gates
every rendered lareira-<nome> chart’s dependency resolution before
any K8s resource lands. Both axes are load-bearing schema-version
discriminators drift-prone by construction across renderer forks.
A future Helm 4 chart-schema promotion (the upstream Helm roadmap
names a "v3" apiVersion once the Helm 3 LTS branch closes) is a
coordinated migration alongside the upstream Helm chart-schema
deprecation cycle, not an incidental edit — pinning it here means
the migration lands as one edit at the const + a re-run of the
pin tests rather than a per-renderer sweep with no single source
of truth to consult. Same “the typed constant lives in one place”
discipline the DEFAULT_LIBRARY_NAME (41438dc) /
LAREIRA_CHART_NAME_PREFIX / FLUX_HELMRELEASE_API_VERSION
(55f0fd9) lifts apply on the peer canonical-Helm-load-bearing-string
and cluster-side-CRD-apiVersion axes.