kubernetes-helmrasarasa-x

How can I understand and resolve helm chart errors?


I get the following error message when trying to install the rasa x helm chart:

Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Ingress" in version "extensions/v1beta1

Is there anyone who can help me understand this error message?

These are the commands I use in the terminal:

helm repo add rasa-x https://rasahq.github.io/rasa-x-helm

kubectl create namespace my-namespace

helm --namespace my-namespace install --values values.yml my-release rasa-x/rasa-x

In my values.yaml I have:

nginx:
  service:
    # connect LoadBalancer directly to VMs' internal IP
    # You get this value with: $ hostname -I
    externalIPs: [10.164.0.2]

Solution

  • The chart you are using tries to create an Ingress object, using an API version that was deprecated a while ago, and is no longer recognized.

    Issue comes from there: https://github.com/RasaHQ/rasa-x-helm/blob/main/charts/rasa-x/templates/ingress.yaml#L4-L10

    For some reason, Helm doesn't detect the proper API version (.Capabilities.KubeVersion.Version). Though having worked on other charts, capabilites discovery isn't 100% reliable - eg. using ArgoCD.

    As a workaround, you could try to generate objects into a file:

    helm --dry-run [your-options] >my-rendered-chart.yaml
    sed -i 's|extensions/v1beta1|networking.k8s.io/v1|' my-rendered-chart.yaml
    kubectl apply -f my-rendered-chart.yaml
    

    Although this kinda defeats the purpose of Helm. It would be best to figure out a fix and contribute it.

    To work on a chart, you could extract it locally, using.

    helm repo add rasahq  https://rasahq.github.io/rasa-x-helm 
    helm fetch rasahq/rasa-x --untar
    ls rasa-x/
    

    You could then work on a patch, testing your changes with:

    helm install --dry-run --debug ./my-chart
    helm install --dry-run --debug ./my-chart | kubectl apply -f-
    ...