К основному содержанию
скилл CX Codex

helm-generator — скилл для Claude Code: генерация Helm-чартов

Создаёт структуру Helm-чарта, helpers и шаблоны ресурсов по вашему описанию. Пригодится, когда нужно быстро развернуть чарт с Deployment, Service и Ingress.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add akin-ozer/cc-devops-skills --skill helm-generator -a claude-code
Открыть на GitHub

Что делает helm-generator

Скилл проводит агента по семи этапам: сбор требований, поиск документации по CRD, генерация структуры чарта, стандартные helpers, шаблоны ресурсов, values.yaml и проверка. На этапе требований агент спрашивает про образ контейнера, порты, ресурсы, пробы, автомасштабирование и хранилище — молча ничего не подставляет.

Структуру создаёт скрипт scripts/generate_chart_structure.sh с флагами --image, --port, --target-port, --type, --with-templates, --with-ingress, --with-hpa. Образ разбирается по-разному: nginx:1.27 даёт репозиторий и тег, registry.local:5000/team/app сохраняет репозиторий целиком, а digest-ссылка отключает добавление тега. Флаг --tag с digest-образом несовместим. Если скрипт перезаписывает существующий чарт или templates/_helpers.tpl, он сначала спрашивает подтверждение, а --force убирает вопрос.

Helpers генерирует второй скрипт — scripts/generate_standard_helpers.sh, он создаёт name, fullname, chart, labels, selectorLabels, serviceAccountName. Если запуск скриптов заблокирован, можно взять assets/_helpers-template.tpl и заменить CHARTNAME на имя чарта. Для CRD скилл сначала идёт в Context7, а если тот недоступен — к документации оператора. Проверку готового чарта лучше отдать скиллу helm-validator.

Какие задачи решает

  • собрать новый Helm-чарт с нуля по описанию приложения
  • сгенерировать Chart.yaml, values.yaml и templates/ одной командой
  • перевести сырые Kubernetes-манифесты в Helm-чарт
  • добавить стандартные helpers и labels в существующую структуру
  • подключить шаблоны Ingress и HPA к чарту

Примеры запросов агенту

  • создай Helm-чарт для nginx:1.27 с сервисом на порту 80 и targetPort 8080
  • сгенерируй чарт mychart с шаблонами deployment и service, добавь ingress
  • переведи мои Kubernetes-манифесты в Helm-чарт с helpers

Как установить helm-generator

1Через Skills CLI (Vercel)

npx skills add akin-ozer/cc-devops-skills --skill helm-generator -a claude-code

2Вручную: положить файлы

~/.claude/skills/helm-generator/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/helm-generator/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о helm-generator

Как установить helm-generator в Claude?

Выполните npx skills add akin-ozer/cc-devops-skills --skill helm-generator -a claude-code. Скилл появится в ~/.claude/skills/helm-generator/SKILL.md.

Что делает helm-generator?

Создаёт Helm-чарт: структуру каталогов, Chart.yaml, values.yaml, стандартные helpers и шаблоны ресурсов — Deployment, StatefulSet, DaemonSet, Service, Ingress, ConfigMap, Secret, RBAC, NetworkPolicy, HPA.

Чем helm-generator отличается от helm-validator?

Первый создаёт новые чарты и шаблоны, второй проверяет и линтит уже существующие. Для проверки сгенерированного чарта скилл сам советует вызвать helm-validator.

Исходный текст

SKILL.md · Apache-2.0
---
name: helm-generator
description: Create, scaffold, or generate Helm charts, Chart.yaml, values.yaml, templates, helpers.
---

# Helm Chart Generator

## Overview

Generate production-ready Helm charts with deterministic scaffolding, standard helpers, reusable templates, and validation loops.

