Thank you for your interest in contributing to Wikodit Helm Charts!
Just two tools needed:
-
Clone the repository:
git clone git@github.com:wikodit/charts.git cd charts -
Test your changes:
# Lint all charts (includes yamllint, schema validation) docker run --rm -v $(pwd):/charts -w /charts quay.io/helmpack/chart-testing:latest ct lint --config ct.yaml # Test chart rendering helm template charts/<chart-name> --dry-run # Optional: Run unit tests (if you want to test deeper) docker run --rm -v $(pwd):/charts -w /charts helmunittest/helm-unittest:latest charts/<chart-name>
-
Create a new directory under
charts/:mkdir -p charts/<chart-name>/templates
-
Create the required files:
Chart.yaml- Chart metadatavalues.yaml- Default configuration valuesREADME.md.gotmpl- Chart documentation template (NOT README.md!)templates/- Kubernetes manifest templates
-
Follow the chart structure requirements
DO NOT EDIT README.md FILES DIRECTLY!
All chart README.md files are automatically generated from README.md.gotmpl templates:
- Edit
charts/<chart>/README.md.gotmplinstead ofREADME.md - The
docs.yamlworkflow automatically generates README.md from the template - Any manual edits to README.md will be overwritten on the next push
To update documentation:
- Modify the appropriate
.gotmplfile - Run
helm-docslocally to preview:helm-docs --chart-search-root=charts - Commit both the template changes and generated README.md
When editing README.md.gotmpl:
- Use Helm template functions:
{{ template "chart.version" . }} - Include installation examples with OCI registry
- Add configuration tables with default values
- The template will be processed with chart metadata automatically
Each chart must include:
charts/<chart-name>/
├── Chart.yaml # Required: Chart metadata
├── values.yaml # Required: Default values
├── README.md # Generated: Documentation (DO NOT EDIT)
├── README.md.gotmpl # Required: Documentation template
├── templates/ # Required: Template files
│ ├── _helpers.tpl # Template helpers
│ ├── NOTES.txt # Post-install notes
│ └── ...
├── tests/ # Recommended: Unit tests
│ └── *_test.yaml
└── ci/ # Optional: CI test values
└── *-values.yaml
apiVersion: v2
name: <chart-name>
description: Brief description
type: application
version: 0.1.0 # Chart version (SemVer)
appVersion: "1.0.0" # Application version
home: https://github.com/wikodit/charts
sources:
- https://github.com/wikodit/charts
maintainers:
- name: Wikodit
url: https://github.com/wikodit
- name: Anthony Domingue
email: anthony@wikodit.fr
- name: Jeremy Trufier
email: jeremy@wikodit.fr
keywords:
- wikodit
- <chart-specific-keywords>
annotations:
artifacthub.io/license: MITWe follow Semantic Versioning with automatic version bumping:
- MAJOR (
x.0.0): Breaking changes - useBREAKING CHANGE:in commit or!after type (e.g.,feat!:) - MINOR (
0.x.0): New features - usefeat:commit prefix - PATCH (
0.0.x): Bug fixes - usefix:,chore:,docs:,perf:, etc.
Important: Do NOT manually edit the version in Chart.yaml. Versions are automatically bumped by the CI/CD pipeline based on conventional commit messages when changes are merged to main.
Use Conventional Commits:
feat: add new feature # -> minor bump
fix: resolve bug # -> patch bump
docs: update readme # -> patch bump
feat!: breaking change # -> major bump
BREAKING CHANGE: description # -> major bump
- Fork the repository and create a feature branch
- Make changes following the guidelines above
- Test locally:
# Lint the chart helm lint charts/<chart-name> # Run unit tests helm unittest charts/<chart-name> # Template validation helm template charts/<chart-name>
- Commit with clear, descriptive messages
- Open a PR with:
- Description of changes
- Testing performed
- Breaking changes (if any)
- Chart must pass
helm lint - Chart must render without errors via
helm template
- Unit tests using helm-unittest
- Integration tests with chart-testing
Important: The repository has automated safeguards for documentation:
- Pre-commit hooks: Run
helm-docsautomatically to ensure README.md matches templates - CI/CD workflow: The
docs.yamlworkflow will overwrite any manual README.md changes - PR comments: If documentation is out of date, the CI will add a warning comment to the PR
Rule: Always edit README.md.gotmpl, never README.md directly!
# Lint all charts
docker run --rm -v $(pwd):/charts -w /charts quay.io/helmpack/chart-testing:latest ct lint --config ct.yaml
# Test chart rendering
helm template charts/<chart-name> --dry-run- Use 2-space indentation in YAML files
- Follow Helm best practices
- Document all values in
values.yamlwith comments - Keep templates readable and well-organized
Open an issue for any questions or concerns.