skills/helm-generation/SKILL.md
Use when creating Helm values.yaml files, converting docker-compose to Helm, or reviewing Helm configurations. Produces minimal-diff values that only override chart defaults. Triggers on 'helm values', 'create values.yaml', 'deploy to kubernetes'.
npx skillsauth add dtsong/my-claude-setup helm-generationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate Helm values files that only override necessary defaults.
name/namespace are CLI args, not valuesBefore generating values, understand the chart:
# Get chart info
helm show values <chart> [--version <version>]
# Or for OCI charts
helm show values oci://registry/chart
# Check chart README for constraints
helm show readme <chart>
Gather:
[ ] Default values identified
[ ] Required values (no defaults) identified
[ ] Value constraints documented (enums, ranges)
[ ] Chart version pinned
Structure:
# values.yaml
# Only override what differs from defaults
# Example: Overriding replica count (default: 1)
replicaCount: 3
# Example: Overriding image (default: nginx:latest)
image:
repository: myregistry/myapp
tag: "1.2.3" # Quotes for version strings
# Example: Boolean (NOT "true" string)
autoscaling:
enabled: true
What to EXCLUDE:
name: or namespace: (use helm install <name> -n <ns>)| YAML Type | Example | Common Mistake |
|-----------|---------|----------------|
| Boolean | enabled: true | enabled: "true" |
| Integer | replicas: 3 | replicas: "3" |
| String version | tag: "1.2.3" | tag: 1.2.3 (parsed as float) |
| Null | value: null | value: "" |
| List | - item | Forgetting - |
# Lint values
helm lint <chart> -f values.yaml
# Template to verify
helm template <release> <chart> -f values.yaml
# Dry-run install
helm install <release> <chart> -f values.yaml --dry-run
Ingress:
ingress:
enabled: true
className: nginx
hosts:
- host: app.example.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: app-tls
hosts:
- app.example.com
Resources:
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
Service Account (with IRSA/Workload Identity):
serviceAccount:
create: true
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT:role/ROLE
tag: 1.2.3 without quotes is parsed as a float (1.2) then truncated — always quote version strings: tag: "1.2.3"enabled: "true" is a string, not a boolean — Helm templates checking if .Values.enabled will always be true (non-empty string)name: or namespace: in values.yaml has no effect — these are CLI args: helm install <name> -n <ns>helm upgrade without --install fails if the release doesn't exist — use helm upgrade --install for idempotent deploymentsoci://) require helm registry login first — authentication errors are crypticname: or namespace: in values"true" instead of trueWhen generating values, output:
User: "Generate Helm values for nginx-ingress"
Response:
# values.yaml for ingress-nginx
# Chart: ingress-nginx/ingress-nginx v4.10.0
# Only non-default values shown
controller:
replicaCount: 2
resources:
requests:
cpu: 100m
memory: 90Mi
limits:
cpu: 500m
memory: 256Mi
service:
type: LoadBalancer
# Install command
helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--create-namespace \
-f values.yaml
# Verify
helm template ingress-nginx ingress-nginx/ingress-nginx -f values.yaml | kubectl apply --dry-run=client -f -
development
Use when the council needs to surface organizational knowledge buried across multiple internal sources (wikis, design docs, ADRs, past tickets, postmortems, chat archives, code repos). Plans where to look, what to cross-reference, and how to synthesize findings into evidence the council can act on. Do not use for external market research (use competitive-analysis), library evaluation (use library-evaluation), or technology trend assessment (use technology-radar).
testing
Use to convert a Word .docx file to PDF and/or verify its page count. Triggers on: converting docx to pdf, rendering a document, checking how many pages a docx produces, or asserting a page-count constraint (e.g. a resume must stay 2 pages). Wraps LibreOffice headless conversion.
development
Security audit checklist for web applications. Use when reviewing, auditing, or hardening a web app's security posture. Covers rate limiting, auth headers, IP blocking, CORS, security middleware, input validation, file upload limits, ORM usage, and password hashing. Triggers on requests like "review security", "harden this app", "security audit", "check for vulnerabilities", or when building/reviewing API endpoints.
development
Interactive wizard to craft effective prompts using Claude Code best practices