**Official Documentation:**
- [Helm Docs](https://helm.sh/docs/) - Main documentation
- [Chart Best Practices](https://helm.sh/docs/chart_best_practices/) - Official best practices guide
- [Template Functions](https://helm.sh/docs/chart_template_guide/function_list/) - Built-in functions
- [Sprig Functions](http://masterminds.github.io/sprig/) - Extended function library

## When to Use This Skill

| Use helm-generator | Use OTHER skill |
|-------------------|-----------------|
| Create new Helm charts | **helm-validator**: Validate/lint existing charts |
| Generate Helm templates | **k8s-yaml-generator**: Raw K8s YAML (no Helm) |
| Convert K8s manifests to Helm | **k8s-debug**: Debug deployed resources |
| Implement CRDs in Helm | **k8s-yaml-validator**: Validate K8s manifests |

### Trigger Phrases

Use this skill when prompts include phrases like:
- "create Helm chart"
- "scaffold Helm chart"
- "generate Helm templates"
- "convert manifests to Helm chart"
- "build chart with Deployment/Service/Ingress"

## Execution Flow

Follow these stages in order. Do not skip required stages.

### Stage 1: Gather Requirements (Required)

Collect:
- Scope: full chart, specific templates, or conversion from manifests
- Workload: `deployment`, `statefulset`, or `daemonset`
- Image reference: repository, optional tag, or digest
- Ports: service port and container target port (separate values)
- Runtime settings: resources, probes, autoscaling, ingress, storage
- Security: service account, security contexts, optional RBAC/network policies

Use `request_user_input` when critical fields are missing.

If `request_user_input` is unavailable, ask in normal chat and continue with explicit assumptions.

| Missing Information | Question to Ask |
|---------------------|-----------------|
| Image repository/tag | "What container image should be used? (e.g., nginx:1.25)" |
| Service port | "What service port should be exposed?" |
| Container target port | "What container port should traffic be forwarded to?" |
| Resource limits | "What CPU/memory limits should be set? (e.g., 500m CPU, 512Mi memory)" |
| Probe endpoints | "What health check endpoints does the app expose? (e.g., /health, /ready)" |
| Scaling requirements | "Should autoscaling be enabled? If yes, min/max replicas and target CPU%?" |
| Workload type | "What workload type: Deployment, StatefulSet, or DaemonSet?" |
| Storage requirements | "Does the application need persistent storage? Size and access mode?" |

Do not silently assume critical settings.

### Stage 2: Lookup CRD Documentation (Only if CRDs Are In Scope)

1. Try Context7 first:
   - `mcp__context7__resolve-library-id`
   - `mcp__context7__query-docs`
2. Fallback chain if Context7 is unavailable or incomplete:
   - Operator official docs (preferred)
   - General web search

Also consult `references/crd_patterns.md` for example patterns.

### Stage 3: Scaffold Chart Structure (Required)

Run:
```bash
bash scripts/generate_chart_structure.sh <chart-name> <output-directory> [options]
```

Options:
- `--image <repo>` - Supports repo-only, tagged image, registry ports, and digest refs
- `--port <number>` - Service port (default: 80)
- `--target-port <number>` - Container target port (default: 8080)
- `--type <type>` - Workload type: deployment, statefulset, daemonset (default: deployment)
- `--with-templates` - Generate resource templates (deployment.yaml, service.yaml, etc.)
- `--with-ingress` - Include ingress template
- `--with-hpa` - Include HPA template
- `--force` - Overwrite existing chart without prompting

Image parsing behavior:
- `--image nginx:1.27` -> repository `nginx`, tag `1.27`
- `--image registry.local:5000/team/app` -> repository kept intact
- `--image ghcr.io/org/app@sha256:...` -> digest mode (no tag concatenation)
- `--tag` cannot be combined with digest image references

Idempotency and overwrite behavior:
- `generate_chart_structure.sh`: prompts before overwrite; `--force` overwrites non-interactively.
- `generate_standard_helpers.sh`: prompts before replacing `templates/_helpers.tpl`; `--force` bypasses prompt.

Expected scaffold shape:
```
mychart/
  Chart.yaml
  values.yaml
  templates/
    _helpers.tpl
    NOTES.txt
    serviceaccount.yaml
    service.yaml
    configmap.yaml
    secret.yaml
    deployment.yaml|statefulset.yaml|daemonset.yaml
    ingress.yaml (optional)
    hpa.yaml (optional)
  .helmignore
```

### Stage 4: Generate Standard Helpers

Run:
```bash
bash scripts/generate_standard_helpers.sh <chart-name> <chart-directory>
```

Required helpers: `name`, `fullname`, `chart`, `labels`, `selectorLabels`, `serviceAccountName`.

Fallback:
- If script execution is blocked, copy `assets/_helpers-template.tpl` and replace `CHARTNAME` with the chart name.

### Stage 5: Consult References and Generate Templates (Required)

Consult relevant references once at this stage:
- `references/resource_templates.md` for the resource patterns being generated
- `references/helm_template_functions.md` for templating function usage
- `references/crd_patterns.md` only when CRDs are in scope

Example file-open commands:
```bash
sed -n '1,220p' references/resource_templates.md
sed -n '1,220p' references/helm_template_functions.md
```

Resource coverage from `references/resource_templates.md`:
- Workloads: Deployment, StatefulSet, DaemonSet, Job, CronJob
- Services: Service, Ingress
- Config: ConfigMap, Secret
- RBAC: ServiceAccount, Role, RoleBinding, ClusterRole, ClusterRoleBinding
- Network: NetworkPolicy
- Autoscaling: HPA, PodDisruptionBudget

Required template patterns:
```yaml
metadata:
  name: {{ include "mychart.fullname" . }}
  labels: {{- include "mychart.labels" . | nindent 4 }}

{{- with .Values.nodeSelector }}
nodeSelector: {{- toYaml . | nindent 2 }}
{{- end }}

annotations:
  {{- if and .Values.configMap .Values.configMap.enabled }}
  checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
  {{- end }}
```

Checksum annotations are required for workloads, but must be conditional and only reference generated templates (`configmap.yaml`, `secret.yaml`).

### Stage 6: Create values.yaml

Structure guidelines:
- Group related settings logically
- Document every value with `# --` comments
- Provide sensible defaults
- Include security contexts, resource limits, probes
- Keep `service.port` and `service.targetPort` separate and explicit
- Keep `configMap.enabled` / `secret.enabled` aligned with generated templates

See `assets/values-schema-template.json` for JSON Schema validation.

### Stage 7: Validate

Preferred path: run the `helm-validator` skill.

If skill invocation is unavailable, run local commands directly:
```bash
helm lint <chart-dir>
helm template test <chart-dir>
```

If `helm` is unavailable, report the block clearly and perform partial checks:
- `bash -n scripts/generate_chart_structure.sh`
- `bash -n scripts/generate_standard_helpers.sh`
- Verify generated files and key fields manually

Re-run validation after any fixes.

## Template Functions Quick Reference

See `references/helm_template_functions.md` for complete guide.

| Function | Purpose | Example |
|----------|---------|---------|
| `required` | Enforce required values | `{{ required "msg" .Values.x }}` |
| `default` | Fallback value | `{{ .Values.x \| default 1 }}` |
| `quote` | Quote strings | `{{ .Values.x \| quote }}` |
| `include` | Use helpers | `{{ include "name" . \| nindent 4 }}` |
| `toYaml` | Convert to YAML | `{{ toYaml .Values.x \| nindent 2 }}` |
| `tpl` | Render as template | `{{ tpl .Values.config . }}` |
| `nindent` | Newline + indent | `{{- include "x" . \| nindent 4 }}` |

## Working with CRDs

See `references/crd_patterns.md` for complete examples.

Key points:
- CRDs you ship -> `crds/` directory (not templated, not deleted on uninstall)
- CR instances -> `templates/` directory (fully templated)
- Always look up documentation for CRD spec requirements
- Document operator dependencies in Chart.yaml annotations

## Converting Manifests to Helm

1. **Parameterize:** Names -> helpers, values -> `values.yaml`
2. **Apply patterns:** Labels, conditionals, `toYaml` for complex objects
3. **Add helpers:** Create `_helpers.tpl` with standard helpers
4. **Validate:** Run `helm-validator` (or local lint/template fallback), then test with different values

## Error Handling

| Issue | Solution |
|-------|----------|
| Template syntax errors | `helm template test <chart-dir> --debug --show-only templates/<file>.yaml` |
| Undefined values | `helm lint <chart-dir> --strict` and add `default`/`required` |
| Checksum include errors | Ensure `templates/configmap.yaml` and `templates/secret.yaml` exist and `configMap.enabled` / `secret.enabled` are set correctly |
| Port mismatch (Service vs container) | Set both `service.port` and `service.targetPort`, then re-run `helm template test <chart-dir>` |
| CRD validation fails | Verify apiVersion/spec fields with Context7 or operator docs, then re-render |
| Script argument failures | Run `bash scripts/generate_chart_structure.sh --help` and pass required values for option flags |

## Example Flows

Full scaffold with templates, ingress, HPA, and explicit port mapping:
```bash
bash scripts/generate_chart_structure.sh webapp ./charts \
  --image ghcr.io/acme/webapp:2.3.1 \
  --port 80 \
  --target-port 8080 \
  --type deployment \
  --with-templates \
  --with-ingress \
  --with-hpa
```

Digest-based image scaffold:
```bash
bash scripts/generate_chart_structure.sh api ./charts \
  --image ghcr.io/acme/api@sha256:0123456789abcdef \
  --with-templates
```

Minimal scaffold without templates:
```bash
bash scripts/generate_chart_structure.sh starter ./charts
```

## Scaffold Success Criteria

Mark complete only when all checks pass:
- [ ] `Chart.yaml`, `values.yaml`, `.helmignore`, `templates/NOTES.txt`, and `templates/_helpers.tpl` exist
- [ ] `values.yaml` contains explicit `service.port` and `service.targetPort`
- [ ] If `--with-templates` was used, `serviceaccount.yaml`, `service.yaml`, `configmap.yaml`, `secret.yaml`, and one workload template exist
- [ ] Generated workload template uses conditional checksum annotations for config/secret
- [ ] Image rendering logic supports tag and digest modes
- [ ] Validation completed (`helm-validator` skill or local fallback commands) and outcomes reported

## Resources

### Scripts
| Script | Usage |
|--------|-------|
| `scripts/generate_chart_structure.sh` | `bash scripts/generate_chart_structure.sh <chart-name> <output-dir> [options]` |
| `scripts/generate_standard_helpers.sh` | `bash scripts/generate_standard_helpers.sh <chart-name> <chart-dir> [--force]` |

### References
| File | Content |
|------|---------|
| `references/helm_template_functions.md` | Complete template function guide |
| `references/resource_templates.md` | All K8s resource templates |
| `references/crd_patterns.md` | CRD patterns (cert-manager, Prometheus, Istio, ArgoCD) |

### Assets
| File | Purpose |
|------|---------|
| `assets/_helpers-template.tpl` | Standard helpers template |
| `assets/values-schema-template.json` | JSON Schema for values validation |

## Integration with helm-validator

After generating charts, invoke `helm-validator` and close the loop:
1. Generate chart/templates
2. Run `helm-validator` (or local fallback commands)
3. Fix identified issues
4. Re-validate until passing

© akin-ozer · Apache-2.0 · akin-ozer/cc-devops-skills

Похожие скиллы

Всё по теме «DevOps и инфраструктура» →
helm-chart-scaffolding Seth Hobson Скилл помогает создавать и поддерживать Helm-чарты для Kubernetes, настраивать шаблоны и готовить приложения к разным окружениям. CX Codex 11 964установок helm-charts devops-skills Скилл для работы с Helm: собирает шаблоны чартов, правит values.yaml, ставит и откатывает релизы в Kubernetes. CX Codex +1 357установок helm-chart-builder Alireza Rezvani Скилл генерирует структуру Helm-чартов, проверяет шаблоны на ошибки и проводит аудит безопасности манифестов Kubernetes. Пригодится при упаковке сервисов в чарты. 581установок kubernetes-skill LukasNiessen Помогает создавать и проверять манифесты Kubernetes без галлюцинаций. Находит ошибки в безопасности, сетевых политиках и ресурсах. CX Codex +1 1 400установок kubernetes Mindrally Задаёт агенту правила работы с Kubernetes, Helm, Ansible и CI/CD. Пригодится, когда манифесты и пайплайны пишет ИИ, а не человек. CX Codex +1 1 000установок devops mrgoonie Скилл для деплоя и управления инфраструктурой: Cloudflare Workers, Docker, GCP, Kubernetes. Пригодится, когда агенту нужно развернуть сервис или разобрать кластер. CX Codex +1 987установок

Из того же набора28

terraform-validator Прогоняет .tf и .tfvars через terraform fmt, validate, tflint и checkov, а потом собирает отчёт с найденными проблемами. CX Codex +1 640установок github-actions-validator Скилл проверяет синтаксис workflows GitHub Actions через actionlint и тестирует их локально через act. Помогает находить опечатки в раннерах и устаревшие actions до коммита. CX Codex +1 638установок terraform-generator Скилл пишет конфигурации Terraform: ресурсы, модули, провайдеры, переменные и outputs. Пригодится, когда нужно поднять инфраструктуру кодом, а не собирать HCL вручную. CX Codex +1 639установок azure-pipelines-validator Проверяет azure-pipelines.yml локальными скриптами: синтаксис, безопасность, best practices. Пригодится перед мержем пайплайна. CX Codex +1 637установок makefile-validator Прогоняет Makefile и .mk файлы через синтаксическую проверку, линтер и набор проверок безопасности, а потом отдаёт отчёт с кодом выхода. CX Codex +1 625установок makefile-generator Скилл собирает Makefile с целями .PHONY, стандартными целями и проверкой через makefile-validator. Пригодится, когда проект нужно перевести на make. CX Codex +1 620установок promql-generator Скилл ведёт агента по шагам планирования и собирает PromQL-запросы, правила алертов и recording rules для Prometheus. CX Codex +1 615установок promql-validator Проверяет синтаксис PromQL, находит антипаттерны вроде rate() на gauge-метриках и помогает оптимизировать запросы Prometheus через пошаговый диалог. CX Codex +1 604установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой