Manage Helm repositories on Google Cloud Storage
Clone or download
Latest commit 13d907e May 31, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd/helm-gcs cleaning May 13, 2018
pkg cleaning May 13, 2018
scripts print installed version May 31, 2018
vendor [WIP] rm & pull chart,, vendoring May 11, 2018
.gitignore Initial commit Oct 31, 2017
.goreleaser.yml Update goreleaser May 12, 2018
.travis.yml travis May 13, 2018
Gopkg.lock minor updatesxs May 12, 2018
Gopkg.toml [WIP] rm & pull chart,, vendoring May 11, 2018
LICENSE [WIP] rm & pull chart,, vendoring May 11, 2018
README.md update README.md May 31, 2018
plugin.yaml Bump version May 13, 2018

README.md

helm-gcs Build Status

helm-gcs is a helm plugin that allows you to manage private helm repositories on Google Cloud Storage.

Installation

Install the latest version:

$ helm plugin install https://github.com/nouney/helm-gcs

Install a specific version:

$ helm plugin install https://github.com/nouney/helm-gcs --version 0.2.0

Quick start

# Init a new repository
$ helm gcs init gs://bucket/path

# Add your repository to Helm
$ helm repo add repo-name gs://bucket/path

# Push a chart to your repository
$ helm gcs push chart.tar.gz repo-name

# Update Helm cache
$ helm repo update

# Fetch the chart
$ helm fetch repo-name/chart

# Remove the chart
$ helm gcs rm chart repo-name

Documentation

Authentification

To authenticate against GCS you can:

See the GCP documentation for more information.

Create a repository

First, you need to create a bucket on GCS, which will be used by the plugin to store your charts.

Then you have to initialize a repository at a specific location in your bucket:

$ helm gcs init gs://your-bucket/path

You can create a repository anywhere in your bucket.

This command does nothing if a repository already exists at the given location.

You can now add the repository to helm:

$ helm repo add my-repository gs://your-bucket/path

Push a chart

Package the chart:

$ helm package my-chart

This will create a file my-chart-<semver>.tgz.

Now, to push the chart to the repository my-repository:

$ helm gcs push my-chart-<semver>.tgz my-repository

If you got this error:

Error: update index file: index is out-of-date

That means that someone/something updated the same repository, at the same time as you. You just need to execute the command again or, next time, use the --retry flag to automatically retry to push the chart.

Once the chart is uploaded, use helm to fetch it:

# Update local repo cache if necessary
# $ helm repo update

$ helm fetch my-chart

This command does nothing if the same chart (name and version) already exists.

Using --retry is highly recommended in a CI/CD environment.

Remove a chart

You can remove all the versions of a chart from a repository by running:

$ helm gcs remove my-chart my-repository

To remove a specific version, simply use the --version flag:

$ helm gcs remove my-chart my-repository --version 0.1.0

Don't forget to run helm repo up after you remove a chart.

Troubleshooting

You can use the global flag --debug, or set HELM_GCS_DEBUG=true to get more informations. Please write an issue if you find any bug.