Expand description
Intent — where the rendered artifacts come from.
Exactly one field on Intent must be set. The reconciler’s RENDER phase
selects a driver based on which variant is present:
nix: tatara-enginenix_eval→ resourcesflux: pass through an existingGitRepositorylisp: tatara-lisp reader + macroexpander → resourcescontainer: emit Deployment/StatefulSet/etc directly (no Helm)aplicacao: emit a FluxCDHelmReleasefor a pleme-io typed Aplicacao chart (e.g.lareira-demo-app). This is the canonical handoff from caixa-shaped declarations to in-cluster reconciliation.guest: tatara-hospedeiro supervises a Linux VM or WASM component. Seetatara/docs/declarative-guests.md. The GuestSpec itself is type-erased here (JSON value) so tatara-process stays decoupled from tatara-vm; hospedeiro re-parses the value as GuestSpec on boot.
Structs§
- Aplicacao
Intent - Aplicacao intent — emit a FluxCD
HelmReleasefor a pleme-io typed Aplicacao chart. The chart owns its own sub-chart DAG; the reconciler only watchesHelmRelease.status.conditions[type=Ready]. - Container
Intent - Container intent — direct Deployment/StatefulSet/etc, no Helm.
- Flux
Intent - FluxCD passthrough intent — reuse an existing GitRepository.
- Guest
Intent - Guest intent — the Process is a Linux VM or WASM component supervised
by
tatara-hospedeiro. Seetatara/docs/declarative-guests.md. - Helm
Lifecycle Policy - Typed shape of one Flux
HelmRelease.spec.{install,upgrade}slot — the substrate’s projection of the “how long may Helm take, and how many retries after a failed run” contract every Helm-driven Process publishes on both slots. Pre-lift the reconciler’srender_aplicacaohand-authored the shape via TWO adjacent identicaljson!({"timeout": …, "remediation": {"retries": …}})blocks past the ★★ PRIME-DIRECTIVE ≥ 2 duplication threshold — one for install, one for upgrade, each restating the same three-slot literal with the sameOption::unwrap_or_elsefallback on the timeout. Post-lift the shape lives at ONE named typed struct here whose serde projection matches Flux HelmRelease v2’sinstall/upgradeblock schema byte-identically, and the reconciler composes both slots off ONEAplicacaoIntent::helm_lifecycle_policycall. - Helm
Remediation Policy - Typed shape of one
HelmLifecyclePolicy::remediationslot. A named struct rather than an inline{retries: u8}map so downstream consumers can talk about “one Helm remediation policy” as a nameable handle rather than an unnamed nested object. - Intent
- Intent — exactly one variant should be populated.
- Lisp
Intent - Lisp-sourced intent — tatara-lisp reader + macroexpander produces resources.
- NixIntent
- Nix-sourced intent — tatara-engine’s nix_eval driver produces resources.
- Unknown
Intent Kind - Unknown
Workload Kind
Enums§
- Intent
Error - Intent
Kind - Closed-set discriminator over
Intent’s six tagged-union slots. Single source of truth that drivesIntent::variant’s ambiguity - Intent
Variant - Enum view over the populated variant — convenience for the reconciler.
- Workload
Kind - K8s workload kind the
containerintent renders into. PascalCase values match the K8skind:field on the emitted manifest verbatim, soas_strdoubles as the canonicalkind:projection at render time.
Constants§
- FLUX_
HELM_ DEFAULT_ INTERVAL - Workspace-wide default for the reconcile-loop cadence on both Flux
resources a Helm-driven
AplicacaoIntentpublishes today: theOCIRepository.spec.intervalon the source side (how often the source-controller re-pulls the chart from OCI) and theHelmRelease.spec.intervalon the release side (how often the helm-controller re-reconciles the release against the chart). The fleet convention ties both cadences to the same5mstring today, so the substrate exposes ONE named const rather than two literals sprayed acrossrender_aplicacao. - HELM_
LIFECYCLE_ DEFAULT_ RETRIES - Workspace-wide default for the
remediation.retriesslot on a FluxHelmRelease.spec.{install,upgrade}block. Constant across both slots today; a future two-slot split (e.g. distinct retry budgets for a first install vs a rolling upgrade) lands as two consts here + a two-slotHelmLifecyclePolicyshape, not at the render callsite. - HELM_
LIFECYCLE_ DEFAULT_ TIMEOUT - Workspace-wide default for the
timeoutslot on a FluxHelmRelease.spec.{install,upgrade}block, applied when the operator did not populateAplicacaoIntent::install_timeout. Load-bearing on the reconciler’s Helm-driven RENDER surface —AplicacaoIntent::helm_lifecycle_policysubstitutes this exact string, and the reconciler’srender_aplicacaobyte-installs the resulting policy into both install AND upgrade slots.