Helm charts in the Package Registry

Introduced in GitLab 14.1.

cautionThe Helm package registry for GitLab is under development and isn’t ready for production use due to limited functionality.

Publish Helm packages in your project’s Package Registry. Then install the packages whenever you need to use them as a dependency.

For documentation of the specific API endpoints that Helm package manager clients use, see the Helm API documentation.

Build a Helm package

Creating a Helm package is documented in the Helm documentation.

Authenticate to the Helm repository

To authenticate to the Helm repository, you need either:

Publish a package

Once built, a chart can be uploaded to the stable channel with curl or helm-push:

  • With curl:

    curl --request POST \
         --form 'chart=@mychart-0.1.0.tgz' \
         --user <username>:<personal_access_token> \
  • With the helm-push plugin:

    helm repo add --username <username> --password <personal_access_token> project-1 https://gitlab.example.com/api/v4/projects/1/packages/helm/stable
    helm push mychart-0.1.0.tgz project-1

Use CI/CD to publish a Helm package

To publish a Helm package automated through GitLab CI/CD, you can use CI_JOB_TOKEN in place of the personal access token in your commands.

For example:

image: curlimages/curl:latest
  - upload
  stage: upload
    - 'curl --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@mychart-0.1.0.tgz" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/stable/charts"'

Install a package

To install the latest version of a chart, use the following command:

helm repo add --username <username> --password <personal_access_token> project-1 https://gitlab.example.com/api/v4/projects/1/packages/helm/stable
helm install my-release project-1/mychart

If the repo has previously been added, you may need to run:

helm repo update

To update the Helm client with the most currently available charts.

See Using Helm for more information.