☸️ 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
- Infraestrutura: Database e Redis (pode ser via
StatefulSetou serviços gerenciados). - Secrets: Aplicar as chaves de criptografia e credenciais de banco.
- API: Deployment da API (garantindo o PVC de chaves).
- Web: Deployment do Frontend.