provider-helm
provider-helm copied to clipboard
Some Charts have unexpected names
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
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
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?