Awesome
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
- accounts-exporter - Exports ethereum wallet balances to Prometheus.
- akeyless-gadmin-producer - Deploys Akeyless Google Admin producer.
- akeyless-gcp-producer - Deploys Akeyless GCP custom producer
- akeyless-grafana-access-policy-producer - Helm Chart for Grafana Access Policy Producer
- akeyless-grafana-access-policy-rotated - Deploys Akeyless Grafana access policy rotator.
- akeyless-grafana-sa-producer - Deploys Akeyless Grafana Service Account producer.
- akeyless-okta-producer - Deploys Akeyless Okta custom producer.
- attestation-bot - Chart which is used to run attestations (celotool.js)
- blockscout - Helm chart for deploying the Blockscout-based Celo Explorer.
- cel2-migration-tool - Node migration tool for Cel2 network
- celo-fullnode - Helm chart for deploying a Celo fullnode. More info at https://docs.celo.org
- celo-fullnode-backups - Automate celo-blockchain chain backups using PVC snapshots
- celostats - Chart which is used to deploy a celostats setup for a celo testnet
- clean-pvcs - Delete PVCs not mounted for some time
- common - Helm chart with helper templates and functions for Celo nodes. Import into your chart with
dependencies
and use the templates and functions - daily-chain-backup - A Helm chart for deploying cron job to periodically run chain backups and upload to GCS
- eigenda-proxy - Helm chart deploying Layr-Labs eigenda-proxy
- image-annotator-webhook - Deploys a kubernetes webhook to mutate podSpecs to include container images as annotations
- k8s-digester - K8S Digester translates images tags to shas
- kong-celo-fullnode - Chart wrapper over celo-fullnode chart to adapt to Forno. It requires a Kong controller, kong ingressClass and kong crds installed in the cluster, and creates the Kong consumers, plugins and rate limits.
- konga - Chart which is used to run konga for Kong ingress
- llama-web3-proxy - Deploys llama-web3-proxy for aggregating blockchain RPC providers.
- load-test - Chart which is used to run load test for a Celo Network
- nethermind - .NET Core Ethereum client
- odis-combiner - Helm chart for deploying Celo ODIS signer in AKS
- odis-loadtest - Helm chart for deploying Celo ODIS load tests in GKE
- odis-signer - Helm chart for deploying Celo ODIS signer
- op-batcher - Celo implementation for op-batcher client (Optimism Rollup)
- op-bootnode - Celo implementation for op-bootnode (Optimism Rollup)
- op-conductor - Helm chart deploying OP Conductor, a HA controller for op-node
- op-conductor-mon - A Helm chart for OP Conductor monitoring
- op-conductor-start-tool - OP Conductor start tool Cel2 network
- op-dispute-mon - A Helm chart for Fault Proof Monitoring
- op-geth - Celo implementation for op-geth execution engine (Optimism Rollup)
- op-geth-bootnode - Celo implementation for op-geth-bootnode execution engine (Optimism Rollup)
- op-node - Celo implementation for op-node consensus engine (Optimism Rollup)
- op-proposer - Celo implementation for op-proposer client (Optimism Rollup)
- op-proxyd - Celo implementation for OP proxyd
- op-signer-service - A Helm chart for OP signer service
- op-tx-overload - Generate load on Optimism Bedrock using transactions with random calldata.
- op-ufm - A Helm chart for OP User Facing Monitoring
- optics-keymaster - Optics Keymaster
- prysm - Go implementation of Ethereum proof of stake.
- rosetta - Rosetta Client for Celo Networks
- safe-client-gateway - Helm chart for deploying Celo Safe Client Gateway
- safe-config-service - Helm chart for deploying Celo Safe Config Service
- safe-transaction-service - Helm chart for deploying Celo Safe Transaction Service
- socket-exporter - A Helm chart for socket-exporter
- team-trigger-workflow - A Helm chart to run team-trigger-workflow at cLabs
- testnet - Private Celo network Helm chart for Kubernetes
- ultragreen-dashboard - Celo Ultragreed Dashboard
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 inChart.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 thehelm_release
workflow: publish the new Helm release (version inChart.yaml
) in OCI format to Artifact Registry (projectdevops
, URLoci://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
, URLoci://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.