Skip to content

Manage Helm repositories on Google Cloud Storage

License

Notifications You must be signed in to change notification settings

jjones0293/helm-gcs

 
 

Repository files navigation

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 latest 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.0

Quick start

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

# Add your repository to Helm
$ helm repo add repo-name gs:https://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:https://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:https://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.

About

Manage Helm repositories on Google Cloud Storage

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 93.4%
  • Shell 6.6%