End of Sale Notice:
Commercial support for NGINX Service Mesh is available to customers who currently have active NGINX Microservices Bundle subscriptions. F5 NGINX announced the End of Sale (EoS) for the NGINX Microservices Bundles as of July 1, 2023.
See our End of Sale announcement for more details.
Uninstall with Helm
This topic explains how to uninstall F5 NGINX Service Mesh using Helm.
Uninstalling the Chart
Important:
OpenShift users: Before uninstalling, read through the OpenShift considerations guide to make sure you understand the implications.
To uninstall the nsm
release in the nginx-mesh
namespace, run:
helm uninstall nsm --namespace nginx-mesh
This command removes most of the Kubernetes components associated with the F5 NGINX Service Mesh release. Helm does not remove the following components:
- CRDs
nginx-mesh
namespace- Spire PersistentVolumeClaim in the
nginx-mesh
namespace
Run this command to remove the CRDS:
kubectl delete crd -l app.kubernetes.io/part-of==nginx-service-mesh
Deleting the namespace will also delete the PersistentVolumeClaim:
kubectl delete namespace nginx-mesh
After uninstalling, re-roll your injected Deployments, DaemonSets, and StatefulSets to remove the sidecar proxy from Pods.
kubectl rollout restart <resource type>/<resource name>
Example:
kubectl rollout restart deployment/frontend
Troubleshooting
In some cases, the mesh may fail to uninstall for unexpected reasons due to environmental, network, or timeout errors. If the mesh fails to uninstall continually, manual intervention may be necessary.
Run this command to see all resources associated with the mesh currently present in your cluster:
kubectl api-resources --verbs=list -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found -l app.kubernetes.io/part-of=nginx-service-mesh -A
nginx-mesh
Namespace Stuck “Terminating”
Use the following script to list and patch all Spiffeid resources:
for ns in $(kubectl get ns | awk '{print $1}' | tail -n +2)
do
if [ $(kubectl get spiffeids -n $ns 2>/dev/null | wc -l) -ne 0 ]
then
kubectl patch spiffeid $(kubectl get spiffeids -n $ns | awk '{print $1}' | tail -n +2) --type='merge' -p '{"metadata":{"finalizers":null}}' -n $ns
fi
done
After patching the Spiffeids the namespace should be removed.
If you are unable to resolve the issues, please reach out to the appropriate support channel.