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

Some Charts have unexpected names

Open kferrone opened this issue 2 years ago • 2 comments

What happened?

I attempted to install the strimzi operator using the Helm Release from Crossplane. I get the following error when crossplane attempts to install the chart:

   - lastTransitionTime: '2021-08-27T15:55:40Z'
      message: >-
        create failed: failed to install release: failed to load chart: stat
        /tmp/charts/strimzi-kafka-operator-0.25.0.tgz: no such file or directory
      reason: ReconcileError
      status: 'False'
      type: Synced

Aaron Eaton helped me on Slack find the real problem. He discovered the strimzi chart;

  • creates a file named: strimzi-kafka-operator-helm-3-chart-0.25.0.tgz
  • however provider-helm is expecting strimzi-kafka-operator-0.25.0.tgz

He also discovered a workaround where you can set the spec.forProvider.chart.url directly to the source, I have this commented out in the snippet below.

How can we reproduce it?

apiVersion: helm.crossplane.io/v1beta1
kind: Release
metadata:
  name: kafka-operator
spec:
  forProvider:
    chart:
      name: strimzi-kafka-operator
      repository: https://strimzi.io/charts
      # use url instead of repository as a workaround
      # url: https://github.com/strimzi/strimzi-kafka-operator/releases/download/0.25.0/strimzi-kafka-operator-helm-3-chart-0.25.0.tgz
      version: 0.25.0
    namespace: strimzi
    skipCreateNamespace: false
    values:
      watchAnyNamespace: true

What environment did it happen in?

Crossplane version: 1.3.0 Helm Provider version: v0.9.0-rc

kferrone avatar Aug 27 '21 17:08 kferrone

The pullAndLoadChart function is hard-coding a naming convention which at least one helm chart is not honoring. See https://github.com/crossplane-contrib/provider-helm/blob/003a0212edf080293e1d8d2f17cd3a33a42e2a73/pkg/clients/helm/client.go#L199

We could update pullChart to either rewrite chart names to the expected format or return the actual chartname and use that throughout the rest of the provider.

Ref: https://github.com/crossplane-contrib/provider-helm/blob/003a0212edf080293e1d8d2f17cd3a33a42e2a73/pkg/clients/helm/client.go#L167

AaronME avatar Aug 27 '21 19:08 AaronME

Any chance for this to be fixed? Currently the only way to keep that consistent in composition is to patch manually the url and pray that strimzi (or any other chart provider) won't change naming schema. Couldn't we just use the correct url and add optional flag to switch between those two approaches?

ksawerykarwacki avatar Mar 18 '22 23:03 ksawerykarwacki