This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a collection of Kubernetes Helm charts maintained by christianhuth. Charts are published to https://charts.christianhuth.de and indexed on Artifact Hub.
# Run pre-commit hooks (includes helm-docs, helm-schema, markdownlint, changelog generation)
pre-commit run --all-files
# Lint a specific chart with chart-testing
ct lint --config .github/config/chart-testing.yaml --charts charts/<chart-name>
# Run helm lint on a chart
helm dependency update charts/<chart-name>
helm lint charts/<chart-name>
# Validate chart manifests against Kubernetes schemas
helm plugin install https://github.com/jtyr/kubeconform-helm # if not installed
helm dependency update charts/<chart-name>
helm kubeconform --config .github/config/chart-kubeconform.yaml charts/<chart-name># Install helm-unittest plugin (if not installed)
helm plugin install https://github.com/helm-unittest/helm-unittest.git
# Run unit tests for a chart
helm dependency update charts/<chart-name>
helm unittest charts/<chart-name># Test chart installation in a kind cluster
ct install --config .github/config/chart-testing.yaml --charts charts/<chart-name># Set up minikube cluster
minikube start --addons=ingress --cpus=4 --memory=8g --profile=helm-charts-development
minikube profile helm-charts-development
# Install a chart for testing (use values-dev.yaml if available)
helm dependency update charts/<chart-name>
helm install <release-name> charts/<chart-name> -f charts/<chart-name>/values-dev.yamlEach chart in charts/ follows this structure:
Chart.yaml- Chart metadata, dependencies, and artifacthub.io annotations including change logvalues.yaml- Default configuration valuesvalues.schema.json- Auto-generated JSON schema (via helm-schema pre-commit hook)README.md- Auto-generated documentation (via helm-docs pre-commit hook)README.md.gotmpl- Template for README generationtemplates/- Kubernetes manifest templatestemplates/_helpers.tpl- Template helper functionsvalues-dev.yaml- (optional) Values for local development/testing
- Edit the chart files as needed
- Bump the version in
Chart.yamlfollowing semver - Update the
artifacthub.io/changesannotation inChart.yamlwith change entries:artifacthub.io/changes: | - kind: added|changed|fixed|security|deprecated|removed description: Description of change
- Run
pre-commit run --all-filesto regenerate README.md, values.schema.json, and CHANGELOG.md - Commit changes - CI pipeline will run linting, kubeconform validation, unit tests, and installation tests
The chart pipeline (.github/workflows/chart-pipeline.yml) runs on changes to charts/:
- Preparation - Detect changed charts
- Linting - artifacthub lint, chart-testing lint, helm lint
- Kubeconform - Validate rendered manifests against Kubernetes schemas
- Unit Testing - Run helm-unittest tests
- Testing - Install charts in kind cluster
- Releasing - (main branch only) Package and release charts
Charts commonly use Bitnami subcharts for databases:
- PostgreSQL:
oci://registry-1.docker.io/bitnamicharts/postgresql - MySQL:
oci://registry-1.docker.io/bitnamicharts/mysql
External chart repos configured for chart-testing:
- bitnami: https://charts.bitnami.com/bitnami
- cnieg: https://cnieg.github.io/helm-charts
- christianhuth: https://charts.christianhuth.de