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 can be found in the official documentation. Nexus Repository functions with both Helm2 and Helm3.
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.
Legacy High-Availability Clustering (HA-C) does not support Helm format.
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:
- Define Name, e.g.
- Define URL for Remote storage (e.g.,
- Select a Blob store for Storage
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.,
- Select Blob store for Storage
Uploading Charts to Helm Hosted Repositories
Upload with Nexus Repository 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
Upload with Helm Push Plugin
To upload a chart to a Helm hosted repository using the Helm Push plugin, you must provide authentication credentials (e.g.,
--username=<username> --password=<password>) and specify a
context-path parameter specifying the path to the hosted repository (e.g.,
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 can be seen on the Helm website.
Using Helm Client
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, Nexus Repository has a Helm proxy repository called
helm-proxy and your Nexus Repository 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. To accomplish this, you would do the following:
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
More information about configuring Helm can be seen on the Helm website.