Uninstalling Ice Flow
Uninstalling Ice Flow stops the extension and removes its host-local files. Catalog, warehouse, scope, monitor, and replication state remains in Symphony's JetStream buckets; reinstalling Ice Flow against the same Symphony deployment with that state intact restores every definition without re-entry.
To remove the stored state too, follow Remove Stored State after uninstalling.
The commands below vary by deployment method. Ensure the required tools are installed for your environment.
Pre-Uninstall Checklist
Before uninstalling:
- Note running work. Any monitor or replication currently active stops when Ice Flow stops. Continuous replications stay paused until Ice Flow is reinstalled and reconnected.
- Decide whether to keep stored state. Preserving the
iceflow_*buckets makes reinstalling seamless—every catalog, warehouse, scope, monitor, and replication returns automatically. Removing them is irreversible. - Decide whether to revoke the API key. Unless you plan to reinstall promptly with the same credential, revoke the permanent API key from the Symphony Account → API Keys page and delete any locally stored copy after uninstalling. See Revoke Provisioned Credentials for both steps.
RPM Uninstall
sudo systemctl stop cirata-iceflow
sudo dnf remove cirata-iceflow
On SLES:
sudo systemctl stop cirata-iceflow
sudo zypper remove cirata-iceflow
The package removes the JAR, the systemd unit, and the cirata user, but
preserves files marked CONFIG | NOREPLACE (iceflow.env,
application.properties, logback.xml) and the log directory by default. To
fully clean up:
sudo rm -rf /etc/cirata/symphony/extensions/iceflow
sudo rm -rf /var/log/cirata/symphony/extensions/iceflow
sudo rm -rf /opt/cirata/symphony/extensions/iceflow
The iceflow.env file may contain a SYMPHONY_TOKEN or
REGISTRATION_TOKEN value. Remove it once the token has been revoked, or
wipe those values before leaving the file on disk. The permanent API key
provisioned from a registration token is stored separately—see Revoke
Provisioned Credentials.
Docker Uninstall
Stop and remove the container and its named volumes:
# Compose
docker compose down -v
# Direct docker run
docker stop cirata-iceflow
docker rm cirata-iceflow
docker volume rm iceflow-logs
Reclaim the image:
docker image rm cirata/iceflow:<version>
Kubernetes Uninstall
helm uninstall my-iceflow
The chart does not create any PersistentVolumes for Ice Flow itself (state
lives in Symphony, not in the Ice Flow pod), so helm uninstall removes
the Deployment, Service, and ConfigMaps without leaving orphaned volumes.
Remove any Secrets you created for the chart:
kubectl delete secret iceflow-symphony-token
# If you installed a custom CA secret
kubectl delete secret iceflow-ca 2>/dev/null
Remove Stored State (optional)
Deleting the iceflow_* JetStream buckets removes every catalog, warehouse,
scope, monitor, and replication Ice Flow ever knew about. This is
irreversible. Reinstalling against the same Symphony deployment
afterwards starts from an empty slate.
Ice Flow's state lives in these JetStream buckets (all prefixed iceflow_):
| Bucket | Contents |
|---|---|
iceflow_activities | General activity records |
iceflow_catalogs | Catalog definitions |
iceflow_warehouses | Warehouse definitions |
iceflow_warehouse_mappings | Warehouse location mappings |
iceflow_scopes | Scope definitions |
iceflow_monitors | Monitor definitions |
iceflow_replicators | Replication definitions |
iceflow_consistency_checks | Consistency check results |
iceflow_diagnostics | Diagnostic information |
iceflow_authentication | Authentication overrides (krb5.conf) |
iceflow_grinder | Operational checkpoints |
iceflow_last_event | Last processed events |
iceflow_statistics | Operational statistics |
iceflow_namespaces_statistics | Namespace-level statistics |
iceflow_operations | Completed-operation audit log |
iceflow_monitoring | Monitoring event audit log |
iceflow_file_transfers | File-transfer audit log |
iceflow_monitoring_summaries | Compacted monitoring summaries |
iceflow_operations_summaries | Compacted operation summaries |
Delete them from the Symphony host where JetStream runs. On a Linux or RPM Symphony install:
for bucket in $(sudo -u symphony nats --server nats://localhost:4222 \
kv ls 2>/dev/null | grep '^iceflow_'); do
sudo -u symphony nats --server nats://localhost:4222 kv del "$bucket"
done
Adjust the connection details for your Symphony deployment as needed.
Do not delete the symphony_metrics bucket. Ice Flow writes operational
metrics into it, but the bucket is owned by the Symphony platform and
shared across extensions.
Revoke Provisioned Credentials
Ice Flow's authentication state lives in two places—revoke each one independently.
Permanent API key on the Symphony side
Whether you installed with a registration token (the SDK exchanged it for a
permanent key) or with a pre-issued permanent SYMPHONY_TOKEN, the resulting
API key remains valid in Symphony until you revoke it.
- Sign in to Symphony as an administrator.
- Open Account → API Keys.
- Find the API key issued for Ice Flow (registration tokens consumed during install appear here as the permanent key they were exchanged for).
- Click Delete.
The corresponding entry on the Extensions page disappears once the token is revoked and no further connection attempts succeed.
Locally stored credential on the Ice Flow host
When the registration-token flow was used, the SDK wrote the provisioned
permanent key into ~/.config/cirata/ under the cirata service user
(/opt/cirata/.config/cirata/, pre-created by the RPM's preinstall script).
Remove it so a reinstall on the same host does not pick up the old
credential:
# RPM (cirata user's $HOME is /opt/cirata)
sudo rm -rf /opt/cirata/.config/cirata
# Docker (when ~/.config/cirata was mounted on a named volume)
docker volume rm cirata-config 2>/dev/null
# Kubernetes (when ~/.config/cirata was mounted on a PVC)
kubectl delete pvc iceflow-cirata-config 2>/dev/null
The dnf remove step leaves this directory in place because it sits inside
/opt/cirata/ (owned by the package's user, not by cirata-iceflow itself).
Delete it explicitly when you are removing Ice Flow for good.
Verifying Removal
After uninstalling, confirm Ice Flow is gone:
- The service or container is no longer running:
Each command should report no running instance.
# RPM
sudo systemctl status cirata-iceflow 2>&1 | grep -E "could not be found|inactive"
# Docker
docker ps --filter name=cirata-iceflow
# Kubernetes
kubectl get pods -l app.kubernetes.io/instance=my-iceflow - The extension no longer appears in the Symphony UI. The
Extensions page no longer lists
iceflow, and the Iceberg menu group disappears from the main navigation. - The CLI agrees:
Ice Flow no longer appears.
cirata extension list
See Also
- Installation—reinstall procedures
- Upgrades—upgrade in place instead of removing
- Troubleshooting—solutions for common errors