Helm Charts

For deployment on Kubernetes OpenG2P provides Helm charts for all its components. Instructions to install a module/component using Helm are provided in the respective deployment guides.

Source code

Charts may be found here:

Published repository

All charts are published to this public website: https://openg2p.github.io/openg2p-helm. This website is automatically created by Github with contents on gh-pages branch of openg2p-helm repository. Charts are automatically published via Github action given here.

Charts may be published manually with the procedure given below:

  1. Create Helm packaged zip files by executing the following command in the folder that contains your charts source code.

helm package charts/<chart name>
  1. You will see packaged .tgz files created in the current directory.

  2. Clone https://github.com/OpenG2P/openg2p-helm repo and switch to gh-pages branch. Copy the above .tgz files to root folder of the repo (where you will see several .tgz files).

  3. Make sure you have direct check-in permissions to the openg2p-helm repo.

  4. Run

./publish.sh

Publish Helm charts as Rancher apps

To have your charts available in Rancher Apps and be able to install from Rancher UI follow guide given here. See example of Helm chart configured for Rancher.

Automatic publishing

To have your chart published automatically to be available in Rancher, add the following annotation to Chart.yaml in your helm chart.

annotations:
  openg2p.org/add-to-rancher: ""

Manual publishing

To publish a chart on Rancher Apps in step 3 above, copy the chart zip to /rancher folder of the repo. Run ./index.sh.This will generate and index.yaml file in the folder. This file will be read by Rancher to display in the catalogue (refer Installation using Rancher UI on how to add this repository).

If in annotations for the chart fixed name and namespace of the Helm chart is specified, then only one instance of the application will be installed and further attempts to install will only update the application. Example, Monitoring app on Rancher.

Helm chart versions

The Helm chart version is mentioned under the version attribute in the Chart.yaml file (see example). For version numbers, we adhere to Semantic Versioning 2.0 with "Simple 1-1 versioning". Here, the chart version is kept the same as the Docker version (also referred as appVersion in Chart.yml.).

Chart StateChart versionDocker version (appVersion)

Release/Prerelease

Matches Docker version

Matches Chart version

Development

0.0.0-develop

develop

Since chart version matches appVersion it is recommended that the appVersion attribute is removed from Chart.yaml as it is redundant.

Helm chart size limitation

Helm chart size limitation

Due to 1 MB limit of Kubernetes ETCD secrets, we have split a large chart into parts. This split is purely to address this limitation. See some discussions here on this topic:

https://github.com/helm/helm/issues/11493

https://azure.github.io/azure-service-operator/design/adr-2023-02-helm-chart-size-limitations/

Last updated

Logo

Copyright © 2024 OpenG2P. This work is licensed under Creative Commons Attribution International LicenseCC-BY-4.0 unless otherwise noted.