Thank you for your interest in contributing! This guide covers everything you need to get started.
- Helm 3+
- helm-unittest plugin — for running chart unit tests
- helm-values-schema-json plugin — for generating the schema
- Node.js (see
.node-version) — only needed for commit linting locally and pre commit hooks - mise — manages tool versions automatically
If you install mise first you can just run mise install and mise run setup-helm-plugins and everything will install for you 🙂.
- Fork & clone this repository.
- Create a feature branch from
main:git checkout -b feat/my-change
- Make your changes to templates, values, CRDs, etc.
- Lint the chart locally:
helm lint . - Run unit tests:
helm unittest . - Commit using Conventional Commits:
git commit -m "feat: add support for ingress resource" - Push and open a Pull Request against
main.
This project uses Conventional Commits enforced by commitlint. Every commit message must follow:
<type>(<optional scope>): <description>
Allowed types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert.
This project uses helm-unittest for unit testing Helm templates. Tests live in the tests/ directory with the suffix _test.yaml.
# Install the needed helm plugins (one-time)
mise run setup-helm-plugins
# Run all unit tests
helm unittest .
# Lint the chart
helm lint .
# Generate the schema
helm schema
# Render templates locally for inspection
helm template .- Place test files in
tests/with suffix_test.yaml - Each test file should specify the
templatesit covers undertemplates: - Use a fixed
releasename/namespace for deterministic assertions - See existing test files for examples and the helm-unittest docs for the full assertion API
Unit tests and chart linting run automatically on every push to main and on pull requests.
Releases are fully automated via semantic-release. When your PR is merged to main, a new version is published automatically if your commits contain releasable changes (feat = minor, fix = patch, BREAKING CHANGE = major).
Please be respectful and constructive. We follow the Contributor Covenant.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.