Skip to main content

HELM_CHART_API_VERSION

Constant HELM_CHART_API_VERSION 

Source
pub const HELM_CHART_API_VERSION: &'static str;
Expand description

Canonical Helm 3 Chart.yaml apiVersion every rendered lareira-<nome> chart declares. Re-export of the lifted caixa_core::HELM_CHART_API_VERSION so the Helm-side chart-schema apiVersion — the discriminator the Helm binary’s chart-schema parser (helm dependency build, helm lint, helm template) consults to select the schema that reads the rendered Chart.yaml — lives in exactly one place across every caixa renderer. The single production-code call site consuming it is [build_chart_yaml]’s api_version field assignment; a drifted local pub const HELM_CHART_API_VERSION: &str = "…" at this crate (or any sibling per-chart-schema renderer the absorption roadmap acknowledges — the future per-Aplicacao library chart, the future per-cluster snapshot chart) would silently reroute the rendered Chart.yaml through a stale chart-schema parser at helm template time far from the rebrand commit’s source, so the equality + &'static static-data identity pin (helm_chart_api_version_re_export_points_at_caixa_core_canonical) closes the drift footgun at caixa-helm build time. Same shape as the DEFAULT_LIBRARY_NAME / KUBE_KEY_SPEC re-exports on the sibling canonical-Helm-load-bearing-string / canonical-K8s-CR-key axes. 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.