Helm charts should auto-build and publish using the GitHub Actions workflow defined in .github/workflows/cd-charts.yml.
Firstly, make sure you have Helm and Chart Releaser installed on the machine.
The helm chart repository is available from here, which is hosted using
gh-pages branch of the charts repository.
It is always a good habit to lint the charts. The helm lint command runs a series of tests
to verify that the chart is well-formed:
helm lint charts/dgraph
helm lint charts/dgraph-lambdaThe helm package command packages a chart into a versioned chart archive file.
## remove existing packages
rm -rf .cr-release-packages/*
## for publishing dgraph
helm package charts/dgraph --destination .cr-release-packages/
## for publishing dgraph-lambda chart
helm package charts/dgraph-lambda --destination .cr-release-packages/Set the environment variables to their appropriate values, as shown below:
export CR_OWNER="dgraph-io"
export CR_GIT_REPO="charts"
export CR_PACKAGE_PATH="/path/to/.cr-release-packages"
export CR_TOKEN="<your-github-token>"The cr upload command uploads the package as an asset to a new GitHub release.
If you have above configurations are correct, and the owner account has access to create
releases, the command below should exit without any error:
cr uploadAn optional --config can used instead of environment variables.
## File: ~/.config/chart-releaser/config.yaml
owner: dgraph-io
git-repo: charts
package-path: /path/to/.cr-release-packages
token: <your-github-token>
## index config specific
index-path: index.yaml
charts-repo: https://charts.dgraph.io/Before we create the index file, we will check out to the gh-pages branch and pull the latest
changes from the remote GitHub repository to verify the creation of a new tag.
git checkout gh-pages
git pullGenerally, we would use the helm repo index command which reads the current directory and generates
an index file based on the charts found and creates an index.yaml file for the chart repository.
Here, we use cr index which would the equivalent task with Chart Releaser but would use the link
of GitHub release asset instead of of the current directory.
Before using cr index, we will need to set the environment variables to their appropriate values as shown below. This can be skipped if configuration with --config is used instead.
export CR_OWNER="dgraph-io"
export CR_GIT_REPO="charts"
export CR_CHARTS_REPO="https://charts.dgraph.io/"
export CR_INDEX_PATH="index.yaml"
export CR_PACKAGE_PATH=".cr-release-packages"cr indexVerify that index.yaml file is created:
$ cat index.yamlTo publish the chart, commit and push the latest changes of index file to gh-pages branch.
git add index.yaml
## cample commit strings:
## dgraph-lambda-0.0.1 index.yaml update
## dgraph-0.0.13 index.yaml update
git commit -m "chart-version index.yaml update"
git push origin gh-pagesIn the end, be sure to delete the .cr-release-packages folder.
rm -rf .cr-release-packages