helm-chart-builder
Installation
SKILL.md
Helm Chart Builder
Category: Engineering Domain: Kubernetes & Helm
Overview
The Helm Chart Builder skill provides automated analysis of Helm charts including structure validation, values checking, template inspection, and dependency review. It helps teams maintain high-quality charts with correct configurations, proper security contexts, and complete documentation.
Quick Start
# Analyze chart structure and quality
python scripts/chart_analyzer.py --path ./charts/my-app
# Validate values.yaml against chart requirements
python scripts/values_validator.py --chart ./charts/my-app --values values-prod.yaml
# JSON output for CI
python scripts/chart_analyzer.py --path ./charts/my-app --format json
# Validate multiple values files
python scripts/values_validator.py --chart ./charts/my-app --values values-dev.yaml values-prod.yaml
Tools Overview
chart_analyzer.py
Analyzes Helm chart structure, metadata, templates, and dependencies.
| Feature | Description |
|---|---|
| Structure validation | Checks required files exist (Chart.yaml, values.yaml, templates/) |
| Metadata check | Validates Chart.yaml fields, version format, appVersion |
| Template review | Inspects templates for common patterns and issues |
| Dependency analysis | Reviews subchart dependencies and version constraints |
| Documentation check | Verifies NOTES.txt and README presence |
values_validator.py
Validates values files against chart expectations and Kubernetes best practices.
| Feature | Description |
|---|---|
| Resource limits | Checks for CPU/memory requests and limits |
| Security context | Validates runAsNonRoot, readOnlyRootFilesystem |
| Replica count | Checks for production-appropriate replica counts |
| Image tags | Flags use of latest or missing image tags |
| Ingress config | Validates ingress annotations and TLS settings |
Workflows
Chart Review Workflow
- Analyze structure - Run chart_analyzer.py to check chart organization
- Validate defaults - Run values_validator.py against default values.yaml
- Check environments - Validate each environment's values file
- Review findings - Address critical issues first, then warnings
- Re-check - Confirm fixes pass validation
Pre-Release Workflow
- Bump version - Update Chart.yaml version and appVersion
- Lint chart - Run chart_analyzer.py in strict mode
- Validate all values - Check every environment's values file
- Check dependencies - Ensure subchart versions are pinned
- Package - Chart is ready for helm package
CI Integration
# Structure check
python scripts/chart_analyzer.py --path ./charts/my-app --format json --strict
# Values validation for all environments
for env in dev staging production; do
python scripts/values_validator.py \
--chart ./charts/my-app \
--values "values-${env}.yaml"
done
Reference Documentation
- Helm Best Practices - Chart structure, templates, security, dependencies
Common Patterns Quick Reference
Required Chart Structure
my-chart/
Chart.yaml # Required: chart metadata
values.yaml # Required: default values
templates/ # Required: template directory
deployment.yaml
service.yaml
_helpers.tpl # Recommended: template helpers
NOTES.txt # Recommended: post-install notes
charts/ # Optional: subchart dependencies
Values Best Practices
| Setting | Requirement | Why |
|---|---|---|
| resources.limits | Required | Prevents resource exhaustion |
| resources.requests | Required | Enables proper scheduling |
| securityContext.runAsNonRoot | Required | Security baseline |
| image.tag | Required (not latest) | Reproducible deployments |
| replicaCount >= 2 | Recommended for prod | High availability |
| ingress.tls | Recommended | Encrypted traffic |
Chart.yaml Required Fields
| Field | Description |
|---|---|
| apiVersion | v2 for Helm 3 |
| name | Chart name (lowercase) |
| version | SemVer chart version |
| appVersion | Application version |
| description | Brief chart description |
Common Issues
| Issue | Severity | Fix |
|---|---|---|
| Missing Chart.yaml | Critical | Add required chart metadata |
| No resource limits | Warning | Set CPU/memory limits |
| Latest image tag | Warning | Pin specific version |
| No security context | Warning | Add runAsNonRoot: true |
| Missing NOTES.txt | Info | Add post-install notes |
| Unpinned dependencies | Warning | Pin subchart versions |