Skip to content

Latest commit

 

History

History
84 lines (72 loc) · 8.52 KB

README.md

File metadata and controls

84 lines (72 loc) · 8.52 KB

charts

This is a collection of Helm charts for Kubernetes. The charts are used by cLabs to deploy and manage our infrastructure, and can be used by anyone else to manage their own infrastructure, specifically for Celo Network related resources.

The charts are published to the OCI registry at oci://us-west1-docker.pkg.dev/devopsre/clabs-public-oci. OCI registries are a new standard for container registries, and are supported by Helm 3+, and enabled by default in Helm 3.8.0+.

List of charts

Helm charts best practices

A list of best practices when writing Helm charts can be found in the docs/ folder.

CI

This repo uses GitHub Actions to automatically perform the following:

  • On Pull Request using the helm_test.yaml workflow: check that chart version is bumped in Chart.yaml, lint, template, install/delete and test the modified charts in a Kind cluster. If the previous checks are OK, it will autogenerate a README for the chart using helm-docs.
  • On push to main using the helm_release workflow: publish the new Helm release (version in Chart.yaml) in OCI format to Artifact Registry (project devops, URL oci://us-west1-docker.pkg.dev/devopsre/clabs-public-oci).

Technologies

  • For checking the Chart.yaml version, linting, installing/deleting and testing a chart the chart-testing Action is used (based on the helm/chart-testing CLI tool).
  • For spinning a Kind cluster the Kind Action is used (based on kind tool).
  • For autogenerating the chart README, a custom workflow based on helm-docs is used.
  • For publishing a new chart release to Artifact Registry (project devops, URL oci://us-west1-docker.pkg.dev/devopsre/clabs-public-oci), a custom workflow is used.

Installing a chart with custom values

The chart-testing Action allows testing the installation/deletion of a chart using a custom values.yaml file. In order to do that, the action allows for a chart to have multiple custom values files matching the glob pattern *-values.yaml in a directory named ci in the root of the chart's directory. The chart is installed and tested for each of these files.

If no custom values file is present, the chart is installed and tested with defaults.