mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-09 04:06:42 +00:00
The restore cycle stops every subject of the host, replays into the database services alone, and starts the rest again at the very end. Any exit in between skips that last step, so the host keeps its subjects down - and nothing recorded it. The next deploy then failed on a symptom of the teardown rather than on whatever ended the drill. It cost two runs: once 'rake db:migrate' against a database the cycle had emptied but not yet replayed, once Redis::CannotConnectError because the cycle never restarted redis. Both times the message pointed away from the cause, and fixing what it named would have fixed nothing. A trap armed before the teardown now records the teardown and the exit code, and mode=update refuses to run while that record stands. purge=true and mode=reinstall pass, because both rebuild the state the drill destroyed; a completed cycle clears the record itself. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Local Deploy Scripts
This directory holds the 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 inapps/initialize/all.sh.- If you run scripts directly, load the defaults with
source scripts/meta/env/all.sh.
Naming
The apps/ subtree is split by verb (the user intent) and scope:
initialize/creates or refreshes the inventory; existing entity state is kept.reinstall/recreates the inventory and purges existing entities first.update/reuses the already-initialized inventory.all.shcovers every discovered application;selection.shcovers one or more apps passed viaapps(or a positional argument).
The bundles/ subtree mirrors the same axes for inventory bundles (fresh.sh ≈ initialize, update.sh ≈ update).
The container/ subtree holds the in-container halves invoked by the host wrappers and follows the same verb/scope layout; see container/.
Entry Points
| Entry point | What it does | Key inputs | Notes |
|---|---|---|---|
apps/initialize/all.sh |
Discovers apps, creates devices.yml, and deploys all discovered apps. |
INFINITO_DISTRO, INFINITO_INVENTORY_DIR |
Fresh all-app inventory path. |
apps/initialize/selection.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. |
apps/reinstall/selection.sh |
Recreates devices.yml and deploys one or more apps twice with ASYNC_ENABLED=false and ASYNC_ENABLED=true. |
INFINITO_DISTRO, INFINITO_INVENTORY_DIR, apps |
Baseline and recovery path; purges entities first. |
apps/update/all.sh |
Deploys every app from an existing inventory. | INFINITO_DISTRO, INFINITO_INVENTORY_DIR |
Requires ${INFINITO_INVENTORY_DIR}/devices.yml and .password. |
apps/update/selection.sh |
Runs a targeted infinito administration deploy dedicated for one or more apps. |
apps, INFINITO_CONTAINER, INFINITO_DEBUG, INFINITO_INVENTORY_DIR |
Reuses devices.yml. |