The Helm downloader plugin that provides GIT protocol support.
This fits multiple use cases:
- Need to keep charts private
- Doesn't want to package charts before installing
- Charts in a sub-path, or with another ref than
master
The installation itself is simple as:
$ helm plugin install https://github.com/aslafy-z/helm-git.git
You can install a specific release version:
$ helm plugin install https://github.com/aslafy-z/helm-git.git --version 0.3.1
To use the plugin, you only need git
. If you want to build the plugin from source, or you want to contribute
to the plugin, please see these instructions.
$ helm plugin remove helm-git
helm-git
will package any chart that is not so you can directly reference paths to original charts.
Here's the Git urls format, followed by examples:
git+https://[provider.com]/[user]/[repo]@[path/to/charts]?ref=[git-ref]
git+ssh://git@[provider.com]/[user]/[repo]@[path/to/charts]?ref=[git-ref]
git+file://[path/to/repo]@[path/to/charts]?ref=[git-ref]
git+https://github.com/jetstack/cert-manager@deploy/charts?ref=v0.6.2
git+ssh://[email protected]/jetstack/cert-manager@deploy/charts?ref=v0.6.2
git+file:///home/zadkiel/charts/cert-manager@deploy/charts?ref=v0.6.2
Add your repository:
$ helm repo add cert-manager git+https://github.com/jetstack/cert-manager@deploy/charts?ref=v0.6.2
You can use it as any other Helm chart repository. Try:
$ helm search cert-manager
NAME CHART VERSION APP VERSION DESCRIPTION
cert-manager/cert-manager v0.6.6 v0.6.2 A Helm chart for cert-manager
$ helm install cert-manager/cert-manager --version "0.6.6"
Fetching also works:
$ helm fetch cert-manager/cert-manager --version "0.6.6"
$ helm fetch git+https://github.com/jetstack/cert-manager@deploy/charts/cert-manager-v0.6.2.tgz?ref=v0.6.2
As this plugin uses git
CLI to clone repos. You can configure private access in the same manner that with any git
repo.
- using ssh: Start a ssh-agent daemon
- using https: Use a credentials helper
Contributions are welcome! Please see these instructions that will help you to develop the plugin.