Working With OCI Helm Charts

Harbor stopped offering ChartMuseum interfaces to store Helm Charts. As of now, only OCI registry interfaces are used to store Helm Charts. Interacting with Helm Charts stored in OCI registries is different, but it has some advantages over the old Chart Museum.

  • With OCI based Helm Charts, you get the familiar command syntax as with interacting with container images runtimes. registry login .... The only difference is that you need to use the helm command instead of docker or Podman.
  • Fewer commands needed for installing Charts. No repo add and repo update commands anymore.
  • Publishing Helm Charts to OCI registries does not need the separate plugin cm-push plugin anymore.
  • The performance for repositories with many Helm Charts is better.

This guide assumes that you are familiar with ChartMuseum and Helm Charts.

Logging Into to Your Registry

To install, push or pull Helm Charts in and from your private registry, you need to log in to it first.

TIP

For quick local testing, you can use your username and password or in the case of OIDC the CLI secret, for production and CI/CD environments; we strongly recommended the use of robot account.

Using Username and Password to log in into your registry:


echo $PWD | helm registry login your-subdomain.container-registry.com -u USER_NAME --stdin

Installing OCI based Helm Charts

Installing Helm Charts stored in OCI registries is simplified compared to working with Chart Museum repositories. The overhead of adding and updating repositories repo add and repo update is not needed anymore.


helm install oci://your-subdomain.container-registry.com/library/nginx --version 1.2.3

As you can see, the workflow is straightforward. All the other installation command arguments stay the same, except that you now directly address the Chart location in the URI format with the oci:// prefix protocol.

The option to pull the Helm Chart tarball from a specific repository is also available in case you peek into the Helm Chart templates before installing them.


# Download the Helm Chart tarball.
helm pull oci://your-subdomain.container-registry.com/library/nginx --version 1.2.3

Publishing Helm Charts to OCI Registries

Publishing Helm Charts to OCI registries is also simplified as not external dependencies need to be installed cm-push plugin.


helm chart package . # . the current directory contains the Chart.yaml.
helm push ./nginx-1.2.3.tgz oci://your-subdomain.container-registry.com/library

Adapting or switching from ChartMuseum to OCI based Helm Charts does not come with much effort. The commands are similar and there are fewer steps needed to install charts

Additional Recommendations for OCI Helm Chart Users

Migration from ChartMuseum to OCI based Helm Charts can be done without much effort and even adds some advantages. We recommend using OCI based Helm Charts for new projects and migrating existing projects to OCI based Helm Charts.

To ease the migration, there are a few tools available.

docker run -ti --rm 8gears.container-registry.com/library/chartmuseum2oci --url $HARBOR_URL --username $HARBOR_USER --password $HARBOR_PASSWORD

In cases when you depend on third-party Helm Chart that are ChartMuseum based, you can transparently proxy those Charts as OCI artifacts using the Helm Chart OCI Proxy.