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
test
environment 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.yaml
except thecassandra
config, 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
prod
environment definition from theenvs
element. You only want thetest
environment 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
prod
environment.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.