UNPKG

major-ai-skills

Version:

Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.

118 lines (95 loc) 3.77 kB
--- name: helm description: "Package Kubernetes applications as Helm charts, configure values and dependencies, and inspect release upgrades or rollbacks." category: devops risk: safe source: self source_type: self date_added: "2026-08-26" tags: ["helm", "charts", "kubernetes", "values", "templating", "claude"] tools: ["claude", "cursor", "gemini", "codex"] --- # Helm Chart Packaging AI Skill Guide ## Overview & Engine Architecture Helm packages Kubernetes manifests as **charts**: templates plus a `values.yaml` configuration surface. Releases track what was installed; upgrades render a new revision and apply the diff. Agents write maintainable templates, keep secrets out of committed values, and always render locally before touching a cluster. ``` Chart.yaml + values.yaml + templates/ | v helm template / lint | v helm upgrade --install -> Kubernetes API | v release history (rollback) ``` ## When to use this skill - Packaging repeated Kubernetes YAML into a chart - Promoting the same chart across dev/stage/prod with value files - Debugging failed hooks or bad template rendering - Vendoring chart dependencies ## Operational directives 1. Run `helm lint` and `helm template` before every install/upgrade. 2. Treat `values.yaml` as public defaults; inject secrets via `--set-file`, sealed secrets, or external secret stores. 3. Pin dependency chart versions in `Chart.yaml` / `Chart.lock`. 4. Prefer `upgrade --install` with an explicit `--namespace` and `--create-namespace` when intentional. 5. Keep templates readable: named helpers in `_helpers.tpl`, no copy-paste label blocks. ## Chart layout ```text mychart/ Chart.yaml values.yaml values.schema.json # optional but valuable templates/ _helpers.tpl deployment.yaml service.yaml ingress.yaml charts/ # vendored deps Chart.lock ``` `Chart.yaml` sketch: ```yaml apiVersion: v2 name: mychart description: Example API chart type: application version: 0.3.0 appVersion: "1.4.2" dependencies: - name: redis version: 19.0.0 repository: https://charts.bitnami.com/bitnami condition: redis.enabled ``` ## Command loop ```bash helm create mychart helm dependency update ./mychart helm lint ./mychart helm template mychart ./mychart -f values.prod.yaml > /tmp/render.yaml helm upgrade --install mychart ./mychart -n apps --create-namespace -f values.prod.yaml helm history mychart -n apps helm rollback mychart 2 -n apps ``` ## Common failure modes | Problem | Cause | Fix | | --- | --- | --- | | YAML parse error after render | Bad indentation in template | `helm template` and read line | | Hooks never complete | Job hook fails / wrong weight | `kubectl logs` on hook pods | | Values ignored | Wrong `-f` file or nested key typo | `helm get values` | | Subchart not present | Missing `dependency update` | `helm dependency build` | ## Best practices - Provide a `values.schema.json` for required keys when teams are large. - Document every non-obvious value in comments or a VALUES.md. - Use `lookup` sparingly - it makes charts cluster-dependent and harder to test. - Separate cluster-wide operators from app charts. ## Limitations - CRDs and operator installs often need special ordering beyond a single chart. - Helm is not a secret manager; do not encode production passwords in Git values. - Library charts and OCI registries add auth steps specific to the org. ## Related skills - `@kubernetes` - raw manifests and debugging - `@argocd` - GitOps delivery of Helm releases - `@docker` - images referenced by charts