Supported versions:
Unsupported versions:
This document outlines the steps to decommission an org from a hybrid deployment. Decommissioning an org means deleting all data related to the org across all Cassandra pods in all Kubernetes clusters.
Only one org can be decommissioned at a time. Decommissioning multiple orgs simultaneously is not supported.
Some commands in these instructions require you to use a properly formatted org name.
To get the org name for use in commands on this page:
overrides.yaml file.Follow these instructions to decommission an org from a hybrid deployment.
kubectl create job -n apigee --from=cronjob/apigee-cassandra-backup BACKUP_JOB_NAME
The BACKUP_JOB_NAME can be any valid container name.
Once the backup job completes, use the "Check the status of the backup job" and "Check the backup logs" instructions in Monitoring backups to verify the backup was successful.
overrides.yaml file for the org. For example, if the org to be decommissioned is
"test-dev" the overrides.yaml file should contain an org: test-dev
org field.
apigeectl apply --telemetry -f overrides.yaml
kubectl -n apigee get apigeetelemetry apigee-telemetry -oyaml | grep `gcpProjectID:`
Be sure to use the
overrides.yaml file for the org. For example, if the org to be decommissioned is
"test-dev" the overrides.yaml file should contain an org: test-dev
org field.
For multi-region hybrid deployments, run these commands against each hybrid deployment in each region.
kubectl config current-context # Verify the current context is the correct context for the hybrid deployment
apigeectl check-ready -f overrides.yaml # Check the deployment status
apigeectl delete --settings virtualhost -f overrides.yaml
apigeectl check-ready -f overrides.yaml # Check the deployment status
apigeectl delete --all-envs -f overrides.yaml
apigeectl check-ready -f overrides.yaml # Check the deployment status
apigeectl delete --org -f overrides.yaml
apigeectl check-ready -f overrides.yaml # Check the deployment status
apigee-cassandra-default-0 pod:
kubectl exec -it -n apigee apigee-cassandra-default-0 -- /bin/bash
find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -printf "%f\n"
See Get org name for instructions on how to find and prepare the ORG_NAME.
Exit from the apigee-cassandra-default-0 pod.
cqlsh prompt.
cqlsh prompt:
desc keyspaces;
Make sure this command returns no errors.
For each name in the list created earlier from the apigee apigee-cassandra-default-0,
run the following commands:
drop keyspace;
Exit from the Cassandra debug client pod.
Run the following command and verify the state shows "Running":
kubectl get apigeeds -n apigee
Restart a single Cassandra pod with the following command:
kubectl delete pod -n apigee CASSANDRA_POD_NAME
Wait for the pod to reach Running state using:
kubectl get pods -n apigee
Restart the next Cassandra pod.
cqlsh commands, run the following commands on all
Cassandra pods in the hybrid deployment. For multi-region hybrid deployments, run the
commands on all Cassandra pods in all hybrid regions.
kubectl exec -it -n apigee CASSANDRA_POD_NAME -- /bin/bash
find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2
See Get org name for instructions on how to find and prepare the ORG_NAME.
find /opt/apigee/data/apigee-cassandra/ -iname '*ORG_NAME_hybrid' -type d -maxdepth 2 -exec rm -rf {} +
Exit from the Cassandra pod.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-07-23 UTC.