- Helm charts live in
charts/:unleash,unleash-proxy, andunleash-edge. Each chart containsChart.yaml,values.yaml,templates/,templates/tests/, andexamples/for sample overrides. - Chart-specific CI values are under
charts/<chart>/ci/*.yaml; CRDs for the main chart sit incharts/unleash/crds/. - Generated schema test outputs land in
results/when running kubeconform locally or in CI.
- Lint a chart with Helm:
helm lint charts/unleash(adjust chart path as needed). - Chart Testing (used in CI):
ct lint --config .github/ct.yamlandct install --config .github/ct.yaml(requires kind and Helm; installs changed charts listed byct list-changed). - Render manifests for quick inspection:
helm template charts/unleash -f charts/unleash/ci/unleash-values.yaml. - Schema validation (mirrors CI):
.github/kubeconform.shwithKUBERNETES_VERSIONset; ensures Bitnami repo is added for dependencies. - Super-linter locally (needs Docker):
docker run --rm -e RUN_LOCAL=true --env-file ".github/super-linter.env" -v "$(pwd)":/tmp/lint ghcr.io/super-linter/super-linter:latest. - Dry-run install for smoke checks:
helm install --debug --dry-run --generate-name charts/unleash.
- YAML uses two-space indentation; prefer lowercase, hyphen-separated keys and filenames.
- Keep Helm templates minimal and reuse existing helper templates where possible; document new values in
values.yamland the chartREADME.md. - Bump chart
version(andappVersionif applicable) inChart.yamlwith chart changes; updateChart.lockwhen dependency versions change.
- Add or adjust
templates/tests/if behavior changes require Helm tests; keep CI values in sync soct installpasses. - Run
ct lintbefore opening a PR; usehelm templateplus.github/kubeconform.shfor schema confidence against supported Kubernetes versions. - If adding new values, provide a minimal example under
examples/and ensure defaults keep templates rendering successfully without overrides.
- Use clear, imperative commit subjects (short scope tags like
chore(lint): …are common but not required). - Each chart change should include a version bump, updated docs, and mention of validation commands run.
- PRs should describe the change, reference related issues, and note any kubeconform/ct results or screenshots of rendered resources when relevant.
- Keep Markdown readable: leave a blank line after every heading/section and avoid trailing spaces on any line.
- Run
shfmt -w <file>after modifying shell scripts (e.g.,.github/kubeconform.sh,charts/unleash/extract-cnpg-crds.sh) to keep formatting consistent.