caixa-flux — typed renderer that emits the FluxCD-side fragments a caixa Servico needs in the cluster's GitOps tree.
Same naming convention as [caixa_helm] (renders per-program Helm
charts) and [caixa_flake] (renders flake.nix): caixa-<target> =
"Rust crate that takes a typed [Caixa] and emits the canonical
source for <target>".
Two paths, two surfaces
Per theory/META-FRAMEWORK.md §I, two equally-canonical ways exist
to deploy a caixa Servico:
-
Aggregator path ([
programs_yaml_entry]) — the cluster has exactly onelareira-fleet-programsHelmRelease whose values contain aprograms:array. Adding a Servico = adding one entry to that array. Higher leverage — one HelmRelease handles the whole fleet's worth of caixas, fewer reconciler events, simpler cluster surface. This is whatfeira deployuses by default. -
Bundle path ([
cluster_bundle]) — emit a freshGitRepositoryHelmRelease+Kustomizationtrio for the caixa's own per- program chart (rendered bycaixa-helm). Used for one-off / isolated services where the aggregator overhead is undesirable (e.g. alpha workloads with non-standard images, breakglass tooling).
V0 contract
use Caixa;
use programs_yaml_entry;
let caixa = from_lisp?;
let cu_yaml: Value =
from_str?;
let entry: Value = programs_yaml_entry?;
// → { name: hello-rio, namespace: tatara-system, module: { source: ... }, ... }
What this is NOT
- Not a Flux CLI wrapper — bytes only.
- Not the operator deploy bundle — that lives in
pleme-io/caixa/operator-flux/. - Not an installer —
feira deployorchestrates the I/O of writing to a GitOps repo + opening a PR.