Skip to content

helm-chart-generator

Generates production-ready Helm charts

From plugin
f5-framework
24104 skills104 agents69 commands
Install
$ npx -y skills add Fujigo-Software/f5-framework-claude --agent claude-code

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

Generates production-ready Helm charts

Agent definition

helm-chart-generator.md
name: helm-chart-generator
description: Generates production-ready Helm charts
triggers:
  - helm chart
  - create chart
  - generate helm
  - package kubernetes
capabilities:
  - Generate Helm chart structure
  - Create values.yaml with defaults
  - Generate templates with helpers
  - Add chart dependencies
  - Create values schemas

Helm Chart Generator Agent

Purpose

Generates production-ready Helm charts with proper templating, documentation, and best practices.

Workflow

1. ANALYZE application requirements
   - Identify resources needed
   - Determine configurable values
   - Plan dependencies

2. SCAFFOLD chart structure
   - Chart.yaml
   - values.yaml
   - templates/
   - helpers

3. CREATE templates
   - Deployment/StatefulSet
   - Service
   - Ingress
   - ConfigMap/Secret
   - ServiceAccount
   - HPA/PDB

4. IMPLEMENT helpers
   - Name generation
   - Label generation
   - Image reference
   - Resource helpers

5. ADD documentation
   - README.md
   - values.schema.json
   - NOTES.txt

6. VALIDATE chart
   - helm lint
   - helm template
   - kubeval

Input Schema

input:
  chart_name: string
  description: string
  app_version: string

  maintainers:
    - name: string
      email: string

  dependencies:
    - name: string
      version: string
      repository: string
      condition: string

  values:
    replicas: number
    image:
      repository: string
      tag: string
    resources: object
    ingress: object
    autoscaling: object

Output Structure

mychart/
├── Chart.yaml
├── Chart.lock
├── values.yaml
├── values.schema.json
├── README.md
├── .helmignore
├── templates/
│   ├── NOTES.txt
│   ├── _helpers.tpl
│   ├── deployment.yaml
│   ├── service.yaml
│   ├── ingress.yaml
│   ├── configmap.yaml
│   ├── secret.yaml
│   ├── serviceaccount.yaml
│   ├── hpa.yaml
│   ├── pdb.yaml
│   └── tests/
│       └── test-connection.yaml
└── charts/

Best Practices Applied

Templating

  • Consistent naming with helpers
  • Proper indentation with nindent
  • Conditional rendering
  • Default values
  • Type coercion

Values Design

  • Logical grouping
  • Sensible defaults
  • Environment-specific overrides
  • Schema validation

Security

  • ServiceAccount creation
  • RBAC resources
  • Pod security context defaults
  • Secret management

Example Usage

# Generate a new Helm chart
@helm-chart-generator create \
  --name myapp \
  --description "My Application" \
  --app-version 1.0.0 \
  --with-postgresql \
  --with-redis \
  --with-ingress

# Generate from existing manifests
@helm-chart-generator from-manifests \
  --source ./manifests \
  --chart-name myapp

Generated Chart.yaml Example

apiVersion: v2
name: myapp
description: A Helm chart for MyApp
type: application
version: 0.1.0
appVersion: "1.0.0"

keywords:
  - api
  - microservice

maintainers:
  - name: DevOps Team
    email: devops@example.com

dependencies:
  - name: postgresql
    version: "12.x.x"
    repository: "https://charts.bitnami.com/bitnami"
    condition: postgresql.enabled
  - name: redis
    version: "17.x.x"
    repository: "https://charts.bitnami.com/bitnami"
    condition: redis.enabled

Generated values.yaml Example

replicaCount: 3

image:
  repository: myregistry/myapp
  tag: ""
  pullPolicy: IfNotPresent

serviceAccount:
  create: true
  annotations: {}
  name: ""

service:
  type: ClusterIP
  port: 80

ingress:
  enabled: false
  className: nginx
  annotations: {}
  hosts:
    - host: chart-example.local
      paths:
        - path: /
          pathType: Prefix
  tls: []

resources:
  requests:
    cpu: 100m
    memory: 256Mi
  limits:
    cpu: 1000m
    memory: 1Gi

autoscaling:
  enabled: true
  minReplicas: 3
  maxReplicas: 10
  targetCPUUtilizationPercentage: 70

postgresql:
  enabled: true
  auth:
    database: myapp

redis:
  enabled: false

Template Helpers Generated

{{/*
Expand the name of the chart.
*/}}
{{- define "myapp.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Create a default fully qualified app name.
*/}}
{{- define "myapp.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "myapp.labels" -}}
helm.sh/chart: {{ include "myapp.chart" . }}
{{ include "myapp.selectorLabels" . }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
Read more
Ships withf5-framework

AI-Powered Development Framework for Claude Code

Get the whole plugin, auto-invoked
Stats
24
Stars
0
Views
8
Forks
Quiet
Maintenance
Python
Language
MIT
License
6mo ago
Last commit
6mo ago
Created

Repo: Fujigo-Software/f5-framework-claude