This repo contains a basic helm chart for deploying the Openlane stack, as well as some other misc. items we use to manage our environment such as cert-manager, external-dns, and other general Kubernetes ecosystem components. If you're wanting purely the Openlane stack, that will be inside of charts/openlane and it's major direct dependency, OpenFGA which we have a wrapper for to the upstream FGA chart inside of charts/openfga.
WARNING: Use these charts with caution and review the files beforehand! Because we have not yet invested a lot of time into parameterization of the charts
values.yaml, many of the configuration options present do not directly control the deployment behavior, and many of the yaml files in the `templates directory are "flat" / contain hard-cded values.
Additionally, the chart has not yet been fully genericized to include things like a PostgreSQL or Redis deployment alongside the Openlane containers. We leverage our cloud provider for these services, so you could include them by simply importing the openlane chart and then adding postgresql, redis, or any other additional components you'd like to create alongside Openlane until we've had an opportunity to add and test those configurations.
If it's helpful from a compatibility perspetive, we use GCP CloudSQL and GCP Memorystore and can confirm those work with our core server deployment and OpenFGA.
The repository includes a custom shell script (openlane-chart.sh) to scaffold new charts. This tool automates the process of:
- Creating a new Helm chart
- Removing default templates
- Updating
Chart.yamlwith dependency details (including optional alias support) - Rendering default values and external templates
- Building Helm dependencies
- Generating documentation with helm-docs
Example usage:
./scripts/openlane-chart.sh create
--name my-new-chart
--dependency-url https://charts.example.com
--dependency-chart-name example-chart
--dependency-chart-version 1.2.3
--dependency-alias exchartWe use Chart Testing to ensure our charts follow best practices. To lint a chart, run either:
task lint
or
docker run --rm -it -w /charts -v $(pwd)/../:/charts quay.io/helmpack/chart-testing:v3.12.0 ct lint --charts /charts/charts/<chart-name> --config /charts/charts/<chart-name>/ct.yamlDocumentation is automatically generated from chart annotations using helm-docs. To manually generate documentation:
task docs