Using Helm charts with Pulp Container

Push and Host

Use the following example to download and push an etherpad chart from the Red Hat community repository.

Add a chart repository:

$ helm repo add redhat-cop https://redhat-cop.github.io/helm-charts

Update the information of available charts locally from the chart repository:

$ helm repo update

Download a chart from a repository:

$ helm pull redhat-cop/etherpad --version=0.0.4 --untar

Package the chart into a chart archive:

$ helm package ./etherpad
Successfully packaged chart and saved it to: /home/vagrant/devel/pulp_container/etherpad-0.0.4.tgz

Log in to your Pulp container registry using helm registry login:

$ helm registry login pulp3-source-fedora36.puffy.example.com

Push the chart to your Pulp Container registry using the helm push command:

$ helm push etherpad-0.0.4.tgz oci://pulp3-source-fedora36.puffy.example.com
Pushed: pulp3-source-fedora36.puffy.example.com/etherpad:0.0.4
Digest: sha256:a6667ff2a0e2bd7aa4813db9ac854b5124ff1c458d170b70c2d2375325f2451b

Ensure that the push worked by deleting the local copy, and then pulling the chart from the repository:

$ rm -rf etherpad-0.0.4.tgz

$ helm pull oci://pulp3-source-fedora36.puffy.example.com/etherpad --version 0.0.4
Pulled: pulp3-source-fedora36.puffy.example.com/etherpad:0.0.4
Digest: sha256:4f627399685880daf30cf77b6026dc129034d68c7676c7e07020b70cf7130902

The chart can then be installed using the helm install command:

$ helm install etherpad-0.0.4.tgz

Alternatively, charts can be installed directly from the registry without needing to download locally. Use the helm install command and reference the registry location:

$ helm install oci://pulp3-source-fedora36.puffy.example.com/helm/etherpad --version=0.0.4

Mirror

Being an OCI compliant registry, Pulp Container registry can natively mirror helm charts that are stored as an OCI image:

{
 "schemaVersion": 2,
 "config": {
   "mediaType": "application/vnd.cncf.helm.config.v1+json",
   "digest": "sha256:8ec7c0f2f6860037c19b54c3cfbab48d9b4b21b485a93d87b64690fdb68c2111",
   "size": 117
 },
 "layers": [
   {
     "mediaType": "application/vnd.cncf.helm.chart.content.v1.tar+gzip",
     "digest": "sha256:1b251d38cfe948dfc0a5745b7af5ca574ecb61e52aed10b19039db39af6e1617",
     "size": 2487
   },
   {
     "mediaType": "application/vnd.cncf.helm.chart.provenance.v1.prov",
     "digest": "sha256:3e207b409db364b595ba862cdc12be96dcdad8e36c59a03b7b3b61c946a5741a",
     "size": 643
   }
 ]
}