user264953
user264953

Reputation: 1967

Upgrade Failled in Helm Upgrade stage

I get the below error in my helm upgrade stage. I did the following change apiVersion: networking.k8s.io/v1beta1 to apiVersion: networking.k8s.io/v1 Could someone kindly let me know the reason why I encounter this issue and the fix for the same. Any help is much appreciated

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 "Ingress" in version "networking.k8s.io/v1beta1"

enter image description here

Upvotes: 4

Views: 6074

Answers (2)

WindyFields
WindyFields

Reputation: 2875

The reason why you encounter the issue is Helm attempts to create a diff patch between the current deployed release (which contains the Kubernetes APIs that are removed in your current Kubernetes version) against the chart you are passing with the updated/supported API versions. So when Kubernetes removes an API version, the Kubernetes Go client library can no longer parse the deprecated objects and Helm therefore fails when calling the library.

Helm has the official documentation on how to recover from that scenario: https://helm.sh/docs/topics/kubernetes_apis/#updating-api-versions-of-a-release-manifest

Upvotes: 4

Sai Chandra Gadde
Sai Chandra Gadde

Reputation: 3311

Helm doesn't like that an old version of the template contains removed apiVersion’s and results in the above error.To fix it, follow the steps in the official documentation from Helm.

Because we didn’t upgrade the apiVersion before it was removed, we had to follow the manual approach. We have quite a few services that need updating, in two different kubernetes clusters (production and test). So there is a script that would update the apiVersion for the ingress object.You can find the script here.

The script assumes that you want to change networking.k8s.io/v1beta1 to networking.k8s.io/v1. If you have a problem with another apiVersion, change those values in the script in line 30. Updating your helm chart template if further changes are needed and deploy/apply the new helm chart.

Upvotes: 2

Related Questions