If you no longer need your Gloo Mesh Core environment, you can uninstall Gloo Mesh Core components, such as the control and data plane, and any Gloo-managed Istio installations.

Single cluster

  1. Gloo-managed Istio only: If you used the Istio lifecycle manager, uninstall the Istio control plane and gateways before you uninstall Gloo Mesh Core.

    1. Delete the GatewayLifecycleManager resources for any gateways.
        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.
        kubectl get all -n gloo-mesh-gateways
        
    3. Delete the IstioLifecycleManager resource for the istiod control plane.
        kubectl delete IstioLifecycleManager istiod-control-plane -n gloo-mesh
        
    4. 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-23
      kubectl get all -n istio-system
        
    5. Delete the Istio namespaces.
        kubectl delete ns istio-system
      kubectl delete ns gloo-mesh-gateways
        
  2. Uninstall the Gloo Mesh Core release.

      helm uninstall gloo-mesh-core -n gloo-mesh
      
  3. 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>
      
  4. Delete the gloo-mesh namespace.

      kubectl delete namespace gloo-mesh
      

Multicluster

  1. Save the names and contexts of the clusters you want to uninstall Gloo Mesh Core 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>
      
  2. Gloo-managed Istio only: If you used the Istio lifecycle manager, uninstall the Istio control plane and gateways before you uninstall Gloo Mesh Core.

    1. 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
        
    2. 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
        
    3. Delete the IstioLifecycleManager resource for the istiod control plane.
        kubectl delete IstioLifecycleManager istiod-control-plane -n gloo-mesh --context $MGMT_CONTEXT
        
    4. 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-23 --context $REMOTE_CONTEXT1
      kubectl get all -n istio-system --context $REMOTE_CONTEXT1
        
    5. 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
        
  3. Uninstall the Gloo agent that runs on each workload cluster.

  4. 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
      
  5. 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
      
  6. Delete the gloo-mesh namespace.

      kubectl --context $MGMT_CONTEXT delete namespace gloo-mesh