Inicio
Helm Chart Generator
Utilidades DevOps y Cloud-Native

Generador de Helm Chart de Kubernetes (Chart.yaml & values.yaml)

Genere archivos Chart.yaml, values.yaml y plantillas de despliegue estándar para Kubernetes Helm v3 con Service, Ingress y límites de recursos.

Privacidad 100% del lado del cliente
Especificación Helm v3
Preajustes:
Configuración y Valores del Chart
Metadatos de Chart.yaml
Carga de trabajo, réplicas e imagen
Redes: Servicio e Ingress
Recursos y autoescalado HPA
Fortalecimiento de seguridad y sondas
Variables de entorno (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: {}
Estructura del Chart
web-api-service (0.1.0)
Helm v3 • 8 Manifiestos generados • App 1.4.2
Carga de Trabajo y Red
3 Pods • ClusterIP
Port 80:8080 • Ingress: Activo
Fortalecimiento de Seguridad
100/100Protegido
Non-Root • Sondas activas

Generación de Helm 100% en el Navegador

Sintetice charts de Helm v3 válidos, metadatos y manifiestos de plantilla directamente en su navegador sin enviar secretos a servidores externos.

Valores Predeterminados Seguros para Producción

Incluye contextos de seguridad no root, eliminación de capacidades Linux, sondas de estado HTTP, límites de recursos y escalado automático HPA.

Compatibilidad Total con Plantillas Helm v3

Definiciones estándar _helpers.tpl, truncamiento DNS seguro (63 caracteres), reglas de ingress y scripts de automatización de helm CLI.

Referencia técnica y guía de arquitectura

Guía de Desarrollo del Generador de Helm Charts de Kubernetes (Chart.yaml & values.yaml) — Guía de referencia

Genere archivos Chart.yaml, values.yaml y plantillas de despliegue estándar para Kubernetes Helm v3 con Service, Ingress y límites de recursos.

Parámetros clave y controles

namestring

Nombre del paquete del chart conforme a la especificación de subdominio DNS RFC 1123 de Kubernetes (minúsculas, números y guiones).

Por defecto: my-app
apiVersionstring

Versión del esquema de API del chart. Helm v3 requiere 'v2', mientras que el obsoleto Helm v2 utilizaba 'v1'.

Por defecto: v2
versionstring

Versión SemVer 2 del chart propiamente dicho. Debe incrementarse ante cualquier cambio en plantillas o valores predeterminados.

Por defecto: 0.1.0
appVersionstring

Cadena de versión que indica la versión de la aplicación o la etiqueta de imagen del contenedor desplegado.

Por defecto: 1.0.0
replicaCountinteger

Número deseado de réplicas de pods programadas en los nodos de trabajo del clúster.

Por defecto: 2
image.repositorystring

Ruta del registro y nombre de la imagen de contenedor (p. ej., docker.io/library/nginx o gcr.io/project/service).

Por defecto: nginx
service.typestring

Estrategia de exposición del Service de Kubernetes: ClusterIP (interno), NodePort o LoadBalancer (IP externa del proveedor cloud).

Por defecto: ClusterIP
resourcesobject

Reservas mínimas (requests) y techos máximos (limits) de cómputo para CPU (milicores) y memoria RAM (Mi/Gi).

Por defecto: requests: { cpu: 100m, memory: 128Mi }, limits: { cpu: 500m, memory: 512Mi }

Consejos profesionales y mejores prácticas

Ejecute siempre 'helm lint ./my-chart'

Ejecute siempre 'helm lint ./my-chart' y 'helm template my-release ./my-chart --debug' antes del despliegue para detectar errores de sintaxis y regresiones en plantillas Go sin alterar el estado del clúster de Kubernetes.

Mantenga una separación rigurosa entre

Mantenga una separación rigurosa entre el campo 'version' y 'appVersion' en Chart.yaml. Modificar las plantillas auxiliares o los recursos predeterminados exige incrementar la versión del chart aunque la imagen del contenedor siga siendo la misma.

Nunca omita la sección de recursos en

Nunca omita la sección de recursos en values.yaml. Requests de CPU y memoria precisos permiten a kube-scheduler ubicar los pods eficientemente, mientras que los limits impiden que fugas de memoria afecten a otros contenedores en el nodo.

Configure ingress.annotations con

Configure ingress.annotations con 'cert-manager.io/cluster-issuer: letsencrypt-prod' y defina los hosts TLS para aprovisionar y renovar automáticamente certificados SSL X.509 mediante cert-manager.

Errores comunes y solución de problemas

Fallo en Helm install con el error 'cannot re-use a name that is still in use'

Una instalación fallida previa dejó un secret huérfano en el namespace. Aplique 'helm upgrade --install <release-name> <chart>' para un despliegue idempotente o ejecute 'helm uninstall <release-name>' seguido de 'kubectl delete secret -l name=<release-name>'.

La actualización es rechazada con 'field is immutable' en el selector del Deployment

El campo spec.selector de los Deployments en Kubernetes es inmutable una vez creado el recurso. Verifique que sus plantillas matchLabels utilicen etiquetas estables como 'app.kubernetes.io/name' o elimine el Deployment antiguo antes de reaplicar el chart.

Pods bloqueados en estado CrashLoopBackOff o terminados por OOMKilled

La aplicación sobrepasa el límite de memoria asignado o no supera los sondeos de salud. Incremente 'resources.limits.memory' en values.yaml y ajuste 'initialDelaySeconds' en los liveness y readiness probes para otorgar margen suficiente durante el arranque.

Preguntas frecuentes (FAQ)

¿Cuál es la diferencia fundamental entre Chart.yaml y values.yaml?▼

Chart.yaml almacena los metadatos globales del paquete (nombre, versión del chart, dependencias y versión de API). Por su parte, values.yaml define los parámetros y valores por defecto que se inyectan en las plantillas Go de la carpeta templates/ para generar los manifiestos YAML definitivos de Kubernetes.

¿Por qué Helm v3 requiere apiVersion: v2 en Chart.yaml?▼

Helm v3 adoptó la especificación 'v2' debido a cambios arquitectónicos mayores: la eliminación completa de Tiller (el demonio servidor en el clúster), la integración del archivo requirements.yaml directamente en el bloque 'dependencies' de Chart.yaml y el soporte nativo para registros OCI.

¿Cómo se deben gestionar credenciales y secretos en entornos de producción?▼

No almacene claves ni contraseñas en texto plano dentro de values.yaml. Utilice herramientas como External Secrets Operator (sincronizando con AWS Secrets Manager, Vault o GCP), Sealed Secrets, o configure un parámetro 'existingSecret' para enlazar secretos de Kubernetes creados previamente.

¿Cuál es la jerarquía de precedencia al sobrescribir valores en Helm?▼

Helm combina los valores en un orden estricto: los valores predeterminados de values.yaml tienen la menor prioridad, seguidos por los archivos pasados con '-f / --values' (el último archivo prevalece), y por último los valores definidos explícitamente mediante '--set', que poseen la máxima prioridad.

Herramientas y utilidades relacionadas

Todas las herramientas →
Guía para Desarrolladores del Generador de Dockerfile Multietapa (Node, Go, Python, Rust)Desarrollo

Cree Dockerfiles multietapa optimizados y seguros para Node.js, Golang, Python, Rust y Java con usuario no root y aceleración de caché BuildKit.

Abrir herramienta→
Referencia de Desarrollador Sql To KyselyDesarrollo

Manual técnico y generador de tipos para transformar esquemas DDL de SQL en interfaces TypeScript seguras para Kysely en PostgreSQL, MySQL y SQLite.

Abrir herramienta→
Guía del Desarrollador del Generador de Entidades MikroORM TypeScript desde SQL DDLDesarrollo

Convierte definiciones SQL CREATE TABLE en clases de entidad MikroORM con decoradores @Entity, @PrimaryKey, @Property, @Index y relaciones.

Abrir herramienta→
Guía de Desarrollo: Generador de Esquemas Mongoose y Modelos TypeScript desde JSONDesarrollo

Infiere y genera esquemas MongoDB Mongoose, interfaces Document de TypeScript, subdocumentos anidados, marcas de tiempo y exportación de modelos desde JSON.

Abrir herramienta→
Guía para Desarrolladores del Generador de Esquemas de Validación Yup desde JSONDesarrollo

Transforme muestras JSON en esquemas de validación de objetos Yup con seguridad de tipos, yup.string(), yup.number(), yup.array() y reglas requeridas.

Abrir herramienta→
Guía de Desarrollo: Generador de Esquemas de Validación Joi desde JSONDesarrollo

Transforme estructuras de datos JSON en esquemas de validación de Joi con reglas Joi.object(), Joi.string(), Joi.number() y Joi.array().

Abrir herramienta→