Helm charts in the Package Registry

Introduced in GitLab 14.1.

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> \
         https://gitlab.example.com/api/v4/projects/1/packages/helm/api/stable/charts
    
  • 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
 
stages:
  - upload
 
upload:
  stage: upload
  script:
    - '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.