# How to upgrade ingress-nginx:
helm upgrade --reuse-values ingress-nginx ingress-nginx/ingress-nginx -n ingress-nginx

# Sample output of a failure scenario:

brucelee@k8-controller:~$ helm upgrade --reuse-values ingress-nginx ingress-nginx/ingress-nginx -n ingress-nginx
Error: UPGRADE FAILED: template: ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml:52:24: executing "ingress-nginx/templates/admission-webhooks/job-patch/job-patchWebhook.yaml" at <.Values.controller.admissionWebhooks.patchWebhookJob.resources>: nil pointer evaluating interface {}.resources

 

# How to force uninstall ingress-nginx and re-install it:
 
helm delete ingress-nginx -n ingress-nginx
# Delete a pod stuck in terminating status
podName=ingress-nginx-controller-zlqbl
kubectl delete pod $podName --grace-period=0 --force --namespace ingress-nginx
# Pull most updated versions of applications from source
helm repo update
# Export helm's ingress-nginx yaml config file
helm show values ingress-nginx/ingress-nginx > ingress-nginx.yaml
# edit the values
vim ingress-nginx.yaml

# change these three (3) values

  hostNetwork: true # change this value to true
 

  hostPort:
    enabled: true # set this value to true


  kind: DaemonSet # modify this from Deployment to DaemonSet
# Reinstall ingress-nginx using the edited yaml file:
helm install ingress-nginx ingress-nginx/ingress-nginx -n ingress-nginx --values ingress-nginx.yaml
# Check results:
k -n ingress-nginx get all