Chartmuseum

Deploy charts

Helm charts are one of the most used methods to package (complex) applications to share it with others. Chartmuseum is an OSS project integrated into Harbor to provide Helm chart repositories.

Requirements

  • Helm v2
  • Connectivity to the registry (including credentials)

Hands-on

Make sure you know the Harbor external hostname, username, and password.

Let's assume these values in this example:

  • Hostname: harbor.example.com
  • Username: admin
  • Password: Harbor12345

Then prepare your Helm client:

$ helm init --client-only
$HELM_HOME has been configured at /Users/sighup/.helm.
Not installing Tiller due to 'client-only' flag having been set
$ helm plugin install https://github.com/chartmuseum/helm-push
Downloading and installing helm-push v0.8.1 ...
https://github.com/chartmuseum/helm-push/releases/download/v0.8.1/helm-push_0.8.1_darwin_amd64.tar.gz
Installed plugin: push

Now let's add your registry to your Helm client:

$ helm repo add --username=admin --password=Harbor12345 my-harbor-library https://harbor.example.com/chartrepo/library
"my-harbor-library" has been added to your repositories

In the default registry installation, a Harbor project is created named library. We are going to use this project to push images.

Library

Then, let's push a Helm chart. It does not matter if you download an existing one from GitHub or you build your chart.

Let's download one:

$ helm fetch stable/nginx-ingress --version 1.36.2
$ du -h nginx-ingress-1.36.2.tgz
 24K    nginx-ingress-1.36.2.tgz

Then, you are ready to push it to your registry:

$ helm push --username=admin --password=Harbor12345 nginx-ingress-1.36.2.tgz my-harbor-library
Pushing nginx-ingress-1.36.2.tgz to harbor-test...
Done.

The Helm chart is now available in your registry. You can find it in the Harbor UI:

Ubuntu 16

That's all!