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:

ToolVersionPurpose
Helm4.xChart linting and rendering
helm-docs1.14.xREADME generation
helm-schema0.23.xValues schema generation
jq1.8.xValues schema post-processing
helm-unittest1.1.xUnit tests
prek0.3.xPre-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

  1. Fork and clone the repository.

  2. Install dependencies:

    mise install
    
  3. Set up pre-commit hooks:

    mise run install-hooks
    

Local development workflow

TaskCommand
Lint the chartmise run lint
Run testsmise run test
Generate documentation and values schemamise run gen
Generate documentationmise run gen-docs
Generate values schemamise 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

  1. Create a feature branch from main.
  2. Make your changes and verify them locally (lint, test, build docs).
  3. 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 X
  • fix(chart): correct Y behavior
  • docs(chart): update Z section
  • chore(chart): clean up formatting

Breaking changes use the feat!: prefix.