Skip to content
You are viewing the documentation for Solo Enterprise for Istio, formerly known as Gloo Mesh (OSS APIs).

Uninstall

Page as Markdown

Uninstall your sidecar service mesh.

Single cluster

Helm

If you manually deployed a sidecar service mesh with Helm:

  1. Uninstall the Helm release for istiod. Note that your release name might be different.

    helm uninstall -n istio-system istiod-gloo
  2. Optional: Uninstall the Istio CNI.

    helm uninstall -n kube-system istio-cni
  3. Uninstall the Istio CRDs.

    helm uninstall -n istio-system istio-base
  4. Delete the Istio namespace.

    kubectl delete namespace istio-system

Gloo Operator

If you installed a sidecar service mesh with the Gloo Operator:

  1. Delete the ServiceMeshController resource.

    kubectl delete ServiceMeshController managed-istio
  2. Optional: Uninstall the Gloo Operator.

    helm uninstall -n gloo-mesh gloo-operator
  3. Delete the Istio namespace.

    kubectl delete namespace istio-system
  4. Delete the Istio CRDs.

    kubectl get crds | grep 'istio.io' | awk '{print $1}' | xargs kubectl delete crd

Multicluster

Helm

If you manually deployed a multicluster sidecar mesh with Helm:

  1. 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>
  2. Delete the east-west gateway.

    kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context1}
    kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context2}
  3. 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}
  4. Delete the istio-remote-peer gateway 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}
  5. 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
    done
  6. Delete the ca-certs secret.

    kubectl delete secret cacerts -n istio-system --context ${context1}
    kubectl delete secret cacerts -n istio-system --context ${context2}
  7. 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 sidecar mesh with the Gloo Operator:

  1. 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>
  2. Delete the east-west gateway.

    kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context1}
    kubectl delete gateway istio-eastwest -n istio-eastwest --context ${context2}
  3. 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         16m
  4. Delete the istio-remote-peer gateway 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}
  5. Delete the ServiceMeshController resource and gloo-extensions-config configmap.

    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}
  6. 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}
  7. Delete the ca-certs secret.

    kubectl delete secret cacerts -n istio-system --context ${context1}
    kubectl delete secret cacerts -n istio-system --context ${context2}
  8. 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}
  9. 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}