If you no longer need your Gloo Gateway environment, you can uninstall the control plane and all gateway proxies. You can also optionally remove related components such as Prometheus and sample apps.

Uninstall

Remove the Gloo Gateway control plane and gateway proxies.

  1. Get all HTTP routes in your environment.

      kubectl get httproutes -A
      
  2. Remove each HTTP route.

      kubectl delete -n <namespace> httproute <httproute-name>
      
  3. Get all reference grants in your environment.

      kubectl get referencegrants -A
      
  4. Remove each reference grant.

      kubectl delete -n <namespace> referencegrant <referencegrant-name>
      
  5. Get all gateways in your environment that are configured by the gloo-gateway-v2 gateway class.

      kubectl get gateways -A | grep gloo-gateway-v2
      
  6. Remove each gateway.

      kubectl delete -n <namespace> gateway <gateway-name>
      
  7. Uninstall Gloo Gateway.

    1. Uninstall the gloo-gateway Helm release.

        helm uninstall gloo-gateway -n gloo-system
        
    2. Delete the Gloo Gateway CRDs.

        helm uninstall gloo-gateway-crds -n gloo-system
        
    3. Remove the gloo-system namespace.

        kubectl delete namespace gloo-system
        
    4. Confirm that the CRDs are deleted.

        kubectl get crds | grep kgateway
        
  8. Remove the Kubernetes Gateway API CRDs. If you installed a different version or channel of the Kubernetes Gateway API, update the following command accordingly.

      kubectl delete -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yaml
      

Uninstall with ArgoCD

For ArgoCD installations, use the following steps to clean up your environment.

Uninstall optional components

Remove any optional components that you no longer need, such as sample apps.

  1. If you no longer need the Prometheus stack to monitor resources in your cluster, uninstall the release and delete the namespace.

      helm uninstall kube-prometheus-stack -n monitoring
    kubectl delete namespace monitoring
      
  2. Remove the httpbin sample app.

      kubectl delete -f https://raw.githubusercontent.com/kgateway-dev/kgateway/refs/heads/v2.0.x/examples/httpbin.yaml
      
  3. Remove the Petstore sample app.

      kubectl delete -f https://raw.githubusercontent.com/kgateway-dev/kgateway.dev/v2.0.x/assets/docs/examples/petstore.yaml