Ola! como quase tudo na programação a resposta é: Depende!
pois depende do objetivo do projeto e do que você quer versionar como chart.
No projeto tem:
Uma pasta gateway
Uma pasta helm
Chart.yamlvalues.yamltemplates/ (com configmap, services, gateway, etc.)
A ideia aqui normalmente é separar:
- Código/manifests “puros” da aplicação (às vezes usados sem Helm, para estudo ou comparação)
- Chart Helm, que é o pacote reutilizável e parametrizável
“Não seria melhor colocar tudo dentro do Helm?”
Se o objetivo for distribuir e instalar a aplicação exclusivamente via Helm, então sim: faz sentido que todos os manifests Kubernetes fiquem dentro da pasta do chart (helm/templates) e que não existam YAMLs duplicados fora dele.
Mas existem alguns motivos para manter essa separação em um projeto de curso:
Didática
Primeiro você aprende a criar os YAMLs “na mão” (Deployment, Service, ConfigMap etc.).
Depois aprende a transformar isso em templates Helm.
Manter os dois ajuda a comparar “antes e depois”.
Evolução incremental
O projeto pode ter começado com manifests estáticos e depois evoluído para Helm. Em vez de apagar tudo, mantém-se a estrutura anterior.
Organização por responsabilidade
Às vezes:
gateway/ → código da aplicaçãohelm/ → infraestrutura de deploy
Isso deixa claro que o chart é apenas a camada de empacotamento para Kubernetes.
Quando é considerado uma boa prática?
Em projetos reais, o mais comum é:
- Ter o código da aplicação em um repositório
- Ter o chart Helm em outro repositório
ou - Ter uma pasta
/chart ou /helm bem definida como o artefato de deploy
E evitar manter YAMLs duplicados fora do Helm, porque isso realmente gera redundância e risco de inconsistência.
Mas pra resumir essa historia toda:
Não está “errado” deixar tudo dentro do Helm.
Mas no contexto do curso, a organização provavelmente foi pensada para:
- Mostrar a evolução dos manifests
- Separar aplicação de empacotamento
- Facilitar entendimento didático
Abraços.