Início
Helm Chart Generator
Utilitários DevOps & Cloud-Native

Gerador de Helm Chart do Kubernetes (Chart.yaml e values.yaml)

Gere arquivos padrão Kubernetes Helm v3 Chart.yaml, values.yaml e templates de deployment com Service, Ingress e limites de recursos.

Privacidade 100% no cliente
Especificação Helm v3
Predefinições:
Configuração e Valores do Chart
Metadados do Chart.yaml
Carga de trabalho, réplicas e imagem
Rede: Serviço e Ingress
Recursos e autoescalonamento HPA
Endurecimento de segurança e sondas
Variáveis de ambiente (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: {}
Estrutura do Chart
web-api-service (0.1.0)
Helm v3 • 8 Manifestos gerados • App 1.4.2
Cargas de Trabalho e Rede
3 Pods • ClusterIP
Port 80:8080 • Ingress: Ativo
Endurecimento de Segurança
100/100Protegido
Não-Root • Sondas ativas

Geração de Helm 100% no Navegador

Crie charts válidos do Helm v3, metadados e templates Go totalmente no seu navegador sem transmitir credenciais da infraestrutura.

Padrões de Produção Fortalecidos

Inclui contexto de segurança non-root, descarte de capabilities do Linux, sondas de integridade HTTP e especificações de autoscaling HPA.

Compatibilidade Total com Helm v3

Definições _helpers.tpl padronizadas, limites de DNS seguros (63 caracteres), ingress configurado e scripts de automação helm CLI.

Referência técnica e guia de arquitetura

Guia do Desenvolvedor do Gerador de Helm Charts do Kubernetes (Chart.yaml & values.yaml) — Guia de referência

Gere arquivos padrão Kubernetes Helm v3 Chart.yaml, values.yaml e templates de deployment com Service, Ingress e limites de recursos.

Parâmetros principais e controles

namestring

Nome do pacote do chart em conformidade com as regras de subdomínio DNS RFC 1123 do Kubernetes (letras minúsculas, números e hifens).

Padrão: my-app
apiVersionstring

Versão do schema da API do chart. O Helm v3 exige 'v2', enquanto a versão legada Helm v2 utilizava 'v1'.

Padrão: v2
versionstring

Versão do chart no formato SemVer 2. Deve ser incrementada sempre que templates ou valores padrão forem alterados.

Padrão: 0.1.0
appVersionstring

String de versão indicando a tag da imagem do contêiner da aplicação empacotada.

Padrão: 1.0.0
replicaCountinteger

Quantidade desejada de réplicas de pods agendadas nos nós do cluster.

Padrão: 2
image.repositorystring

Caminho do registro e repositório da imagem do contêiner (ex.: docker.io/library/nginx ou gcr.io/project/service).

Padrão: nginx
service.typestring

Estratégia de exposição do Kubernetes Service: ClusterIP (interno), NodePort ou LoadBalancer (IP externo fornecido pela nuvem).

Padrão: ClusterIP
resourcesobject

Garantias mínimas (requests) e limites máximos (limits) para consumo de CPU (milicores) e memória RAM (Mi/Gi).

Padrão: requests: { cpu: 100m, memory: 128Mi }, limits: { cpu: 500m, memory: 512Mi }

Dicas profissionais e melhores práticas

Execute sempre 'helm lint ./my-chart'

Execute sempre 'helm lint ./my-chart' e 'helm template my-release ./my-chart --debug' antes de implantar para capturar erros de sintaxe e falhas de interpolação em templates Go sem interagir com a API do cluster.

Mantenha a 'version' do Chart.yaml

Mantenha a 'version' do Chart.yaml separada do 'appVersion'. Alterações em templates auxiliares ou nos recursos padrão do values.yaml exigem um bump na versão do chart, mesmo quando a tag da imagem permanece inalterada.

Nunca omita a configuração de recursos

Nunca omita a configuração de recursos em values.yaml. Requests de CPU e memória precisos permitem ao kube-scheduler alocar pods de forma balanceada, enquanto limits impedem que vazamentos de memória comprometam o nó compartilhado.

Configure ingress.annotations com

Configure ingress.annotations com 'cert-manager.io/cluster-issuer: letsencrypt-prod' e defina hosts em ingress.tls para emitir e renovar certificados SSL X.509 de forma 100% automatizada com o cert-manager.

Problemas comuns e solução de problemas

Erro no Helm install com 'cannot re-use a name that is still in use'

Uma tentativa anterior de instalação falhou e deixou uma secret de release órfã no namespace. Utilize 'helm upgrade --install <release-name> <chart>' para uma implantação idempotente ou execute 'helm uninstall <release-name>' e remova o secret residual via 'kubectl delete secret -l name=<release-name>'.

Upgrade rejeitado com 'field is immutable' no seletor do Deployment

O campo spec.selector em Deployments do Kubernetes não pode ser modificado após a criação inicial. Assegure-se de que os templates matchLabels usem identificadores estáticos como 'app.kubernetes.io/name' ou exclua o Deployment existente antes de reexecutar o upgrade.

Pods em CrashLoopBackOff ou finalizados por OOMKilled após o deploy

A aplicação ultrapassou o teto de memória ou falhou nos probes de inicialização. Eleve 'resources.limits.memory' no values.yaml e configure 'initialDelaySeconds' adequados (ex.: 15 a 30s) em livenessProbe e readinessProbe para acomodar o startup do serviço.

Perguntas frequentes (FAQ)

Qual é a diferença funcional entre Chart.yaml e values.yaml?▼

O Chart.yaml contém os metadados descritivos do pacote Helm (nome, versão do chart, dependências e versão de API). O values.yaml fornece as variáveis configuráveis e valores padrão que são mesclados aos templates Go do diretório templates/ para gerar os manifestos YAML finais do Kubernetes.

Por que o Helm v3 adota apiVersion: v2 no Chart.yaml?▼

O Helm v3 padronizou a especificação 'v2' para refletir o fim do Tiller (serviço server-side no cluster), a incorporação do requirements.yaml na seção 'dependencies' do próprio Chart.yaml e a compatibilidade nativa com repositórios OCI.

Como segredos, tokens e senhas devem ser gerenciados em produção?▼

Não armazene segredos em texto claro no values.yaml. Em vez disso, adote soluções como o External Secrets Operator (integrado a Vault, AWS Secrets Manager ou GCP), Sealed Secrets, ou referencie recursos de Secret previamente criados no cluster via parâmetros 'existingSecret'.

Qual é a ordem de precedência na sobrescrita de valores do Helm?▼

O Helm aplica a configuração na seguinte ordem: os valores padrão do values.yaml têm a prioridade mais baixa, seguidos por arquivos informados via '-f / --values' (o último arquivo informado prevalece), e finalmente os parâmetros passados via '--set' ou '--set-string', que possuem a prioridade máxima.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Guia do Desenvolvedor: Gerador de Dockerfile Multi-Stage (Node, Go, Python, Rust)Desenvolvimento

Crie Dockerfiles multi-stage seguros e ultraleves para Node.js, Golang, Python, Rust e Java com execução não root e otimização de cache BuildKit.

Abrir ferramenta→
Referência de Desenvolvedor Sql To KyselyDesenvolvimento

Manual técnico e gerador de tipos para converter esquemas DDL de SQL em interfaces TypeScript seguras para Kysely em PostgreSQL, MySQL e SQLite.

Abrir ferramenta→
Guia do Desenvolvedor do Gerador de Entidades MikroORM TypeScript a partir de SQL DDLDesenvolvimento

Converta instruções SQL CREATE TABLE em classes de entidade MikroORM com decoradores @Entity, @PrimaryKey, @Property, @Index e relações.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Esquemas Mongoose e Modelos TypeScript a partir de JSONDesenvolvimento

Infira e gere esquemas MongoDB Mongoose, interfaces Document de TypeScript, subdocumentos aninhados, timestamps e exportações de modelos a partir de JSON.

Abrir ferramenta→
Guia do Desenvolvedor do Gerador de Esquemas de Validação Yup a partir de JSONDesenvolvimento

Converta amostras JSON em esquemas de validação de objetos Yup com segurança de tipos, yup.string(), yup.number(), yup.array() e regras obrigatórias.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Esquemas de Validação Joi a partir de JSONDesenvolvimento

Converta estruturas de dados JSON em esquemas de validação Joi robustos com restrições Joi.object(), Joi.string(), Joi.number() e Joi.array().

Abrir ferramenta→