Helm Charts — Visão Geral¶
Introdução¶
Todas as aplicações são empacotadas como Helm charts e publicadas no GitHub Container Registry (GHCR). O repositório ads-helm-charts centraliza todos os charts da plataforma.
Repositório¶
- URL:
https://github.com/ads-saude/ads-helm-charts - Registry OCI:
oci://ghcr.io/ads-saude - Total de charts: 18
- Versionamento: Semântico (atualmente a maioria em 1.0.0)
Charts Disponíveis¶
Backend¶
- auth-api
- is-core-api
- is-notification-api
- is-portal-api
- is-regulation-api
- is-reports-api
- is-ws-api
- redeis-auth-api
- redeis-ws-api
Frontend¶
- is-core-ui
- is-indicadores-ui
- is-notification-ui
- is-portal-ui
- is-regulation-ui
- is-reports-ui
Especiais¶
- is4
- is5
- extent
Estrutura dos Charts¶
Cada chart segue a mesma estrutura padrão:
charts/{app-name}/
├── Chart.yaml # Metadados do chart (nome, versão, descrição)
├── doc.yaml # Metadados para geração de README
├── values.yaml # Valores padrão
├── README.md # Documentação gerada automaticamente
└── templates/
├── _helpers.tpl # Template helpers (labels, names, etc.)
├── deployment.yaml # Deployment Kubernetes
├── service.yaml # Service ClusterIP
├── http-route.yaml # HTTPRoute (Gateway API)
├── ingress.yaml # Ingress (desabilitado por padrão)
├── eso-config.yaml # ExternalSecret para config da app
├── eso-imagepull-secrets.yaml # ExternalSecret para pull de imagens
├── hpa.yaml # HorizontalPodAutoscaler
├── serviceaccount.yaml # ServiceAccount
└── NOTES.txt # Mensagem pós-install
O que precisa existir para um chart funcionar¶
Além do chart em si, a aplicação normalmente depende de:
- imagem publicada no OCIR
- secrets da aplicação no Vault
imagePullSecretsglobais emsystem/global-pull-secrets- namespace ou tenant já criado
- HTTPRoute e domínio coerentes com o ambiente
- volumes, NFS ou PVC nos casos especiais
Casos como is-core-api, is-ws-api, is4 e extent exigem storage antes do rollout. Esses requisitos estão detalhados em Requisitos por Aplicação e Charts Especiais.
Publicação¶
Os charts são publicados automaticamente via GitHub Actions quando há merge na branch main:
flowchart LR
PR[Pull Request] -->|Merge| MAIN[main branch]
MAIN -->|GitHub Actions| DETECT[Detecta charts modificados]
DETECT -->|helm package| PKG[Empacota .tgz]
PKG -->|helm push| GHCR[ghcr.io/ads-saude]
O workflow .github/workflows/release.yaml utiliza o script publish-modified-charts.sh para publicar apenas os charts que foram modificados no commit, otimizando o pipeline.
Para mais detalhes sobre padrões de templates e manutenção, veja: