We can use ChartMuseum to host our own Helm packages. In this session , we will configure ChartMuseum and will add the repository to Kubeapps

We will also upload the nginx-deployment helm package that we have created in earlier session to our local repository.

  • Download and configure chartmuseum

    $ curl -LO

We will be using /{HOME}/chartstorage directory to store the packages

$ chmod +x ./chartmuseum
$ sudo mv ./chartmuseum /usr/local/bin
$ mkdir ./chartstorage
  • Create a systemd service file.

    cat <<EOF | sudo tee /etc/systemd/system/chartmuseum.service
    Description=Helm Chartmuseum
    ExecStart=/usr/local/bin/chartmuseum \\
    --debug \\
    --port=8090 \\
    --storage="local" \\
  • Start chartmuseum

    $ sudo systemctl daemon-reload
    $ sudo systemctl start chartmuseum
    $ sudo systemctl enable chartmuseum


Created symlink from /etc/systemd/system/ to /etc/systemd/system/chartmuseum.service.
  • Package our Helm chart

    $ cd nginx-deployment/
    $ helm package .


Successfully packaged chart and saved it to: /home/ubuntu/nginx-deployment/nginx-deployment-2.tgz
  • Upload package to ChartMuseum

The URL IP is the IP of system which the chartmuseum service is running.

$ curl -L --data-binary "@/home/ubuntu/nginx-deployment/nginx-deployment-2.tgz"
  • Also add the repository to helm

    $ helm repo add chartmuseum
  • Add repo to Kubeapps

Click Configuration -> App Repositories -> Add App Repository

Fill Name and URL , then click Install Repo


  • Repo will appear in the list after addition


  • View the Helm packages which is hosted in ChartMuseum

Click Catalog and search nginx-deployment

Remember , we have added an icon in our Chart.yaml file . You can see the same icon in deployment.


comments powered by Disqus