This topic explains how to delete environments. For an introduction, see About environments and environment groups.
About deleting environments
To delete an environment properly, you must make several configuration changes and
apply them to your cluster. These changes include removing the environment definition from
your overrides file, deleting the synchronizer, runtime,
and udca components, and finally re-applying your overrides to
restore your cluster without
including the environment you wish to delete.
The reason you can't only delete the environment in one step is because the other elements,
synchronizer, runtime,
and udca are connected to each environment through their internal configurations. Only by
deleting them and re-applying them can you properly delete an environment.
How to delete an environment
Assume that you have two environments, test and prod. In your overrides file, the definitions might look something like this:
...
envs:
- name: test
sslCertPath: "your_certpath/ingress-cert.crt"
sslKeyPath: "your_keypath/ingress-key.key"
hostAlias: "apitest.example.com"
serviceAccountPaths:
synchronizer: "your_keypath/synchronizer-manager-service-account.json
udca: "your_keypath/analytic-agent-service-account.json
- name: prod
sslCertPath: "your_certpath/ingress-cert.crt"
sslKeyPath: "your_keypath/ingress-key.key"
hostAlias: "apiprod.example.com"
serviceAccountPaths:
synchronizer: "your_keypath/synchronizer-manager-service-account.json
udca: "your_keypath/analytic-agent-service-account.json
...To delete the prod environment, follow these steps:
- Copy your original overrides file -- the one that contains both the prod
and test environment definitions --
to a new file called, for example,
prod-delete.yaml. - Open
prod-delete.yaml. - Delete the
testenvironment definition fromenvs, leaving only the prod definition. For example:... envs: - name: prod sslCertPath: "your_certpath/ingress-cert.crt" sslKeyPath: "your_keypath/ingress-key.key" hostAlias: "apitest.example.com" serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json - Remove everything else from
prod-delete.yamlexcept thecassandraconfig, if present:After making the above changes, your overrides file should look something like this:
... envs: - name: prod sslCertPath: "your_certpath/ingress-cert.crt" sslKeyPath: "your_keypath/ingress-key.key" hostAlias: "apitest.example.com" serviceAccountPaths: synchronizer: "your_keypath/synchronizer-manager-service-account.json udca: "your_keypath/analytic-agent-service-account.json cassandra: replicaCount: 3 resources: requests: cpu: 3500m memory: 7Gi storage: storageClass: pd-ssd capacity: 10Gi - Run this command to delete the specified components:
apigeectl delete -f prod-delete.yaml -c runtime, udca, synchronizer
- Open your original overrides file (the one that includes both the test and prod environment definitions).
- Delete the
prodenvironment definition from theenvselement. You only want thetestenvironment definition to be present in the file. - Apply the modified overrides file to your cluster. This command will recreate the deleted
elements and, because it is omitted, not recreate the
prodenvironment.apigeectl apply -f prod-delete.yaml -c runtime, udca, synchronizer
Save your changes.
- Open a browser and navigate to the hybrid UI at Apigee UI.
- Remove the environment using the steps described Delete an existing environment in the Hybrid UI.
You're not quite done. You must now update the environments in the hybrid UI.