ChartMuseum is an open-source Helm Chart Repository written in Go (Golang), with support for cloud storage backends, including Google Cloud Storage, Amazon S3,
Microsoft Azure Blob Storage, Alibaba Cloud OSS Storage and Openstack Object Storage.

Works as a valid Helm Chart Repository, and also provides an API for uploading new chart packages to storage etc.

Powered by some great Go technology:

Kubernetes Helm – for working with charts, generating repository index
Gin Web Framework – for HTTP routing
cli – for command line option parsing
zap – for logging

Prerequisites

Kubernetes with extensions/v1beta1 available

[If enabled] A persistent storage resource and RW access to it

[If enabled] Kubernetes StorageClass for dynamic provisioning

Custom Downloader

This plugin also defines the cm:// protocol that you may specify when adding a repo:

$ helm repo add chartmuseum cm://my.chart.repo.com
The only real difference with this vs. simply using http/https, is that the environment variables above are recognized by the plugin and used to set the Authorization
header appropriately. As in, if you do not add your repo in this way, you are unable to use token-based auth for GET requests (downloading index.yaml, chart .tgzs,
etc).

By default, cm:// translates to https://. If you must use http://, you can set the following env var:

$ export HELM_REPO_USE_HTTP=”true”

Cache

By default, the contents of index.yaml (per-tenant) will be stored in memory. This means that memory usage will continue to grow indefinitely as more charts are added
to storage.

You may wish to offload this to an external cache store, especially for large, multitenant installatio

Tell us about a new Kubernetes application

Newsletter

Never miss a thing! Sign up for our newsletter to stay updated.

About

Discover and learn about everything Kubernetes

Navigation