Skip to content
Manage Helm repositories on Google Cloud Storage πŸ” **privately**
Go Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Add prj logo Jun 2, 2019
cmd/helm-gcs Push to Public URL Aug 8, 2019
pkg Push to Public URL Aug 8, 2019
scripts Fix install.sh issue with os test Jun 26, 2019
vendor Update ownership and dependencies (#19) Jun 2, 2019
.gitignore Initial commit Oct 31, 2017
.goreleaser.yml Update releaser config (#21) Jun 4, 2019
.travis.yml Update ownership and dependencies (#19) Jun 2, 2019
Gopkg.lock Update ownership and dependencies (#19) Jun 2, 2019
Gopkg.toml [WIP] rm & pull chart,, vendoring May 11, 2018
LICENSE Update ownership and dependencies (#19) Jun 2, 2019
OWNERS Update ownership and dependencies (#19) Jun 2, 2019
README.md
plugin.yaml

README.md

helm-gcs has a new owner @hayorov and more maintainers WANTED, please contact me for details.

helm-gcs logo

helm-gcs Build Status

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

Installation

Install the stable version:

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

Install a specific version:

$ helm plugin install https://github.com/hayorov/helm-gcs --version 0.2.1

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.

You can’t perform that action at this time.