Skip to content

Configuração de Tenants

O repositório ads-tenants-config é a fonte de verdade para as configurações de deploy de todas as aplicações por tenant. O ArgoCD monitora este repositório e aplica automaticamente qualquer alteração.

Estrutura

ads-tenants-config/ ├── templates/ # Blueprints para novos tenants │ ├── hml/ # Templates HML (18 apps) │ │ ├── auth-api/ │ │ │ ├── app-config.yaml │ │ │ └── values.yaml │ │ ├── is-core-api/ │ │ ├── is-core-ui/ │ │ └── ... (18 apps) │ └── nox/ # Templates NOX (18 apps) │ └── ... │ └── tenants/ └── oci/ ├── hml/ # Ambiente HML │ ├── afpes/ # 1 dir por tenant │ │ ├── auth-api/ # 1 dir por aplicação │ │ │ ├── app-config.yaml │ │ │ └── values.yaml │ │ ├── is-core-api/ │ │ └── ... │ ├── cisne/ │ ├── cmd/ │ ├── fusex/ │ ├── global/ # Especial: apenas 2 apps │ ├── hic/ │ ├── nfb/ │ ├── rjv/ │ ├── rvt/ │ ├── scz/ │ └── tre/ # Treinamento: 18 apps │ └── nox/ # Ambiente NOX ├── afpes-prd/ # Padrão: {tenant}-{variante} ├── afpes-tre/ ├── cisne-prd/ ├── cisne-tre/ ├── cmd-prd/ ├── cmd-tre/ └── ... # 20 tenants total

Arquivos por Aplicação

Cada combinação tenant/aplicação tem exatamente 2 arquivos:

app-config.yaml

Define a versão do chart Helm:

yaml chartVersion: 1.0.0

O ApplicationSet do ArgoCD lê este campo para determinar targetRevision do chart OCI. Na maioria dos casos permanece em 1.0.0 — só muda quando o chart Helm é atualizado com breaking changes.

values.yaml

Helm values overrides específicos do tenant:

```yaml env: hml

image: tag: 8.0.03-DEV@sha256:b9d3940fdf472791a85ae37c09947e185a13657b5fd284a3ce7f7b1d84f043c3 ```

Campo Descrição
env Ambiente (hml ou nox) — usado pelo chart para configurações ambiente-específicas
image.tag Tag da imagem com digest SHA256 — garante deploys imutáveis

Tag com Digest

O formato tag@sha256:... garante que mesmo que a tag seja sobrescrita no registry, o deploy usa exatamente a imagem esperada. O digest é adicionado automaticamente pelo merge pipeline.

Tenants por Ambiente

HML (Homologação)

Tenant Apps Descrição
afpes 18 AFPES
cisne 18 Cisne
cmd 18 CMD
cxs 18 CXS
fusex 18 Fusex
global 2 Shared (is-reports-ui, redeis-auth-api)
hic 18 HIC
nfb 18 NFB
rjv 18 RJV
rvt 18 RVT
scz 18 SCZ
tre 18 Treinamento

NOX (Produção)

Cada tenant tem duas variantes:

  • -prd: Produção do cliente
  • -tre: Treinamento do cliente
Tenant Base Variantes NOX
afpes afpes-prd, afpes-tre
cisne cisne-prd, cisne-tre
cmd cmd-prd, cmd-tre
fusex fusex-prd, fusex-tre
hic hic-prd, hic-tre
hsm hsm-prd, hsm-tre
nfb nfb-prd, nfb-tre
rjv rjv-prd, rjv-tre
rvt rvt-prd, rvt-tre
scz scz-prd, scz-tre

Tenants exclusivos

  • HSM: apenas em NOX (produção)
  • CXS: apenas em HML (homologação)
  • Global: apenas em HML (shared services)

Atualizações Automáticas

O pipeline de merge atualiza os tenants HML automaticamente:

  1. Build completa com sucesso
  2. Workflow update-hml-tenants.yml dispara
  3. Action update-tenants-values busca values.yaml em tenants/oci/hml/ que contenham a imagem
  4. Atualiza image.tag para {nova-tag}@{sha256:digest}
  5. Commit automático com mensagem convencional: chore(hml): update {app} to {tag}
  6. Push direto para main
  7. ArgoCD detecta a mudança e sincroniza

Para NOX, a atualização é manual — requer criação de PR ou edição direta dos values.yaml.

Templates

O diretório templates/ serve como catálogo de blueprints. Contém a estrutura completa de apps para cada ambiente com versões baseline.

Quando um novo tenant é criado:

  1. O workflow tenant-create.yml copia toda a estrutura de templates do ambiente alvo
  2. Mantém apenas as apps relevantes para o tenant
  3. Ajusta values.yaml com as tags de imagem iniciais
  4. app-config.yaml permanece em chartVersion: 1.0.0

Os templates são a referência para garantir que todos os tenants tenham a mesma estrutura.