Uninstall
Uninstall your ambient mesh.
Single cluster
Helm
If you manually deployed an ambient mesh with Helm:
Uninstall the ztunnel Helm release.
helm uninstall -n istio-system ztunnelUninstall the Istio CNI.
helm uninstall -n istio-system istio-cniUninstall the istiod control plane.
helm uninstall -n istio-system istiodUninstall the Istio CRDs.
helm uninstall -n istio-system istio-baseDelete the Istio namespaces.
kubectl delete namespace istio-system
Gloo Operator
If you installed an ambient mesh with the Gloo Operator:
Delete the ServiceMeshController resource.
kubectl delete ServiceMeshController managed-istioOptional: Uninstall the Gloo Operator.
helm uninstall -n gloo-mesh gloo-operatorDelete the Istio namespace.
kubectl delete namespace istio-systemDelete the Istio CRDs.
kubectl get crds | grep 'istio.io' | awk '{print $1}' | xargs kubectl delete crd
Multicluster
Helm
If you manually deployed a multicluster ambient mesh with Helm:
Save the names and kubeconfig contexts of each cluster. This guide uses two clusters as an example. To add more clusters to the multicluster setup, include them in the arrays.
export cluster1=<cluster1_name> export context1=<cluster1_context> export cluster2=<cluster2_name> export context2=<cluster2_context>Delete the
east-westgateway.kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context1} kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context2}List the remote peering gateways for other clusters in your setup.
kubectl get gateways -n istio-eastwest --context ${context1} kubectl get gateways -n istio-eastwest --context ${context2}Delete the
istio-remote-peergateway for each linked cluster.kubectl delete gateway -n istio-eastwest --context ${context1} istio-remote-peer-${cluster2} kubectl delete gateway -n istio-eastwest --context ${context2} istio-remote-peer-${cluster1}Uninstall the Helm releases for ztunnel, CNI, istiod, and the CRDs.
for context in ${context1} ${context2}; do helm uninstall -n istio-system ztunnel --kube-context $context helm uninstall -n istio-system istio-cni --kube-context $context helm uninstall -n istio-system istiod --kube-context $context helm uninstall -n istio-system istio-base --kube-context $context doneDelete the
ca-certssecret.kubectl delete secret cacerts -n istio-system --context ${context1} kubectl delete secret cacerts -n istio-system --context ${context2}Delete the Istio namespaces.
kubectl delete namespace istio-system --context ${context1} kubectl delete namespace istio-eastwest --context ${context1} kubectl delete namespace istio-system --context ${context2} kubectl delete namespace istio-eastwest --context ${context2}
Gloo Operator
If you installed a multicluster ambient mesh with the Gloo Operator:
Save the names and kubeconfig contexts of each cluster. This guide uses two clusters as an example. To add more clusters to the multicluster setup, include them in the arrays.
export cluster1=<cluster1_name> export context1=<cluster1_context> export cluster2=<cluster2_name> export context2=<cluster2_context>Delete the
east-westgateway.kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context1} kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context2}List the remote peering gateways for other clusters in your setup.
kubectl get gateways -n istio-eastwest --context ${context1} kubectl get gateways -n istio-eastwest --context ${context2}Example output for a remote peer gateway for one linked cluster:
NAME CLASS ADDRESS PROGRAMMED AGE istio-remote-peer-cluster2 istio-remote <address> True 16mDelete the
istio-remote-peergateway for each linked cluster.kubectl delete gateway -n istio-eastwest --context ${context1} istio-remote-peer-${cluster2} kubectl delete gateway -n istio-eastwest --context ${context2} istio-remote-peer-${cluster1}Delete the ServiceMeshController resource and
gloo-extensions-configconfigmap.kubectl delete ServiceMeshController managed-istio --context ${context1} kubectl delete cm gloo-extensions-config -n gloo-mesh --context ${context1} kubectl delete ServiceMeshController managed-istio --context ${context2} kubectl delete cm gloo-extensions-config -n gloo-mesh --context ${context2}Optional: Uninstall the Gloo Operator.
helm uninstall -n gloo-mesh gloo-operator --kube-context ${context1} helm uninstall -n gloo-mesh gloo-operator --kube-context ${context2}Delete the
ca-certssecret.kubectl delete secret cacerts -n istio-system --context ${context1} kubectl delete secret cacerts -n istio-system --context ${context2}Delete the Istio namespaces.
kubectl delete namespace istio-system --context ${context1} kubectl delete namespace istio-eastwest --context ${context1} kubectl delete namespace istio-system --context ${context2} kubectl delete namespace istio-eastwest --context ${context2}Delete the Istio CRDs.
kubectl get crds --context ${context1} | grep 'istio.io' | awk '{print $1}' | xargs kubectl delete crd --context ${context1} kubectl get crds --context ${context2} | grep 'istio.io' | awk '{print $1}' | xargs kubectl delete crd --context ${context2}