hull uninstall
hull uninstall deletes a release’s resources from the cluster, keeping its
revision history for auditing unless you ask to purge it.
When to use it
- To tear down a release you no longer need.
- To remove the resources but keep the history so you can still audit or reinstall (the default).
- To wipe the release completely, history included, with
--purge.
What happens
- Reads the release’s latest revision (the input state). With
--ignore-not-found, a missing release exits zero instead of erroring. - Marks the release uninstalling, then runs pre-delete hooks unless
--no-hooks. - Deletes the release’s manifest from the cluster, in reverse apply order.
- Waits until every deleted resource is actually gone unless
--no-wait. - Runs post-delete hooks, then either keeps the stored history (default,
status becomes superseded) or deletes it entirely with
--purge.
Requires a reachable cluster. Purging history removes the record rollback and
history rely on.
Usage
hull uninstall <release-name> [flags]
The release name is the only positional argument; there is no package path.
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--purge |
— | — | also delete the stored history (default keeps it) |
--keep-history |
— | on | keep the stored history (the default; explicit positive form) |
--no-hooks |
— | — | skip pre-delete and post-delete hooks |
--wait |
— | on | block until every deleted resource is gone (default behaviour) |
--no-wait |
— | — | return once deletion is requested, without confirming removal |
--timeout |
duration | 5m0s | how long the deletion wait may run before failing |
--ignore-not-found |
— | — | exit zero when the release doesn’t exist |
--description |
string | — | free-text note recorded against the uninstall revision |
-o, --output |
string | table | result format: table, json, or yaml |
Persistent flags inherited from hull
| Flag | Type | Description |
|---|---|---|
--debug |
— | enable debug output |
--kube-context |
string | Kubernetes context to use |
--kubeconfig |
string | path to kubeconfig file |
-n, --namespace |
string | namespace of the release |
Worked example — the input state and what remains after
INPUT 1 — the stored release. web is deployed at revision 2 in namespace
apps:
# hull get web -n apps → before uninstall
name: web
namespace: apps
revision: 2
status: deployed
INPUT 2 — the command. You uninstall without --purge:
hull uninstall web -n apps
OUTPUT:
release web uninstalled
release history kept (use --purge to remove)
State after (resources gone, history retained):
# hull history web -n apps → still lists the revisions
# hull get web -n apps → status: superseded (record kept for audit)
name: web
status: superseded
Tracing every line back to the inputs:
| Output / state | Which input it came from | Why |
|---|---|---|
release web uninstalled |
INPUT 2 <release-name> |
the named release’s resources were deleted |
release history kept |
INPUT 2 (no --purge) |
history is kept by default |
| resources gone from the cluster | --wait (default) |
the command blocked until every resource was removed |
status: superseded |
history retained | the record stays for audit and possible reinstall |
Wipe the release completely, history included:
hull uninstall web -n apps --purge
Make teardown idempotent in CI — exit zero even if it’s already gone:
hull uninstall web -n apps --ignore-not-found