Accueil
Helm Chart Generator
Utilitaires DevOps & Cloud-Native

Générateur de Helm Chart Kubernetes (Chart.yaml & values.yaml)

Générez des fichiers standard Kubernetes Helm v3 Chart.yaml, values.yaml et modèles de déploiement avec Service, Ingress et limites de ressources.

Confidentialité 100% côté client
Spécification Helm v3
Préréglages :
Configuration & Valeurs du Chart
Métadonnées de Chart.yaml
Charge de travail, réplicas et image
Réseau : Service et Ingress
Ressources & Autoscaling HPA
Durcissement sécurité & sondes
Variables d'environnement (3)
1# Default values for web-api-service.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
4
5replicaCount: 3
6
7image:
8 repository: ghcr.io/org/api-service
9 pullPolicy: IfNotPresent
10 # Overrides the image tag whose default is the chart appVersion.
11 tag: "v1.4.2"
12
13imagePullSecrets: []
14nameOverride: ""
15fullnameOverride: ""
16
17serviceAccount:
18 # Specifies whether a service account should be created
19 create: true
20 # Automatically mount a ServiceAccount's API credentials?
21 automount: true
22 # Annotations to add to the service account
23 annotations: {}
24 # The name of the service account to use.
25 # If not set and create is true, a name is generated using the fullname template
26 name: ""
27
28podAnnotations: {}
29podLabels: {}
30
31podSecurityContext:
32 fsGroup: 2000
33
34securityContext:
35 capabilities:
36 drop:
37 - ALL
38 readOnlyRootFilesystem: true
39 runAsNonRoot: true
40 runAsUser: 1000
41
42service:
43 type: ClusterIP
44 port: 80
45 targetPort: 8080
46
47ingress:
48 enabled: true
49 className: "nginx"
50 annotations:
51 cert-manager.io/cluster-issuer: letsencrypt-prod
52 nginx.ingress.kubernetes.io/ssl-redirect: "true"
53 hosts:
54 - host: api.example.com
55 paths:
56 - path: /
57 pathType: ImplementationSpecific
58 tls:
59 - secretName: api-example-tls
60 hosts:
61 - api.example.com
62
63resources:
64 limits:
65 cpu: 500m
66 memory: 512Mi
67 requests:
68 cpu: 100m
69 memory: 128Mi
70
71autoscaling:
72 enabled: true
73 minReplicas: 2
74 maxReplicas: 10
75 targetCPUUtilizationPercentage: 80
76 targetMemoryUtilizationPercentage: 80
77
78livenessProbe:
79 httpGet:
80 path: /healthz
81 port: http
82 initialDelaySeconds: 15
83 periodSeconds: 20
84
85readinessProbe:
86 httpGet:
87 path: /ready
88 port: http
89 initialDelaySeconds: 5
90 periodSeconds: 10
91
92env:
93 - name: NODE_ENV
94 value: "production"
95 - name: PORT
96 value: "8080"
97 - name: LOG_LEVEL
98 value: "info"
99
100envFrom: []
101volumes: []
102volumeMounts: []
103nodeSelector: {}
104tolerations: []
105affinity: {}
Structure du Chart
web-api-service (0.1.0)
Helm v3 • 8 Manifestes générés • App 1.4.2
Charge de Travail & Réseau
3 Pods • ClusterIP
Port 80:8080 • Ingress: Actif
Sécurité Renforcée
100/100Sécurisé
Non-Root • Sondes actives

Génération Helm 100% Côté Client

Synthétisez des charts Helm v3 valides, métadonnées et modèles directement dans votre navigateur sans envoyer vos secrets à des tiers.

Paramètres par Défaut Durcis pour la Production

Contextes de sécurité non-root, suppression des privilèges Linux, sondes de santé HTTP et autoscaling HPA inclus.

Compatibilité Totale avec les Gabarits Helm v3

Définitions standards _helpers.tpl, troncature DNS conforme (63 caractères), règles Ingress et scripts d'automatisation helm CLI prêts à l'emploi.

Référence technique et guide d'architecture

Guide Développeur du Générateur de Helm Charts Kubernetes (Chart.yaml & values.yaml) — Guide de référence

Générez des fichiers standard Kubernetes Helm v3 Chart.yaml, values.yaml et modèles de déploiement avec Service, Ingress et limites de ressources.

Paramètres clés et contrôles

namestring

Nom du paquet chart respectant la convention de sous-domaine DNS Kubernetes RFC 1123 (lettres minuscules, chiffres et tirets).

Par défaut : my-app
apiVersionstring

Version de schéma de l'API Helm. Helm v3 requiert impérativement 'v2', tandis que la version dépréciée Helm v2 utilisait 'v1'.

Par défaut : v2
versionstring

Version du chart au format SemVer 2. Doit être incrémentée à chaque modification de template ou de valeur par défaut.

Par défaut : 0.1.0
appVersionstring

Chaîne de version précisant l'application embarquée ou le tag de l'image de conteneur déployée.

Par défaut : 1.0.0
replicaCountinteger

Nombre cible de réplicas de pods planifiées sur les nœuds de calcul du cluster.

Par défaut : 2
image.repositorystring

Chemin du registre et nom de l'image de conteneur (ex. docker.io/library/nginx ou gcr.io/project/service).

Par défaut : nginx
service.typestring

Mode d'exposition du Service Kubernetes : ClusterIP (interne), NodePort ou LoadBalancer (IP publique fournie par le cloud).

Par défaut : ClusterIP
resourcesobject

Réservations minimales (requests) et plafonds maximaux (limits) de ressources CPU (millicores) et mémoire vive (Mi/Gi).

