pub const FLUX_KEY_INTERVAL: &str = "interval";Expand description
Canonical Flux v2 per-CR reconcile-poll cadence scalar-axis key every
caixa-flux-emitted Flux document (GitRepository, HelmRelease,
Kustomization) declares its per-CR spec.interval reconcile cadence
under. Unlike the sibling per-CR body-key axes (FLUX_KEY_SOURCE_REF,
FLUX_KEY_CHART, FLUX_KEY_VALUES, FLUX_KEY_HEALTH_CHECKS)
which each land on exactly one of the three Flux v2 controller CRDs,
the reconcile-poll cadence scalar-axis is the shared Flux v2 per-CR
contract every controller (the source-controller, the
helm-controller, the kustomize-controller) reads to schedule its
per-CR reconcile loop off the sibling per-CR CRD registration. Drift on
the scalar-axis key silently drops the per-CR reconcile schedule from
the Flux v2 controllers’ per-CR watch registrations — a "Interval" /
"period" / "cadence" / "pollInterval" / "reconcileInterval"
typo at any of the three emit-side format-string template sites
silently drops the per-CR reconcile schedule from the affected Flux v2
controller’s per-CR watch registration; the referenced Git source
never re-polls / the referenced chart never re-templates / the parent
Kustomization never re-applies at upstream drift, freezing the whole
cluster’s per-caixa per-cluster bundle at the last-applied snapshot
with no field naming the scalar-axis-drift root cause.
The single source of truth every Flux-v2-per-CR-reconcile-poll-cadence-
scalar-axis-naming reaches for — the three per-CR emit sites the
cluster_bundle renderer threads through are all named through
this one const:
- the rendered
gitrepository.yamldocument’s per-GitRepositoryspec.intervalscalar (caixa-flux/src/lib.rs — thecluster_bundlegitrepoformat-string template’s bakedinterval:scalar-axis key, nested alongside the sibling liftedFLUX_GITREPOSITORY_API_VERSIONtop-levelapiVersion+FLUX_KIND_GIT_REPOSITORYtop-levelkindaxes the source- controller reads to bind the per-CR poll cycle); - the rendered
helmrelease.yamldocument’s per-HelmReleasespec.intervalscalar (caixa-flux/src/lib.rs — thecluster_bundlehelmreleaseformat-string template’s bakedinterval:scalar- axis key, nested alongside the sibling liftedFLUX_HELMRELEASE_API_VERSIONtop-levelapiVersion+FLUX_KIND_HELM_RELEASEtop-levelkindaxes the helm-controller reads to bind the per-CR poll cycle); - the rendered
kustomization.yamldocument’s per-Kustomizationspec.intervalscalar (caixa-flux/src/lib.rs — thecluster_bundlekustomizationformat-string template’s bakedinterval:scalar- axis key, nested alongside the sibling liftedFLUX_KUSTOMIZATION_API_VERSIONtop-levelapiVersion+FLUX_KIND_KUSTOMIZATIONtop-levelkindaxes the kustomize- controller reads to bind the per-CR poll cycle).
The three sites must move together on any future Flux v3 rebrand (a
hypothetical upstream fluxcd/flux2 rename from interval to Interval
/ period / cadence / pollInterval / reconcileInterval,
coordinated with the upstream project’s per-version deprecation cycle,
would land at this one const rather than scattered across the three
per-CR emit-side format-string template sites). This is a distinct
duplication shape from the sibling FLUX_KEY_SOURCE_REF /
FLUX_KEY_CHART / FLUX_KEY_VALUES / FLUX_KEY_HEALTH_CHECKS
lifts: those closed one-CR-body-key duplication trios (one emit-site
per CR + several test-side probes); this one closes the sibling
three-CR-shared-body-key triplet the Flux v2 reconcile-poll cadence
contract shares across all three per-cluster-bundle CRDs.
The PRIME DIRECTIVE duplication-budget rule (THEORY.md §I.3.5,
“every recurring shape becomes a generator before it becomes a
pattern; every pattern becomes a library before it becomes
duplicated code. The duplication budget is zero.”) promotes the
constant to a typed substrate-side &'static str on the same
trajectory the FLUX_KEY_SOURCE_REF (e985089) /
FLUX_KEY_CHART (8467748) /
FLUX_KEY_VALUES (b54dc87) /
FLUX_KEY_HEALTH_CHECKS (6dbff58) lifts established on the sibling
canonical-Flux-v2-per-CR-body-key surfaces — extends the per-CR
body-key lift trajectory onto the sibling cross-CR-shared reconcile-
poll cadence scalar-axis every Flux v2 controller reads to bind its
per-CR poll cycle.