Contributing
May 14, 2026 ยท View on GitHub
Thank you for your interest in contributing to the Application Helm chart.
Prerequisites
You need the following tools installed:
| Tool | Version | Purpose |
|---|---|---|
| Helm | 4.x | Chart linting and rendering |
| helm-docs | 1.14.x | README generation |
| helm-schema | 0.23.x | Values schema generation |
| jq | 1.8.x | Values schema post-processing |
| helm-unittest | 1.1.x | Unit tests |
| prek | 0.3.x | Pre-commit hooks |
The recommended way to install everything is with Mise:
mise install
This installs all the tools above at the versions pinned in mise.toml.
Getting started
-
Fork and clone the repository.
-
Install dependencies:
mise install -
Set up pre-commit hooks:
mise run install-hooks
Local development workflow
| Task | Command |
|---|---|
| Lint the chart | mise run lint |
| Run tests | mise run test |
| Generate documentation and values schema | mise run gen |
| Generate documentation | mise run gen-docs |
| Generate values schema | mise run gen-schema |
README.md is generated from README.md.gotmpl by helm-docs. Do not edit README.md directly. Instead, edit the template and run mise run gen-docs, then commit both files.
application/values.schema.json is generated from application/values.yaml by helm-schema. Do not edit it directly. Instead, edit the values comments and run mise run gen-schema, then commit both files.
Snapshot files in application/tests/__snapshot__/ are generated by mise run test. Do not edit them directly. Instead, run mise run test -u to regenerate them, then commit the updated files.
New features must be covered by unit tests and enabled in application/ci/values.yaml (used by snapshot tests and Kind API validation) or application/ci/values-crds.yaml (used by snapshot tests).
Contribution process
- Create a feature branch from
main. - Make your changes and verify them locally (lint, test, build docs).
- Open a pull request against
main.
PR titles must follow the Conventional Commits format. This is enforced by CI.
What CI checks
When you open a pull request, the following checks run automatically:
- Helm lint
- Helm unit tests
- Template rendering (default values, base profile, CRD profile)
- Checkov security scan
- helm-docs freshness (README.md must match the template output)
- Kind API validation against Kubernetes v1.31, v1.33, and v1.35
Commit conventions
Use Conventional Commits with a mandatory scope:
type(scope): description
Common examples from this repository:
feat(chart): add support for Xfix(chart): correct Y behaviordocs(chart): update Z sectionchore(chart): clean up formatting
Breaking changes use the feat!: prefix.