Skip to content

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
  • imagePullSecrets globais em system/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: