mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-11 21:26:44 +00:00
Two design docs under docs/contributing/design/: - variants.md (renamed from matrix-deploy.md): explains the folder-per-round wrapper that consumes per-role meta/variants.yml and iterates variants at deploy time. Headings normalised to sentence-case; the "legacy unsuffixed inventory path" wording rewritten to drop the historical-context phrasing forbidden by documentation.md. - inventory.md (new): explains how a single round's inventory is assembled out of meta/services.yml plus the variant payloads, which inclusion mechanisms exist (operator --apps, run_after walk, shared-service auto-include via strict `is True`), what lives in the inventory file vs. host_vars/<host>.yml, and when Jinja actually gets rendered (only at play runtime, via utils.cache.applications._render_with_templar). Worked example documents the WordPress + Discourse wiring as a reference case. Cross-links updated wherever they pointed at matrix-deploy.md or its concept name as a file: - docs/agents/action/iteration/role.md - docs/contributing/actions/deploy.md - docs/contributing/artefact/files/plugins/lookup/applications.md - docs/contributing/artefact/files/role/variants.md - scripts/tests/deploy/local/deploy/reuse-kept-app.sh (path comment) Plain-text occurrences of "matrix-deploy" as a concept term inside Python comments, log messages, and test docstrings stay as-is; only file-link references are migrated. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Local Deploy Scripts
This is the SPOT for executable local deploy flows under scripts/tests/deploy/local/deploy/.
For other local helpers, use ../README.md. For the canonical Make target index that invokes these helpers, see make.md.
Prerequisites
- Run commands from the repository root.
- Docker and Docker Compose are available locally.
jqis installed for the app-discovery step infresh-kept-all.sh.- If you run scripts directly, load the defaults with
source scripts/meta/env/all.sh.
Naming
freshmeans the flow creates or refreshes the inventory first.reusemeans the flow uses an already existing inventory.keptmeans the stack and app state stay in place.purgedmeans the flow removes the app or stack state before redeploying.appsmeans one or more applications,allmeans every discovered application.
Entry Points
| Entry point | What it does | Key inputs | Notes |
|---|---|---|---|
fresh-kept-all.sh |
Discovers apps, creates devices.yml, and deploys all discovered apps. |
INFINITO_DISTRO, TEST_DEPLOY_TYPE, INVENTORY_DIR |
Fresh all-app inventory path. |
reuse-kept-all.sh |
Deploys every app from an existing inventory. | INFINITO_DISTRO, TEST_DEPLOY_TYPE, INVENTORY_DIR |
Requires ${INVENTORY_DIR}/devices.yml and .password. |
fresh-kept-app.sh <app-id> |
Creates devices.yml for one or more apps and deploys them. |
APPS=<app-id> |
Init and deploy path for a specific app set. |
reuse-kept-app.sh |
Runs a targeted infinito deploy dedicated for one or more apps. |
APPS, TEST_DEPLOY_TYPE, INFINITO_CONTAINER, DEBUG, INVENTORY_DIR |
Reuses devices.yml. |
fresh-purged-app.sh |
Recreates devices.yml and deploys one or more apps twice with ASYNC_ENABLED=false and ASYNC_ENABLED=true. |
INFINITO_DISTRO, INVENTORY_DIR, TEST_DEPLOY_TYPE, APPS |
Baseline and recovery path. |