Pular para conteúdo

☸️ Instalação com Kubernetes (Kustomize)

Para implantações escaláveis e resilientes, o e-SUS AF utiliza o Kustomize para gerenciar os manifestos do Kubernetes, permitindo a separação entre recursos base e variações por ambiente.


1. Estrutura de Diretórios

Os manifestos estão organizados no repositório em:

  • kubernetes/base/: Contém as definições fundamentais de Deployments, Services e Ingress.
  • kubernetes/prd/, kubernetes/hmg/, kubernetes/tre/: Overlays que contém as configurações específicas (Secrets, ConfigMaps, Réplicas) para cada ambiente.

2. Executando o Deploy

Para aplicar o deploy em um ambiente específico (ex: Produção), utilize a flag -k:

kubectl apply -k kubernetes/prd

3. Detalhes Importantes de Infraestrutura

3.1 Chaves Assimétricas (Tokens)

Para garantir que as réplicas da API compartilhem as mesmas chaves JWT, o manifesto de produção deve incluir um PersistentVolumeClaim (PVC) montado em /app/chaves.

# Exemplo de montagem no Deployment da API
volumeMounts:
  - name: jwt-keys
    mountPath: /app/chaves
    readOnly: true

3.2 Atualização de Imagem

Para atualizar para a versão mais recente em um cluster ativo:

kubectl set image deployment/api api=gitlab.inova-af.dev.br:5050/inova-af/esus-af/e-susaf-api:v1.2.5

4. Ordem de Deploy Recomendada

  1. Infraestrutura: Database e Redis (pode ser via StatefulSet ou serviços gerenciados).
  2. Secrets: Aplicar as chaves de criptografia e credenciais de banco.
  3. API: Deployment da API (garantindo o PVC de chaves).
  4. Web: Deployment do Frontend.