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
Use helm
CLI to install this plugin:
$ helm plugin install https://github.com/aslafy-z/helm-git --version 0.8.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]&[sparse=0]]
git+ssh://git@[provider.com]/[user]/[repo]@[path/to/charts][?[ref=git-ref]&[sparse=0]]
git+file://[path/to/repo]@[path/to/charts][?[ref=git-ref]&[sparse=0]]
git+https://github.com/jetstack/cert-manager@deploy/charts?ref=v0.6.2&sparse=0
git+ssh://git@github.com/jetstack/cert-manager@deploy/charts?ref=v0.6.2&sparse=1
git+ssh://git@github.com/jetstack/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
name | description | default |
---|---|---|
ref | Set git ref to a branch or tag. Works also for commits with sparse=0 |
master |
sparse | Set git strategy to sparse. Will try to fetch only the needed commits for the target path. | 1 |
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
You can enable debug output by setting HELM_GIT_DEBUG
environment variable to 1
:
HELM_GIT_DEBUG=1 helm repo add cert-manager git+https://github.com/jetstack/cert-manager@deploy/charts?ref=v0.6.2
In order to debug in a more efficient maneer, I advise you use helm fetch
instead of helm repo add
.
Contributions are welcome! Please see these instructions that will help you to develop the plugin.