Claude Code Plugins

Community-maintained marketplace

Feedback

Kubernetes Helm chart development with values.yaml, templates, and subchart patterns. Triggers on helm, chart, kubernetes, values.yaml.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name helm
description Kubernetes Helm chart development with values.yaml, templates, and subchart patterns. Triggers on helm, chart, kubernetes, values.yaml.
triggers helm, chart, kubernetes, k8s, values\.yaml, \.tpl
Build Kubernetes Helm charts with proper values structure, template helpers, and subchart organization. Follow Bitnami-style conventions for consistency. **CRITICAL: Use OctoCode to research external chart capabilities before implementing workarounds.**
MCPSearch({ query: "select:mcp__plugin_devtools_octocode__githubSearchCode" })
// Research external chart values
mcp__octocode__githubGetFileContent({
  owner: "bitnami",
  repo: "charts",
  path: "bitnami/postgresql/values.yaml",
  matchString: "primary",
  mainResearchGoal: "Understand Bitnami chart patterns",
  researchGoal: "Find PostgreSQL configuration options",
  reasoning: "Need to configure external chart correctly"
})
**Chart structure:**
my-chart/
├── Chart.yaml          # Chart metadata
├── values.yaml         # Default configuration
├── templates/
│   ├── _helpers.tpl    # Template helpers
│   ├── deployment.yaml
│   ├── service.yaml
│   └── configmap.yaml
└── charts/             # Subcharts (optional)

Values annotation (required for readme-generator):

# -- (string) Image repository
image:
  # -- (string) Image registry
  registry: docker.io
  # -- (string) Image name
  repository: my-app
  # -- (string) Image tag
  tag: latest

# -- (int) Number of replicas
replicaCount: 1

# -- (bool) Enable debug mode
debug: false

Template helper:

{{/* Generate labels */}}
{{- define "mychart.labels" -}}
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
**Banned:** - Hardcoded values in templates — use `.Values` - Changing label selectors after deployment - Secrets in values.yaml — use `existingSecret` pattern - Missing `# -- (type)` annotations - Template files over 200 lines

Required:

  • Every values field: # -- (type) description annotation
  • Standard Kubernetes labels (app.kubernetes.io/*)
  • Support both inline and existingSecret for secrets
  • Init containers for service dependencies

Naming: Charts=kebab-case, Templates=<resource>.yaml, Values=camelCase

**Always research external chart capabilities before workarounds:**
  1. Find the upstream chart repository
  2. Read the chart's values.yaml
  3. Check chart documentation
  4. Use OctoCode to search templates
mcp__octocode__githubGetFileContent({
  owner: "grafana",
  repo: "helm-charts",
  path: "charts/grafana/values.yaml",
  matchString: "rbac",
  mainResearchGoal: "Find Grafana RBAC options",
  researchGoal: "Check if namespace-scoped RBAC is supported",
  reasoning: "Avoid custom workaround if chart supports it natively"
})
```bash helm lint ./my-chart # Lint chart helm template my-chart ./my-chart --debug # Render templates helm dependency update ./my-chart # Update dependencies helm install my-release ./my-chart # Install ``` - [ ] All values have `# -- (type)` annotations - [ ] Uses `.Values` references (no hardcoding) - [ ] Standard Kubernetes labels - [ ] `existingSecret` pattern for secrets - [ ] `helm lint` passes with 0 warnings - [ ] External charts researched before workarounds