Uninstall
Uninstall Gloo Mesh or deregister your cluster from the Gloo management plane.
If you no longer need your Gloo Mesh environment, you can uninstall Gloo Mesh components, such as the control and data plane, and any Gloo-managed Istio installations.
Single cluster
Ambient service mesh
If you deployed an ambient mesh with the Istio operator:
- Delete the IstioOperator for the ambient mesh.
kubectl delete IstioOperator example-istiocontrolplane -n istio-system
- Delete the Istio namespace.
kubectl delete namespace istio-system
Sidecar service mesh
If you used the Istio lifecycle manager, uninstall the Istio control plane and gateways before you uninstall Gloo Mesh. 1. Delete the `GatewayLifecycleManager` resources for any gateways. ```sh kubectl delete GatewayLifecycleManager istio-ingressgateway -n gloo-mesh kubectl delete GatewayLifecycleManager istio-egressgateway -n gloo-mesh ``` 2. Verify that the gateway resources are removed before you proceed to the next step. ```sh kubectl get all -n gloo-mesh-gateways ``` 3. Delete the `IstioLifecycleManager` resource for the `istiod` control plane. ```sh kubectl delete IstioLifecycleManager istiod-control-plane -n gloo-mesh ``` 4. Verify that the Istio resources are removed before you proceed to the next step. ```sh # Change the revision as needed kubectl get all -n gm-iop-1-20 kubectl get all -n istio-system ``` 5. Delete the Istio namespaces. ```sh kubectl delete ns istio-system kubectl delete ns gloo-mesh-gateways ```
Gloo Mesh
Uninstall the Gloo Mesh release.
helm uninstall gloo-mesh -n gloo-mesh
Uninstall any Gloo CRDs, such as by deleting the CRD Helm release.
helm uninstall gloo-platform-crds -n gloo-mesh
If you do not have a CRD Helm release, check for and manually remove any CRDs.
kubectl get crds | grep solo kubectl delete crd <$CRD>
Delete the
gloo-mesh
namespace.kubectl delete namespace gloo-mesh
Multicluster
Before you begin, save the names and contexts of the clusters you want to uninstall Gloo Mesh from.
export MGMT_CLUSTER=<management-cluster>
export REMOTE_CLUSTER1=<remote-cluster1>
export REMOTE_CLUSTER2=<remote-cluster2>
export MGMT_CONTEXT=<management-cluster-context>
export REMOTE_CONTEXT1=<remote-cluster1-context>
export REMOTE_CONTEXT2=<remote-cluster2-context>
Sidecar service mesh
If you used the legacy Istio lifecycle manager, uninstall the Istio control plane and gateways before you uninstall Gloo Mesh.
- Delete the
GatewayLifecycleManager
resources for any gateways.kubectl delete GatewayLifecycleManager istio-ingressgateway -n gloo-mesh --context $MGMT_CONTEXT kubectl delete GatewayLifecycleManager istio-egressgateway -n gloo-mesh --context $MGMT_CONTEXT
- Verify that the gateway resources are removed before you proceed to the next step.
kubectl get all -n gloo-mesh-gateways --context $REMOTE_CONTEXT1 kubectl get all -n gloo-mesh-gateways --context $REMOTE_CONTEXT2
- Delete the
IstioLifecycleManager
resource for theistiod
control plane.kubectl delete IstioLifecycleManager istiod-control-plane -n gloo-mesh --context $MGMT_CONTEXT
- Verify that the Istio resources are removed before you proceed to the next step.
# Change the revision as needed kubectl get all -n gm-iop-1-20 --context $REMOTE_CONTEXT1 kubectl get all -n istio-system --context $REMOTE_CONTEXT1
- Delete the Istio namespaces from the workload clusters.
kubectl delete ns istio-system --context $REMOTE_CONTEXT1 kubectl delete ns gloo-mesh-gateways --context $REMOTE_CONTEXT1
kubectl delete ns istio-system --context $REMOTE_CONTEXT2 kubectl delete ns gloo-mesh-gateways --context $REMOTE_CONTEXT2
Gloo Mesh
Uninstall the Gloo agent that runs on each workload cluster.
Delete the
gloo-mesh
namespaces from each workload cluster.kubectl --context $REMOTE_CONTEXT1 delete namespace gloo-mesh kubectl --context $REMOTE_CONTEXT2 delete namespace gloo-mesh
Uninstall the Gloo management plane components from the management cluster.
helm uninstall gloo-platform -n gloo-mesh --kube-context $MGMT_CONTEXT helm uninstall gloo-platform-crds -n gloo-mesh --kube-context $MGMT_CONTEXT
Delete the
gloo-mesh
namespace.kubectl --context $MGMT_CONTEXT delete namespace gloo-mesh