🔁 DevOps

helm-chart-builder

Conception de charts Helm pour Kubernetes — templates, values, dépendances et stratégies de déploiement.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- helm-chart-builder --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } helm-chart-builder -Launch"

🚀 Déjà installé ?

claude "/helm-chart-builder"

Ou tapez /helm-chart-builder dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

helmchart helmhelm templatevalues.yamlhelm installhelm upgradekubernetes helm

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/devops-skills/helm-chart-builder ~/.claude/skills/

Source : devops-skills/helm-chart-builder

📖 Manuel

Constructeur de Charts Helm

Workflow

  1. Structurer : créer le squelette du chart avec les templates essentiels.
  2. Paramétrer : définir les values avec des défauts sensibles.
  3. Tester : helm template et helm lint avant l'installation.
  4. Déployer : install/upgrade avec les values par environnement.

Structure d'un chart

mychart/
├── Chart.yaml              # Métadonnées du chart
├── values.yaml             # Valeurs par défaut
├── values-dev.yaml         # Override par environnement
├── values-prod.yaml
├── templates/
│   ├── _helpers.tpl        # Fonctions réutilisables
│   ├── deployment.yaml
│   ├── service.yaml
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── configmap.yaml
│   ├── secret.yaml
│   └── serviceaccount.yaml
└── charts/                 # Dépendances

Chart.yaml

apiVersion: v2
name: payment-api
description: API de gestion des paiements
type: application
version: 1.2.0        # Version du chart
appVersion: "3.1.0"   # Version de l'application
dependencies:
  - name: postgresql
    version: "12.x.x"
    repository: "https://charts.bitnami.com/bitnami"
    condition: postgresql.enabled

Templates essentiels

Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "mychart.fullname" . }}
  labels:
    {{- include "mychart.labels" . | nindent 4 }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      {{- include "mychart.selectorLabels" . | nindent 6 }}
  template:
    metadata:
      labels:
        {{- include "mychart.selectorLabels" . | nindent 8 }}
      annotations:
        checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
          ports:
            - containerPort: {{ .Values.service.targetPort }}
          envFrom:
            - configMapRef:
                name: {{ include "mychart.fullname" . }}
          resources:
            {{- toYaml .Values.resources | nindent 12 }}
          livenessProbe:
            httpGet:
              path: /health/live
              port: {{ .Values.service.targetPort }}
          readinessProbe:
            httpGet:
              path: /health/ready
              port: {{ .Values.service.targetPort }}

Values par défaut

# values.yaml
replicaCount: 2

image:
  repository: myregistry.azurecr.io/payment-api
  tag: ""
  pullPolicy: IfNotPresent

service:
  type: ClusterIP
  port: 80
  targetPort: 8080

ingress:
  enabled: true
  className: nginx
  hosts:
    - host: api.company.com
      paths:
        - path: /payments
          pathType: Prefix

resources:
  requests:
    cpu: 100m
    memory: 256Mi
  limits:
    cpu: 500m
    memory: 512Mi

autoscaling:
  enabled: false
  minReplicas: 2
  maxReplicas: 10
  targetCPUUtilization: 70

Commandes essentielles

helm create mychart              # Créer un nouveau chart
helm lint mychart                # Vérifier la syntaxe
helm template mychart            # Prévisualiser les manifestes
helm install myrelease mychart   # Installer
helm upgrade myrelease mychart   # Mettre à jour
helm rollback myrelease 1       # Rollback à la révision 1
helm diff upgrade myrelease mychart  # Voir les différences (plugin)

Règles