Deployment Stacks

The Deployment Stacks category contains declarative recipes for provisioning the sovereign AI stack on real machines. Each recipe is a YAML file consumed by forjar (a Rust-native infrastructure-as-code tool); cookbook users get a Rust loader/validator wrapper that exercises the YAML's schema without running real provisioning.

This category was migrated into the cookbook from the now-archived sovereign-ai-cookbook repository as part of the centralize-cookbooks spec (PMAT-065).

Layout

examples/deployment-stacks/
├── recipes/                  # 14 YAML deployment recipes
│   ├── apr-inference-server.yaml
│   ├── entrenar-train.yaml
│   └── ... (12 more)
├── stacks/                   # 10 multi-recipe compositions
│   ├── 01-inference/
│   ├── 02-training/
│   └── ... (8 more)
└── *.rs                      # 14 Rust loader wrappers (one per recipe)

examples/machines/
└── jetson/                   # Edge machine provisioning configs

Why Rust wrappers?

Cookbook policy requires every example to be runnable and testable. Sovereign recipes are declarative configs — they don't execute on their own, and full execution requires a real target machine plus root privileges. The Rust wrapper bridges the gap:

  • It loads the YAML via include_str! (no runtime I/O dependency)
  • It parses with serde_yaml and validates required fields via the shared helper at src/deployment_stack.rs
  • It exits 0 if the recipe is well-formed, prints the recipe name + version + input count
  • Its #[test] block asserts schema invariants — so a sovereign-side schema break trips a cookbook test

The wrapper is graded against the new recipe-iiur-config-v1.yaml contract, a sibling to the standard IIUR contract that relaxes the runtime obligations for declarative-config recipes.

Recipe inventory

RecipePurposeWrapper example
alimentar-ingestData ingestion via alimentarcargo run --example alimentar_ingest
apr-inference-serverGPU model servingcargo run --example apr_inference_server
batuta-agentBatuta agent servicecargo run --example batuta_agent
entrenar-trainTraining run via entrenarcargo run --example entrenar_train
jetson-edge-baseJetson edge node base imagecargo run --example jetson_edge_base
pacha-registryModel registry servicecargo run --example pacha_registry
pepita-sandboxSandbox runtimecargo run --example pepita_sandbox
realizar-serveHTTP inference servercargo run --example realizar_serve
renacer-observabilityObservability stackcargo run --example renacer_observability
repartir-workerDistributed workercargo run --example repartir_worker
sovereign-ai-stackFull-stack compositioncargo run --example sovereign_ai_stack
trueno-db-analyticstrueno-db analyticscargo run --example trueno_db_analytics
trueno-rag-pipelinetrueno RAG pipelinecargo run --example trueno_rag_pipeline
whisper-apr-asrWhisper.apr ASR servicecargo run --example whisper_apr_asr

Stack inventory

Stacks are multi-recipe compositions that wire several deployment recipes together onto one or more machines:

Machines

  • Jetson — NVIDIA Jetson edge provisioning

forjar integration

These recipes are consumed by forjar for actual deployment:

forjar apply examples/deployment-stacks/recipes/apr-inference-server.yaml \
  --inputs model_source=TheBloke/Llama-2-7B-GGUF \
  --inputs port=8080

See forjar Integration for the full execution model.