Helm Repositories

Available in Nexus Repository OSS and Nexus Repository Pro


NEW IN 3.21

Introduction

Helm is the first application package manager running atop Kubernetes(k8s). It allows describing the application structure through convenient helm-charts and managing it with simple commands. More information about helm you can find in the official documentation.

You can publish your own charts and provenance files to a private repository in a hosted Helm repository.  You can also use a proxy Helm repository reducing time and bandwidth usage for accessing Helm charts as well as more easily share your charts within your organization.

This format is disabled by default in NXRM Pro HA-C environments.

Proxying Helm Repositories

You can set up a Helm proxy repository to access a remote repository location.

To proxy, a Helm repository create a new helm  (proxy) as shown in the documented example in  Repository Management in detail. Minimal configuration steps for the Helm proxy are:

Hosting Helm Repositories

Creating a Helm hosted repository allows you to register charts in the repository manager. The hosted repository acts as an authoritative location for these components.

To add a hosted helm repository, create a new repository with the recipe helm  (hosted) as shown in the documented example in  Repository Management. Minimal configuration steps for Helm hosted are:

  • Define Name, e.g. hosted-hosted
  • Select Blob store for Storage

Uploading Charts to Helm Hosted Repositories

Upload with Nexus Repository Manager UI

Upload in the UI, as documented here, to upload charts to helm hosted repository e.g. for all OS, just upload the chart (extension .tgz).

Upload by HTTP POST

The following example uses the curl command to upload mysql-1.4.0.tgz file to a hosted Helm repository (fill in <> with your respective data):

curl -u <username>:<password> http://<host>:<port>/repository/<repository_name>/ --upload-file mysql-1.4.0.tgz -v

Uploading Provenance Files to Helm Hosted Repositories

Uploading provenance files with extension .prov.tgz to a hosted repository is the same as uploading a chart. The provenance file will be at the same tree structure level as the chart.

More information about provenance files you can get from the official documentation here.

Configuring Helm Client

More information you be gotten from the official documentation here.

Once you have Helm up and running you'll want to run a command similar to the following to add a Helm repo:

helm repo add <helm_repository_name> http://<host>:<port>/repository/<nexus_repository_name>/ --username <username> --password <password>

The below command will fetch the latest chart or with the version:

1. helm fetch <helm_repository_name>/<chart_name>
2. helm fetch <helm_repository_name>/<chart_name> --version <chart_version>


For example, NXRM has Helm proxy repository called helm-proxy and your NXRM is running on localhost:8081 where username is admin and password is admin. You would like to add this repository to Helm client. Also, you would like to fetch the latest MySQL chart.

1. helm repo add nexusrepo http://localhost:8081/repository/helm-proxy/ --username admin --password admin
2. helm fetch nexusrepo/mysql

If you want to fetch a chart with a specific version, just run it, like so:

helm fetch nexusrepo/mysql --version 1.4.0