Skip to main content

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.

info

The commands below vary by deployment method. Ensure the required tools are installed for your environment.

Pre-Uninstall Checklist

Before uninstalling:

  1. 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.
  2. 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.
  3. 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
warning

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)

warning

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_):

BucketContents
iceflow_activitiesGeneral activity records
iceflow_catalogsCatalog definitions
iceflow_warehousesWarehouse definitions
iceflow_warehouse_mappingsWarehouse location mappings
iceflow_scopesScope definitions
iceflow_monitorsMonitor definitions
iceflow_replicatorsReplication definitions
iceflow_consistency_checksConsistency check results
iceflow_diagnosticsDiagnostic information
iceflow_authenticationAuthentication overrides (krb5.conf)
iceflow_grinderOperational checkpoints
iceflow_last_eventLast processed events
iceflow_statisticsOperational statistics
iceflow_namespaces_statisticsNamespace-level statistics
iceflow_operationsCompleted-operation audit log
iceflow_monitoringMonitoring event audit log
iceflow_file_transfersFile-transfer audit log
iceflow_monitoring_summariesCompacted monitoring summaries
iceflow_operations_summariesCompacted 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.

note

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.

  1. Sign in to Symphony as an administrator.
  2. Open Account → API Keys.
  3. Find the API key issued for Ice Flow (registration tokens consumed during install appear here as the permanent key they were exchanged for).
  4. 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:

  1. The service or container is no longer running:
    # 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
    Each command should report no running instance.
  2. 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.
  3. The CLI agrees:
    cirata extension list
    Ice Flow no longer appears.

See Also