kuberneteskubernetes-helmnginx-ingressquay.iogcr.io

NGINX Controller Upgrade Using Helm


I installed NGINX Controller 2 years ago using Helm 2 in our AKS clusters, and it pulled the image from quay.io at the time:

quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.27.0

We are now looking to upgrade our NGINX ingress controllers, and in our new clusters I see the image repo is gcr.io:

k8s.gcr.io/ingress-nginx/controller:v1.20.0@sha256:8xxxxxxxxxxxxxxxxxxxxxxxxxxxx3

I ran the following command using Helm 3 to upgrade Kubernetes NGINX Controller to no avail in our old cluster with controller from quay.io: helm upgrade awesome-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx -f nginx-reuse-values-file.yaml

Error: UPGRADE FAILED: current release manifest contains removed kubernetes api(s) for this kubernetes version and it is therefore unable to build the kubernetes objects for performing the diff. error from kubernetes: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"

The K8s version is 1.20.9.

The current quay.io NGINX ingress controller manifest shows following version: apiVersion: apps/v1


Solution

  • Well, figured it out:

    https://github.com/helm/helm-mapkubeapis

    The Helm mapkubeapis plugin for the win. I had to update deprecated APIs as evident in the error message in my original post. Ran Helm upgrade after updating to the latest APIs for my K8s version successfully.