Skip to content

Helm charts release

We host all Helm charts on kuberay-helm. This document describes the process for release managers to release Helm charts.

The end-to-end workflow

Step 1: Update versions in Chart.yaml and values.yaml files

Please update the value of version in ray-cluster/Chart.yaml, kuberay-operator/Chart.yaml, and kuberay-apiserver/Chart.yaml to the new release version (e.g. 0.4.0).

Also make sure image.tag has been updated in kuberay-operator/values.yaml and kuberay-apiserver/values.yaml.

Step 2: Copy the helm-chart directory from kuberay to kuberay-helm

In kuberay-helm CI, helm/chart-releaser-action will create releases for all charts in the directory helm-chart and update index.yaml in the gh-pages branch when the PR is merged into main. Note that index.yaml is necessary when you run the command helm repo add. I recommend removing the helm-chart directory in the kuberay-helm repository and creating a new one by copying from the kuberay repository.

Step 3: Validate the charts

When the PR is merged into main, the releases and index.yaml will be generated. You can validate the charts as follows:

  • Confirm that the releases are created as expected.
  • Confirm that index.yaml exists.
  • Confirm that index.yaml has the metadata of all releases, including old versions.
  • Check the creation/update time of all releases and index.yaml to ensure they are updated.

  • Install charts from Helm repository.

    helm repo add kuberay https://ray-project.github.io/kuberay-helm/
    helm repo update
    
    # List all charts
    helm search repo kuberay
    
    # Install charts
    helm install kuberay-operator kuberay/kuberay-operator
    helm install kuberay-apiserver kuberay/kuberay-apiserver
    helm install ray-cluster kuberay/ray-cluster
    

Delete the existing releases

helm/chart-releaser-action does not encourage users to delete existing releases; thus, index.yaml will not be updated automatically after the deletion. If you really need to do that, please read this section carefully before you do that.

  • Delete the releases
  • Remove the related tags using the the following command. If tags are not properly removed, you may run into the problem described in ray-project/kuberay/#561.

    # git remote -v
    # upstream        git@github.com:ray-project/kuberay-helm.git (fetch)
    # upstream        git@github.com:ray-project/kuberay-helm.git (push)
    
    # The following command deletes the tag "ray-cluster-0.4.0".
    git push --delete upstream ray-cluster-0.4.0
    
    * Remove index.yaml * Trigger kuberay-helm CI again to create new releases and a new index.yaml. * Follow "Step 3: Validate the charts" to test it.