Thank you for your interest in contributing to clair-helm.
- Report bugs via GitHub Issues
- Suggest features via GitHub Issues
- Submit pull requests for fixes and improvements
- Helm v3.10+
- kubectl configured against a cluster, or a local cluster via kind / minikube
- chart-testing (ct) for full lint runs (optional)
kind create cluster --name clair-dev# Lint with default values
helm lint .
# Lint with strict schema validation
helm lint . --strict
# Render templates without installing
helm template clair . --values ci/default-values.yaml
helm template clair . --values ci/operator-values.yaml# Create namespace
kubectl create namespace clair
# Install with default values (deployment mode)
helm install clair . -n clair --values ci/default-values.yaml
# Watch pods come up
kubectl get pods -n clair -w
# Uninstall
helm uninstall clair -n clair-
Fork the repository and create a branch from
main:git checkout -b fix/my-fix
-
Make your changes. Keep the following in mind:
- Update
values.yamldefaults for any new configuration you add - Update
values.schema.jsonto validate new values - Update
README.mdif you add or change user-facing options - Add an entry to
CHANGELOG.mdunder[Unreleased] - Run
helm lint . --strictbefore pushing
- Update
-
Open a pull request against
main. The PR template will guide you through the checklist.
This project follows Semantic Versioning:
patch(0.1.x) — bug fixes, dependency bumps, no API changesminor(0.x.0) — new backwards-compatible features or valuesmajor(x.0.0) — breaking changes to the chart API or default behavior
The chart version in Chart.yaml and appVersion (the default Clair image tag) are bumped separately.
- Helm templates: 2-space indentation,
nindentfor multi-line blocks - Template helpers go in
templates/_helpers.tpl - Guard every resource with a
{{- if ... }}so unused components produce no output - No plaintext secrets in
ConfigMap— credentials always go inSecret
See SECURITY.md. Do not open public issues for vulnerabilities.