Imagine the following situation you have an instance of ChartMuseum repository up & running for months now and it does serve Helm Charts. You also build up an instance of Redhat Quay in parallel, but it has been solely used for storing container images until now.
With Redhat Quay 3.5 (GA) it’s possible to activate & use OCI Artifact Support for Helm charts, storing now both -container images & Helm Charts- in the same place. This and additional features of Redhat Quay made the decision easy to move the existing Helm Charts from ChartMuseum to Redhat Quay.
What is ChartMuseum?
ChartMuseum is an open-source Helm Chart repository server written in Go (Golang). Basically it’s a HTTP server that serves packaged Helm Charts and an
index.yaml file, which is an index of all Helm Charts in the repository.
What is Redhat Quay?
Redhat Quay is an image registry. It comes with additional, enterprise-ready features (e.g. access control management, logging/auditing, etc.).
- ChartMuseum is up & running, serving via a known API URL (e.g. https://chartmuseum.local.net)
- An admin host is up & running. The
helmbinary is release v3.x or higher (see:
helm version), you have set an extra environment variable:
- Redhat Quay version 3.5+ is up & running, serving via a known URL (e.g https://quay.local.net)
- Redhat Quay has an active user/organization (e.g.
- Redhat Quay configuration file
config.yamlhas two properties set to enable the use of OCI artifacts:
FEATURE_GENERAL_OCI_SUPPORT: true FEATURE_HELM_OCI_SUPPORT: true
Step 1 - Connect ChartMuseum repository
First of all you have to add your ChartMuseum instance as a repo to your helm installation.
helm repo add ChartMuseum https://chartmuseum.local.net helm repo update helm repo list
Step 2 - Connect Redhat Quay registry
Next you have to add your Quay instance as a registry to your helm instance.
helm registry login quay.local.net
Step 3 - Pull and tag
Now you can pull a Helm Chart (e.g. ‘webserver’) from your repository and tag it for pushing to your registry.
helm pull ChartMuseum/webserver --version=0.0.1 --untar helm chart save ./webserver quay.local.net/my-helm-charts/webserver:0.0.1 helm chart list
Step 4 - Push
Now you can push your the Helm Chart which you pulled before to you registry. After that you can delete it locally.
helm chart push quay.local.net/my-helm-charts/webserver:0.0.1 helm chart rm quay.local.net/my-helm-charts/webserver:0.0.1 helm chart list
Step 5 - Pull Chart from Quay
From now on you are able to pull your Helm Chart from your registry. You can edit it on local filesystem and deploy it as normal.
helm chart pull quay.local.net/my-helm-charts/webserver:0.0.1 helm chart export quay.local.net/my-helm-charts/webserver:0.0.1 vi webserver/Chart.yaml vi webserver/values.yml helm install webserver
With this simplified five step demonstration you should be able to get the idea, how to migrate your Helm Charts to Redhat Quay registry. Depending on the amount of Helm Charts, the workflow can be automated. This can make sense if both -ChartMuseum repository & Redhat Quay registry- coexist for a longer time and you need to have a synchronisation of both in place.