Skip to content

edgible stack

Manage application stacks (declarative multi-app deployments)

Deploy or update applications from a stack file

Terminal window
edgible stack deploy [flags]
FlagDescription
-f, --file <path>Path to stack file (default: edgible.yml in current directory)
--app <name>Deploy only specified application
--dry-runPrint the deploy plan without making any changes
--no-waitReturn after cutting the release without waiting for on-device convergence
--wait-timeout <seconds>Max seconds to wait for convergence (default: 600)
--allow-hostname-removalAllow an apply that removes hostnames traffic currently reaches

Examples

Terminal window
edgible stack deploy
edgible stack deploy -f production.yml
edgible stack deploy -f production.yml --app api-server
edgible stack deploy -f production.yml --dry-run
edgible stack deploy --no-wait # fire-and-forget (CI that polls itself)
edgible stack deploy --allow-hostname-removal

--dry-run computes a real plan — it reads live state from the API (read-only, no changes) and prints one line per application, then a summary and the deploy order:

+ web (create)
~ api (update: 2 changes)
spec.env.LOG_LEVEL: "info" → "debug"
policies.ipRules.allow: array(1) → array(2)
= database (in sync)
! legacy-cron (orphaned — not declared in this stack file; deploy will not touch it. Remove with: edgible stack teardown / application delete)
Plan: 1 to create, 1 to update, 1 in sync, 1 orphaned.
MarkerMeaning
+ createDeclared in the file but not yet live — deploy will create it.
~ updateLive and declared, but drifted — the path: from → to lines list what deploy will change.
= in syncLive and matches the file — deploy makes no change.
! orphanedLive in the org but not declared in this stack file. It may belong to another stack or an imperative application create. Deploy never touches an orphan — it is reported so you notice it, not scheduled for change.

Orphans are never deleted by a deploy. Removing an application is always explicit: edgible stack teardown for stack-managed apps, or edgible application delete for an individual one.

Artifacts are content-addressed and shipped only if the device does not already hold them. When the resolved digests and the document both match the current release, no new version is cut and the line reads — unchanged, nothing to deploy, so running stack deploy reflexively is safe. Compose workloads can attach source directories as code[] entries so a code-only change ships an archive instead of re-shipping the image — see Ship code without rebuilding the image.

Remove applications defined in a stack

Terminal window
edgible stack teardown [flags]
FlagDescription
-f, --file <path>Path to stack file (default: edgible.yml in current directory)
--app <name>Teardown only specified application
-y, --yesSkip the confirmation prompt

Examples

Terminal window
edgible stack teardown
edgible stack teardown -f production.yml
edgible stack teardown -f production.yml --app worker
edgible stack teardown -f production.yml --yes # CI: never wait on the confirm

Notes

Teardown deletes the applications the stack file declares. An application that is deployed but no longer declared is left alone; stack diff lists those. Without a terminal to confirm on, pass --yes.

Check the status of applications in a stack

Terminal window
edgible stack status [flags]
FlagDescription
-f, --file <path>Path to stack file (default: edgible.yml in current directory)
--app <name>Show status for specific application

Examples

Terminal window
edgible stack status
edgible stack status -f production.yml
edgible stack status -f production.yml --json
edgible stack status -f production.yml --app database

Validate a stack file without deploying

Terminal window
edgible stack validate [flags]
FlagDescription
-f, --file <path>Path to stack file (default: edgible.yml in current directory)

Examples

Terminal window
edgible stack validate
edgible stack validate -f production.yml

Notes

Validation is local and read-only: it parses the file, substitutes ${ENV_VAR} references, embeds any compose files, and runs the schema plus the name-uniqueness and dependsOn-cycle checks. Errors exit 2. Two things are reported as warnings and do not change the exit code: an https access with a routes[] table but no /* default route, and docker workload images missing from the local daemon.

Show differences between stack and deployed state

Terminal window
edgible stack diff [flags]
FlagDescription
-f, --file <path>Path to stack file (default: edgible.yml in current directory)

Examples

Terminal window
edgible stack diff
edgible stack diff -f production.yml