Setting Up a Private Helm Chart Repository with Chartmuseum

Chartmuseum

I have been using Helm charts, like everyone else, for the Kubernetes cluster in my homelab. Until a few months back, I never gave a thought to the reliability of the Helm chart repositories I was using. And then the Bitnami news dropped where they announced that they were going to stop supporting their Helm chart repositories.

Everyone has been scrambling to handle this situation, and most are settling on one of two options:

  1. Vendor the sources of existing charts in the Git repositories.
  2. Use a Helm chart repository, paid or free, to mirror them in a more scalable way.

I began with the first option, but it has left me feeling uneasy. So I looked into the second option, and found two alternatives: Chartmuseum and Harbor.

Harbor seemed full-featured and OCI-compliant, and it handled both Helm and Docker artifacts. But it seemed a bit overkill for my needs. So I went with Chartmuseum, which was pretty simple to set up with Docker compose on my Synology NAS and storage on my local Minio instance.

Another factor was that Chartmuseum supported multi-tenancy, which for some strange reason is missing from OCI registries like Harbor. I really don’t like the idea of having a flat namespace for charts from different organizations. Multi-tenancy allows me to create a separate mirror for each of the upstream repos, preventing even the slightest possibility of them sharing charts with the same name.

I documented my whole setup on my notes website, in case it helps someone else.

tech
Ubuntu Wi-Fi 5GHz Issue on Raspberry Pi 5 Terraform MCP server makes a huge difference to TF code accuracy