Uninstall Gloo Mesh Core or deregister your cluster from the Gloo management plane.
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 link Sidecar service mesh link
If you manually deployed a sidecar mesh with Helm:
Uninstall the Helm release for istiod
. Note that your release name might be different if you used a revision.
helm uninstall -n istio-system istiod
Optional: Uninstall the Istio CNI.
helm uninstall -n kube-system istio-cni
Uninstall the Istio CRDs.
helm uninstall -n istio-system istio-base
Delete Helm releases for any gateways that you installed.
helm uninstall -n gloo-mesh-gateways istio-ingressgateway
helm uninstall -n gloo-mesh-gateways istio-eastwestgateway
Delete the Istio namespaces.
kubectl delete namespace istio-system
kubectl delete namespace gloo-mesh-gateways
If you used the legacy Istio lifecycle manager, uninstall the Istio control plane and gateways before you uninstall Gloo Mesh Core.
Delete the GatewayLifecycleManager
resources for any gateways.
kubectl delete GatewayLifecycleManager istio-ingressgateway -n gloo-mesh
kubectl delete GatewayLifecycleManager istio-egressgateway -n gloo-mesh
Verify that the gateway resources are removed before you proceed to the next step.
kubectl get all -n gloo-mesh-gateways
Delete the IstioLifecycleManager
resource for the istiod
control plane.
kubectl delete IstioLifecycleManager istiod-control-plane -n gloo-mesh
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
kubectl get all -n istio-system
Delete the Istio namespaces.
kubectl delete ns istio-system
kubectl delete ns gloo-mesh-gateways
Ambient service mesh link 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
Gloo Mesh Core link Uninstall the Gloo Mesh Core release.
helm uninstall gloo-mesh-core -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 link Before you begin, 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>
Sidecar service mesh link If you used the legacy Istio lifecycle manager, uninstall the Istio control plane and gateways before you uninstall Gloo Mesh Core.
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 the istiod
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 Core link Uninstall the Gloo agent that runs on each workload cluster.
meshctl cluster deregister \
--kubecontext $MGMT_CONTEXT \
--remote-context $REMOTE_CONTEXT1 \
$REMOTE_CLUSTER1
meshctl cluster deregister \
--kubecontext $MGMT_CONTEXT \
--remote-context $REMOTE_CONTEXT2 \
$REMOTE_CLUSTER2
Example output:
Deregistering cluster: cluster1
Finished uninstalling release gloo-mesh-agent
Successfully deregistered cluster: cluster1
Uninstall the agent Helm releases.
helm uninstall gloo-platform -n gloo-mesh --kube-context $REMOTE_CONTEXT1
helm uninstall gloo-platform -n gloo-mesh --kube-context $REMOTE_CONTEXT2
Delete the corresponding KubernetesCluster resources from the management cluster.
kubectl delete kubernetescluster $REMOTE_CLUSTER1 $REMOTE_CLUSTER2 -n gloo-mesh --context $MGMT_CONTEXT
Delete the relay secrets from each workload cluster, as you cannot reuse the same secret if you decide to re-register the agent later.
kubectl delete secret -n gloo-mesh relay-client-tls-secret --context $REMOTE_CONTEXT1
kubectl delete secret -n gloo-mesh relay-identity-token-secret --context $REMOTE_CONTEXT1
kubectl delete secret -n gloo-mesh relay-root-tls-secret --context $REMOTE_CONTEXT1
kubectl delete secret -n gloo-mesh relay-client-tls-secret --context $REMOTE_CONTEXT2
kubectl delete secret -n gloo-mesh relay-identity-token-secret --context $REMOTE_CONTEXT2
kubectl delete secret -n gloo-mesh relay-root-tls-secret --context $REMOTE_CONTEXT2
Uninstall any Gloo CRDs, such as by deleting the CRD Helm release.
helm uninstall gloo-platform-crds -n gloo-mesh --kube-context $REMOTE_CONTEXT1
helm uninstall gloo-platform-crds -n gloo-mesh --kube-context $REMOTE_CONTEXT2
If you do not have a CRD Helm release, check for and manually remove any CRDs.
kubectl get crds --context $REMOTE_CONTEXT1 | grep solo
kubectl delete --context $REMOTE_CONTEXT1 crd <$CRD>
kubectl get crds --context $REMOTE_CONTEXT2 | grep solo
kubectl delete --context $REMOTE_CONTEXT2 crd <$CRD>
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