Describe the feature
After a discussion with @hiddeco on slack about an issue that encountered when creating HelmRelease with a chart that has dependency chart hosted in google bucket under gs://... like URL.
---
apiVersion: flux.weave.works/v1beta1
kind: HelmRelease
metadata:
name: servicename
namespace: default
annotations:
flux.weave.works/automated: "true"
flux.weave.works/tag.stable: semver:5.x
flux.weave.works/tag.canary: glob:v*
spec:
releaseName: servicename
chart:
git: [email protected]:company/servicename
path: deployment/servicename
ref: master
values:
stable:
image:
repository: eu.gcr.io/gcs-helm-repo-id/company/servicename
tag: v1.0.1
replicaCount: 2
canary:
image:
repository: eu.gcr.io/gcs-helm-repo-id/company/servicename
tag: v1.0.1
replicaCount: 1
The chart in [email protected]:company/servicename contains requirements.yaml file that looks like:
dependencies:
- name: dependency
version: 0.0.1
repository: gs://gcs-helm-repo-id
So in that case the operator isn't able to handle the chart in gs://gcs-helm-repo-id sinceit supports only HTTP(S) and local references file:// and it logs the following:
ts=2020-01-07T13:08:42.015422132Z caller=chartsync.go:546 component=chartsync warning="failed to update chart dependencies" resource=default:helmrelease/servicename err="could not update repo: Error: Could not find protocol handler for: gs\n"
Would that be beneficial for other users as well ?
And in case I'd like to work on that what are packages/file of the operator that I need to understand and change?
Appreciate your time :)
If we're adding support for google buckets we should also cover AWS S3 that's way more popular than GS, see https://github.com/hypnoglow/helm-s3
I think by enriching this part of our helm/v3 package by adding something like this from Helm v3, and mounting both binaries (AWS/S3) at the expected location ($XDG_DATA_HOME/plugins), it would work without us adopting a specific plugin, and this approach would thus have my preference.
@cbenjemaa can you confirm the following image to be working with a Helm plugin installed using helm2 plugin install or helm3 plugin install within the container? For helm2 the $HELM_HOME/plugins folder needs to exist before the install command works, and the cURL detection of the GCS plugin does not work in Alpine (so you need to install curl first).
hiddeco/helm-operator:enhancement-getter-plugins-5e0fcdb8
Most helpful comment
If we're adding support for google buckets we should also cover AWS S3 that's way more popular than GS, see https://github.com/hypnoglow/helm-s3