Uninstalling
Basic Uninstall
The ilum uninstall command removes the Ilum Helm release from your cluster. It shows a summary, asks for confirmation, and then runs helm uninstall.
$ ilum uninstall
╭─ Uninstall Summary ─────────────────── ──────────────────╮
│ Release ilum │
│ Namespace default │
│ Delete PVCs No │
│ Delete Namespace No │
╰──────────────────────────────────────────────────────────╯
Command: helm uninstall ilum --namespace default
? Proceed with uninstall? Yes
⠋ Uninstalling Ilum...
✓ Release 'ilum' uninstalled.
By default, uninstall removes the Helm release (all Kubernetes resources it manages -- Deployments, Services, ConfigMaps, Secrets) but preserves PersistentVolumeClaims and the namespace. This means your data volumes survive, so you can reinstall later without data loss.
The command is idempotent: if the release does not exist, it exits cleanly with a message rather than an error:
$ ilum uninstall
ℹ Release 'ilum' not found — nothing to uninstall.
After uninstalling, the CLI clears the tracked module list from your local config. The profile itself remains, so you can run ilum install again without re-running ilum init.
To skip the confirmation prompt (useful in CI/CD), pass --yes:
$ ilum uninstall --yes
To preview the uninstall command without executing it, use --dry-run:
$ ilum uninstall --dry-run
╭─ Uninstall Summary ─────────────────────────────────────╮
│ Release ilum │
│ Namespace default │
│ Delete PVCs No │
│ Delete Namespace No │
╰──────────────────────────────────────────────────────────╯
Command: helm uninstall ilum --namespace default
ℹ Dry-run mode — no changes applied.
Cleaning Up PVCs and Namespaces
When you want a complete teardown -- not just the release, but also the persistent data and the namespace -- use the --delete-data and --delete-namespace flags.
Delete PVCs after uninstall:
$ ilum uninstall --delete-data --yes
╭─ Uninstall Summary ─────────────────────────────────────╮
│ Release ilum │
│ Namespace default │
│ Delete PVCs Yes │
│ Delete Namespace No │
╰──────────────────────────────────────────────────────────╯
⚠ PersistentVolumeClaims will be DELETED.
Command: helm uninstall ilum --namespace default
⠋ Uninstalling Ilum...
✓ Release 'ilum' uninstalled.
⠋ Deleting PersistentVolumeClaims...
✓ Deleted 7 PVC(s): data-ilum-mongodb-0, data-ilum-postgresql-0, ...
Delete the namespace as well:
$ ilum uninstall --delete-data --delete-namespace --yes
╭─ Uninstall Summary ─────────────────────────────────────╮
│ Release ilum │
│ Namespace ilum-prod │
│ Delete PVCs Yes │
│ Delete Namespace Yes │
╰──────────────────────────────────────────────────────────╯
⚠ PersistentVolumeClaims will be DELETED.
⚠ Namespace 'ilum-prod' will be DELETED.
Command: helm uninstall ilum --namespace ilum-prod
⠋ Uninstalling Ilum...
✓ Release 'ilum' uninstalled.
⠋ Deleting PersistentVolumeClaims...
✓ Deleted 7 PVC(s): data-ilum-mongodb-0, data-ilum-postgresql-0, ...
⠋ Deleting namespace 'ilum-prod'...
✓ Namespace 'ilum-prod' deleted.
When --delete-data or --delete-namespace is used without --yes, the CLI requires a stricter confirmation: you must type the release name exactly to proceed. This guards against accidental data loss.
$ ilum uninstall --delete-data
╭─ Uninstall Summary ─────────────────────────────────────╮
│ Release ilum │
│ Namespace default │
│ Delete PVCs Yes │
│ Delete Namespace No │
╰───────────────────────────────────────────────────────── ─╯
⚠ PersistentVolumeClaims will be DELETED.
Command: helm uninstall ilum --namespace default
? Type the release name 'ilum' to confirm: ilum
⠋ Uninstalling Ilum...
✓ Release 'ilum' uninstalled.
⠋ Deleting PersistentVolumeClaims...
✓ Deleted 7 PVC(s): data-ilum-mongodb-0, data-ilum-postgresql-0, ...
If you mistype the release name, the operation aborts:
? Type the release name 'ilum' to confirm: ilm
✗ Release name does not match. Aborted.
You can target a specific release and namespace explicitly with --release and --namespace:
$ ilum uninstall --release ilum-staging --namespace staging --delete-data --yes
See the Command Reference for the complete flag listing.
Full Environment Teardown
For a complete cleanup -- removing Ilum, the local cluster, CLI config, and optionally all dependencies -- use ilum cleanup:
$ ilum cleanup --all --dry-run
ℹ Tier 1 — Ilum Release
Would uninstall release "ilum" from namespace "default"
Would delete 7 PersistentVolumeClaim(s)
Would delete namespace "default"
ℹ Tier 2 — Local Cluster
Would delete cluster "ilum-dev" (minikube)
ℹ Tier 3 — CLI Configuration
~/.config/ilum (exists, 3 item(s))
~/.local/state/ilum (exists, 2 item(s))
~/.cache/ilum (does not exist)
Would remove the above directories.
ℹ Tier 4 — Dependencies
Would remove: helm (/usr/local/bin/helm) (v3.14.0)
Would remove: kubectl (/usr/local/bin/kubectl) (v1.30.0)
Would remove: minikube (/usr/local/bin/minikube) — will delete all clusters first
Skipping: k3d (not installed)
Skipping: kind (not installed)
The command runs in tiers, each opt-in:
| Tier | Flag | What it removes |
|---|---|---|
| 1 | (always) | Helm release + PVCs + namespace |
| 2 | --cluster | CLI-managed local k8s cluster |
| 3 | --config | CLI config, state, cache directories |
| 4 | --deps | Dependencies: helm, kubectl, minikube, k3d, kind, docker |
| 5 | --self | The CLI itself |
Use --all as shorthand for --cluster --config --deps (does not include --self):
$ ilum cleanup --all --yes
To also uninstall the CLI itself, add --self explicitly:
$ ilum cleanup --all --self --yes
Docker removal requires extra-strong confirmation (type REMOVE DOCKER), because removing Docker affects all containers and images on the machine, not just Ilum.
--self is never included in --all -- it must always be specified explicitly.
Reinstalling after cleanup. After running ilum cleanup --deps, you can reinstall the prerequisites by running ilum init in an interactive terminal -- the preflight step detects missing tools and offers to install them automatically. Alternatively, install them manually using the commands listed in Installation - Prerequisites. In CI/CD environments, you must install prerequisites manually since auto-install requires an interactive terminal.
Removing the CLI
To remove the Ilum CLI itself, uninstall it with the same package manager you used to install it:
pipx:
$ pipx uninstall ilum
uv:
$ uv tool uninstall ilum
pip:
$ pip uninstall ilum
After uninstalling the package, you can optionally remove the CLI's configuration and state directories. Run ilum config path before uninstalling to see the exact location on your system.
Linux / macOS:
$ rm -rf ~/.config/ilum # Profiles and config
$ rm -rf ~/.local/share/ilum # Persistent data
$ rm -rf ~/.local/state/ilum # State (snapshots, drift data)
$ rm -rf ~/.cache/ilum # Cache (chart downloads)
If you have customized XDG_CONFIG_HOME, XDG_DATA_HOME, XDG_STATE_HOME, or XDG_CACHE_HOME, the ilum subdirectory will be under those paths instead of the defaults shown above.
Windows (PowerShell):
PS> Remove-Item -Recurse "$env:APPDATA\ilum" # Config and data
PS> Remove-Item -Recurse "$env:LOCALAPPDATA\ilum" # State and cache