Skip to content

Remove an IRIS deployment

Use irisctl uninstall on the managed deployment's controller. It supports Docker, separate Docker hosts, and Kubernetes installations recorded by the installer. Keep the installation state directory and its original credentials.

Prepare devices and data

Undeploy every IRIS device and wait for confirmed removal. Keep device inventory until uninstall completes. Finish or recover outstanding maintenance jobs. Uninstall checks device removal before and after stopping the server.

Keep any required backup and its separate recovery key. Review the data choice before generating a plan:

Choice Application data Other retained files and resources
Default Retains recorded Docker volumes, or the Kubernetes persistent volume claim (PVC) and credential Secrets Installation history, private keys, backup and recovery storage, external image directories, host packages, shared images, and Kubernetes namespace
--purge-data Deletes only the plan's recorded Docker volumes, or Kubernetes PVC and credential Secrets The same retained files and resources as the default

Data deletion

Purging application data is permanent. Kubernetes storage deletion follows the existing storage provider's policy. A Retain policy keeps the volume and its data after the claim is removed. Ask your storage administrator to remove that data when required. Private files retained on the controller can still contain credentials; protect that directory after uninstall.

Review a plan

Create a plan using the original state directory:

sudo irisctl uninstall plan --state-dir /var/lib/iris-installer/my-iris

Add --purge-data to that command only when deleting application data. The output lists exact removal targets and retained resources, an operation_id, and a plan_sha256. Review them before continuing. Planning leaves services running.

Read-only host filesystem monitors can remain running. Other containers that mount the application's volumes directly must be removed from those volumes before uninstalling, including read-only consumers.

To replace an unapplied plan, run irisctl uninstall cancel with the same --state-dir, --operation-id, and --plan-sha256. The cancelled plan remains in the installation history.

Apply the reviewed plan

Use the two values printed by the plan:

sudo irisctl uninstall apply --state-dir /var/lib/iris-installer/my-iris \
  --operation-id OPERATION_ID --plan-sha256 PLAN_SHA256 --allow-downtime

Repeat --purge-data here if the plan selected it. A different data choice requires a new unapplied plan.

The command disables and stops the recorded lifecycle worker, stops application writers, and removes only the captured resource identities. It then checks resource absence and removes the recorded worker service definition. Kubernetes keeps its namespace and any unrelated contents. A maintenance isolation policy created while stopping Kubernetes writers also remains.

The final uninstalled status lists what was removed and what remains. The retained state directory is historical evidence, not an active deployment.

Recover an interruption

Inspect the original operation:

sudo irisctl uninstall status --state-dir /var/lib/iris-installer/my-iris

Run irisctl uninstall recover with the original --state-dir, --operation-id, --plan-sha256, --allow-downtime, and data choice. Recovery checks whether the pending target still exists before continuing. Changed resource identities, active writers, or an unresolved deletion stop recovery. Keep the original operation and investigate the reported resource; do not erase the journal or replace its ownership records.