hull workspace uninstall
Synopsis
hull workspace uninstall removes every member declared in
hull-workspace.yaml, in reverse dependency order. Dependents come down
before the things they depend on, so nothing is torn out from under a member
that still needs it.
When to use it
- To tear a whole workspace down cleanly in one command.
- When you want the removal to stop at the first failure (the default) or, with
--continue-on-error, to remove as much as possible and report the rest.
What happens
- Reads
hull-workspace.yamlfrom--dir(default.) and sorts the members into dependency levels. - Reverses the order, so the most-dependent level is removed first and the deepest dependencies last.
- Within a level, up to
--parallelmembers are uninstalled at once; the default of1removes them one at a time. - A member that has no release is skipped rather than treated as an error.
- On failure, stops unless
--continue-on-erroris set.
Each member is removed the same way hull uninstall would remove
it, in the member’s namespace.
Usage
hull workspace uninstall [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--dir |
string | . |
Directory containing hull-workspace.yaml. Point it elsewhere to uninstall a workspace in another directory. |
--parallel |
int | 1 |
Maximum members to uninstall at once within a level. Raise it to remove independent members concurrently; 1 keeps them sequential. |
--continue-on-error |
bool | false |
Keep uninstalling the remaining members after one fails, then report all failures at the end. |
--atomic-workspace |
bool | false |
If any member fails, roll back the successful ones. Mutually exclusive with --continue-on-error. |
--dry-run |
bool | false |
Report the plan without removing anything from the cluster. |
--health-gate |
bool | false |
No effect on uninstall; the health-gate applies only to install and upgrade. |
--health-gate-timeout |
duration | 5m0s |
Paired with --health-gate; has no effect on uninstall. |
--progress |
bool | false |
Print live lines as each member starts and finishes, plus a final summary. |
Inherits the global flags.
Worked example
INPUT — hull-workspace.yaml with two members, where api depends on
postgres (both currently deployed):
apiVersion: hull/v1
defaults:
namespace: apps
members:
- name: postgres
path: ./postgres
- name: api
path: ./api
dependsOn: [postgres]
Run it with live progress:
hull workspace uninstall --progress
OUTPUT:
workspace: 2 members across 2 level(s), parallel=1, op=uninstall
[level 0/1] 1 member(s) starting concurrently
→ api (ns=apps) start
✓ api done in 1.8s
[level 1/1] 1 member(s) starting concurrently
→ postgres (ns=apps) start
✓ postgres done in 1.5s
All 2 member(s) succeeded.
The order is reversed compared to install: api is removed first because it
depends on postgres, and postgres is removed last. If a member were already
gone, it would be skipped rather than reported as a failure. Without
--progress, a fully successful run prints nothing; failures are always
reported.
See also
workspace— the workspace indexworkspace install— the forward-order counterpartuninstall— the single-release analogue