Sanitized single-commit public mirror of recipe-maintainer. - Removed test-ssh/.testenv (live creds); added test-ssh/.testenv.example placeholders. - Removed plans/ and planned-updates/ (deployment-planning docs) so no client/ deployment domains appear in the public repo. - All other secret stores were already gitignored. - docs.coopcloud.tech retained as a submodule (public upstream).
2.5 KiB
description, argument-hint, allowed-tools
| description | argument-hint | allowed-tools | |||||
|---|---|---|---|---|---|---|---|
| Undeploy all apps from the test server except traefik |
|
|
Test Context Reset
Undeploy all apps from the active test server except for infrastructure services and (optionally) a specific recipe and its dependencies. This frees memory so you can test one recipe at a time without interference from other deployed apps.
The optional recipe name is: $ARGUMENTS
Read and follow the instructions in .claude/commands/includes/logging.md.
Steps
-
Resolve the active test server:
python3 scripts/get_test_instance.pyThis outputs SERVER and INSTANCE. Use SERVER as
<SERVER>in the steps below. -
Build the protected recipe list.
Start with the always-protected infrastructure recipes:
traefikbackup-bot-two
If a recipe name was provided in
$ARGUMENTS:- Add that recipe to the protected list.
- Read
recipe-info/<recipe>/dependencies.md(if it exists). Each##heading names a recipe that is a test dependency. Add every listed recipe to the protected list. - Read
recipe-info/<recipe>/test.mdand look for a## Requiressection. Each line under that heading starting with-names a required recipe (e.g.- keycloak). Add every required recipe to the protected list. - For each required recipe found, also read its
recipe-info/<required>/dependencies.mdandrecipe-info/<required>/test.mdand check for further dependencies (transitive). Add those too. Continue until no new dependencies are found.
-
List all deployed apps on the test server:
abra app ls -s <SERVER> -S -mParse the JSON output to get the list of app domains and their recipes.
-
Match deployed apps to protected recipes — for each deployed app, check if its recipe name matches any entry in the protected list. If it does, mark it as protected and skip it.
-
Show the user what will be undeployed — list the app domains that will be undeployed and confirm the protected apps that will be kept (and why — infrastructure, target recipe, or dependency).
-
Undeploy each non-protected app — for every app that is not protected, run:
abra app undeploy <domain> --no-inputRun these sequentially (not in parallel) to avoid overwhelming the server.
-
Verify — run
abra app ls -s <SERVER> -S -magain and confirm only the protected apps remain deployed. -
Summarise — report what was undeployed and what's still running.