Par défaut : requests: { cpu: 100m, memory: 128Mi }, limits: { cpu: 500m, memory: 512Mi }

Conseils de pro et bonnes practices

Exécutez systématiquement 'helm lint

Exécutez systématiquement 'helm lint ./my-chart' et 'helm template my-release ./my-chart --debug' avant tout déploiement afin d'intercepter les erreurs de syntaxe et d'interpolation Go template sans impacter l'API Kubernetes.

Distinguez scrupuleusement 'version'

Distinguez scrupuleusement 'version' et 'appVersion' dans Chart.yaml. Même si l'image de l'application reste inchangée, toute retouche apportée aux templates ou aux valeurs par défaut de values.yaml impose une incrémentation de version du chart.

Ne laissez jamais la section resources

Ne laissez jamais la section resources vide dans values.yaml. Des requests fiables permettent au kube-scheduler de planifier les pods avec précision, tandis que les limits évitent qu'une fuite de mémoire ne vienne pénaliser les conteneurs voisins.

Ajoutez l'annotation

Ajoutez l'annotation 'cert-manager.io/cluster-issuer: letsencrypt-prod' dans ingress.annotations et configurez les hôtes ingress.tls pour automatiser la délivrance et le renouvellement des certificats SSL X.509 avec cert-manager.

Pièges courants et dépannage

Échec de helm install avec le message 'cannot re-use a name that is still in use'

Une précédente installation avortée a laissé un secret Helm orphelin dans le namespace. Utilisez 'helm upgrade --install <release-name> <chart>' pour un déploiement idempotent ou nettoyez l'état avec 'helm uninstall <release-name>' puis 'kubectl delete secret -l name=<release-name>'.

Mise à niveau refusée avec l'erreur 'field is immutable' sur le sélecteur Deployment

Le champ spec.selector d'un Deployment Kubernetes est immuable après sa création. Assurez-vous que vos modèles matchLabels s'appuient sur des étiquettes stables telles que 'app.kubernetes.io/name' ou supprimez manuellement l'ancien Deployment avant la mise à jour.

Pods bloqués en CrashLoopBackOff ou tués par OOMKilled après déploiement

Le conteneur consomme plus de mémoire que la limite allouée ou échoue aux sondes de santé. Augmentez 'resources.limits.memory' dans values.yaml et ajustez le paramètre initialDelaySeconds (15 à 30 secondes) des sondes liveness et readiness.

Foire aux questions (FAQ)

Quelle est la différence fondamentale entre Chart.yaml et values.yaml ?▼

Chart.yaml regroupe les métadonnées déclaratives du paquet Helm (nom, version du chart, dépendances, version d'API). values.yaml définit les variables injectables et leurs valeurs par défaut qui alimentent les modèles Go du répertoire templates/ pour produire les manifestes YAML Kubernetes.

Pourquoi Helm v3 impose-t-il apiVersion: v2 dans Chart.yaml ?▼

Helm v3 a introduit le schéma 'v2' pour entériner la suppression définitive de Tiller (le composant serveur historique dans le cluster), la fusion de requirements.yaml dans la section 'dependencies' de Chart.yaml et la prise en charge native des registres OCI.

Comment gérer les secrets et mots de passe sensibles en production ?▼

Ne consignez jamais de secrets en texte clair dans values.yaml. Privilégiez des solutions comme External Secrets Operator (connecté à Vault, AWS Secrets Manager ou GCP), Sealed Secrets, ou référencez des ressources Secret préexistantes via un paramètre 'existingSecret'.

Quel est l'ordre de priorité lors de la surcharge des valeurs Helm ?▼

La hiérarchie d'application est stricte : les valeurs définies dans values.yaml possèdent la priorité la plus faible, suivies des fichiers injectés via '-f / --values' (le dernier fichier prévalant), et enfin les options transmises via '--set' ou '--set-string' qui ont la priorité absolue.

Outils et utilitaires connexes

Tous les outils →
Guide Développeur du Générateur de Dockerfile Multi-Étapes (Node, Go, Python, Rust)Développement

Générez des Dockerfiles multi-étapes sécurisés et ultra-légers pour Node.js, Golang, Python, Rust et Java avec utilisateur non-root et optimisation du cache BuildKit.

Ouvrir l'outil→
Référence Développeur Sql To KyselyDéveloppement

Manuel technique de référence et générateur de schémas pour convertir des définitions SQL DDL en interfaces TypeScript Kysely robustes pour PostgreSQL, MySQL et SQLite.

Ouvrir l'outil→
Guide du Développeur du Générateur d'Entités MikroORM TypeScript depuis SQL DDLDéveloppement

Convertissez les instructions SQL CREATE TABLE en classes d'entité MikroORM avec @Entity, @PrimaryKey, @Property, @Index et relations.

Ouvrir l'outil→
Guide Développeur : Générateur de Schémas Mongoose et Modèles TypeScript depuis JSONDéveloppement

Infère et génère des schémas MongoDB Mongoose, interfaces Document TypeScript, sous-documents imbriqués, horodatages et modèles exportables depuis du JSON.

Ouvrir l'outil→
Guide Développeur du Générateur de Schémas de Validation Yup depuis JSONDéveloppement

Transformez des exemples JSON en schémas de validation d'objets Yup typés avec yup.string(), yup.number(), yup.array() et règles requises.

Ouvrir l'outil→
Guide Développeur : Générateur de Schémas de Validation Joi depuis JSONDéveloppement

Convertissez des structures de données JSON en schémas de validation Joi robustes avec les contraintes Joi.object(), Joi.string(), Joi.number() et Joi.array().

Ouvrir l'outil→