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 name and kubeconfig context of one of your clusters in the following environment variables. Each time you repeat the steps in this section, you change these variables to the next workload cluster’s name and context.
export CLUSTER_NAME=<cluster-name> export CLUSTER_CONTEXT=<cluster-context>Delete the
east-westgateway.kubectl delete gateway istio-eastwest -n istio-eastwest --context $CLUSTER_CONTEXTList the remote peering gateways for other clusters in your setup.
kubectl get gateways -n istio-eastwest --context $CLUSTER_CONTEXTExample 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 $CLUSTER_CONTEXT istio-remote-peer-<cluster>Uninstall the Helm releases for ztunnel, CNI, istiod, and the CRDs.
helm uninstall -n istio-system ztunnel --kube-context $CLUSTER_CONTEXT helm uninstall -n istio-system istio-cni --kube-context $CLUSTER_CONTEXT helm uninstall -n istio-system istiod --kube-context $CLUSTER_CONTEXT helm uninstall -n istio-system istio-base --kube-context $CLUSTER_CONTEXTDelete the
ca-certssecret.kubectl delete secret cacerts -n istio-system --context $CLUSTER_CONTEXTDelete the Istio namespaces.
kubectl delete namespace istio-system --context $CLUSTER_CONTEXT kubectl delete namespace istio-eastwest --context $CLUSTER_CONTEXTRepeat these steps for each cluster in the multicluster mesh setup. Be sure to reset the values of the
$CLUSTER_NAMEand$CLUSTER_CONTEXTenvironment variables each time you repeat the steps.
Gloo Operator
If you installed a multicluster ambient mesh with the Gloo Operator:
Save the name and kubeconfig context of one of your clusters in the following environment variables. Each time you repeat the steps in this section, you change these variables to the next workload cluster’s name and context.
export CLUSTER_NAME=<cluster-name> export CLUSTER_CONTEXT=<cluster-context>Delete the
east-westgateway.kubectl delete gateway istio-eastwest -n istio-eastwest --context $CLUSTER_CONTEXTList the remote peering gateways for other clusters in your setup.
kubectl get gateways -n istio-eastwest --context $CLUSTER_CONTEXTExample 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 $CLUSTER_CONTEXT istio-remote-peer-<cluster>Delete the ServiceMeshController resource and
gloo-extensions-configconfigmap.kubectl delete ServiceMeshController managed-istio --context $CLUSTER_CONTEXT kubectl delete cm gloo-extensions-config -n gloo-mesh --context $CLUSTER_CONTEXTOptional: Uninstall the Gloo Operator.
helm uninstall -n gloo-mesh gloo-operator --kube-context $CLUSTER_CONTEXTDelete the
ca-certssecret.kubectl delete secret cacerts -n istio-system --context $CLUSTER_CONTEXTDelete the Istio namespaces.
kubectl delete namespace istio-system --context $CLUSTER_CONTEXT kubectl delete namespace istio-eastwest --context $CLUSTER_CONTEXTDelete the Istio CRDs.
kubectl get crds --context $CLUSTER_CONTEXT | grep 'istio.io' | awk '{print $1}' | xargs kubectl delete crd --context $CLUSTER_CONTEXTRepeat these steps for each cluster in the multicluster mesh setup. Be sure to reset the values of the
$CLUSTER_NAMEand$CLUSTER_CONTEXTenvironment variables each time you repeat the steps.