helm-mapkubeapis icon indicating copy to clipboard operation
helm-mapkubeapis copied to clipboard

Kube mapping value not detected

Open rasta-rocket opened this issue 1 year ago • 0 comments

Hi folks 👋

I would like to raise you a recent issue I have with this amazing tool. Indeed I noticed recently that I wasn't able to update deprecated resource in my helm releases

By looking at the code and making some try I finally came to the conclusion that the comparison between the modifiedManifest and the deprecatedAPI failed every time since the modifiedManifest yaml contains double quotes (") for each values and the map in the config file don't : so the plugin never try to apply the update on the resource 😅

Here is the line of the comparison

Here is a sample of the modifiedManifest when I print it through the code

apiVersion: "networking.k8s.io/v1beta1"
kind: "Ingress"

Also I noticed this is not consistent for all resources, for example we have custom resources called DNSEndpoint (from the external-dns project)

apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint

When I modify the map file and I manually add the escaped double quote, it works:

 - deprecatedAPI: "apiVersion: \"networking.k8s.io/v1beta1\"\nkind: \"Ingress\"\n"
    newAPI: "apiVersion: \"networking.k8s.io/v1\"\nkind: \"Ingress\"\n"
    deprecatedInVersion: "v1.19"
    removedInVersion: "v1.22"

Maybe some kind of sanitization is required here I don't know, let me know 😉

I'm not sure when it starts to do that, so here is my config:

  • kube client v1.26.3
  • kube server v1.23.16
  • helm v3.11.2
  • helm plugin mapkubeapis 0.4.1

Don't hesitate to reach me if you need more details Cheers 😉

rasta-rocket avatar Mar 28 '23 18:03 rasta-rocket