infracloud/inventcloud/invista/nexus/OCI.md
Tiago Ribeiro 7cc5bd2044 docs: add load balancers, certificates and ingress documentation for Invista OCI
- Mapeamento completo de LBs públicos e privados por compartimento
- Certificado wildcard invista_wildcard (*.invista.com.br) no cmp-shared-inv
- LB Test_Crivo_Dev usando o wildcard via certificate-ids no listener 443
- Ingresses ativos no cls-dev-nexus com endpoints externos e internos
- DNS Cloudflare atualizado com todos os registros *.dev.invista.com.br

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 15:22:57 -03:00

20 KiB

OCI - Oracle Cloud Infrastructure

Este documento documenta a configuração e deployments relacionados à Oracle Cloud Infrastructure (OCI) para os projetos Invent Cloud e Nexus.

Projetos

Invent Cloud

  • Empresa: Invista
  • Projeto: Invent Finance
  • Local: C:\dev\inventcloud\invent-finance\
  • Repositório Azure DevOps: Invent-finance

Nexus (MFE - Micro Frontends)

  • Empresa: Invista
  • Repositório Base: C:\dev\C:devrepos_mfe\
  • Templates Pipeline: C:\dev\repos_mfe\azure-pipelines-templates\

Compartimentos OCI

Ambiente Compartment OCID
Dev ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a
HML ocid1.compartment.oc1..aaaaaaaawc3hj6isbiibbiuokijw7le72ga3qa3qyblsdhrkj5gdygskzmwq
PROD ocid1.compartment.oc1..aaaaaaaazjxk5dkwleol3hjq7huojevotvnjhvy5ngro4jtwcqx2fn2ujara

Namespace OCI

  • Namespace: grbb7qzeuoag

Infraestrutura Existente (Dev)

VCN - Virtual Cloud Network

Nome CIDR OCID
vcn-oke 10.120.0.0/16 ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliatayztbyd6doyk5oglrmrc57jekltu3xnnena6fvruwba

Subnets

Nome CIDR Tipo OCID
sbn-lb-1 10.120.128.0/20 Load Balancer ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaa2ezw57uocis6s2eioypdsnt2p4pwm4fwnjz5jdaqigrm6jaqexeq
sbn-lb-2 10.120.144.0/20 Load Balancer ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaav7qtnmgil2qdt3lz6fnqkdcbymjd2dtjjeyo6y7z3s2omq4uvcqa
sbn-workers-1 10.120.0.0/20 OKE Workers ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaazfomdghi4x4jpluyjooy7ajvsf5y57jq2xcqwf35guodkcn2wrwq
sbn-workers-2 10.120.16.0/20 OKE Workers ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaahaqguwt67kzs2dad2vyz3zpjl5ac7ximeqg55gmsnd33c2qikija
sbn-workers-3 10.120.32.0/20 OKE Workers ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaafzhmhvz2scr6sfsygixz2gjfnecggiirh3rvyhjcmfn3ohmohj6a

Subnet para API Gateway

Usar sbn-lb-1 para deploy do API Gateway:

OCI_SUBNET_OCID=ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaa2ezw57uocis6s2eioypdsnt2p4pwm4fwnjz5jdaqigrm6jaqexeq

Buckets OCI

Status: Bucket mfe-user-dev criado via pipeline

Bucket Ambiente Uso
mfe-user-dev Dev MFE User static hosting

API Gateways

Status: API Gateway criado via pipeline

Gateway Ambiente Uso
mfe-user-gateway Dev MFE User API Gateway

VCNs e Subnets (Dev)

VCN Principal

  • Nome: vcn-oke
  • CIDR: 10.120.0.0/16
  • OCID: ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliatayztbyd6doyk5oglrmrc57jekltu3xnnena6fvruwba

Subnets Disponíveis

Nome CIDR Uso OCID
sbn-lb-1 10.120.128.0/20 Load Balancer (pode ser usada para API Gateway) ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaa2ezw57uocis6s2eioypdsnt2p4pwm4fwnjz5jdaqigrm6jaqexeq
sbn-lb-2 10.120.144.0/20 Load Balancer ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaav7qtnmgil2qdt3lz6fnqkdcbymjd2dtjjeyo6y7z3s2omq4uvcqa
sbn-workers-1 10.120.0.0/20 Workers OKE ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaazfomdghi4x4jpluyjooy7ajvsf5y57jq2xcqwf35guodkcn2wrwq
sbn-workers-2 10.120.16.0/20 Workers OKE ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaahaqguwt67kzs2dad2vyz3zpjl5ac7ximeqg55gmsnd33c2qikija
sbn-workers-3 10.120.32.0/20 Workers OKE ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaafzhmhvz2scr6sfsygixz2gjfnecggiirh3rvyhjcmfn3ohmohj6a

Recomendação para API Gateway

Usar sbn-lb-1 como subnet para o API Gateway:

OCI_SUBNET_OCID=ocid1.subnet.oc1.sa-saopaulo-1.aaaaaaaa2ezw57uocis6s2eioypdsnt2p4pwm4fwnjz5jdaqigrm6jaqexeq

Comandos para verificar buckets

# Verificar namespace
oci os ns get

# Listar buckets (dev)
oci os bucket list --compartment-id "ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a" --all

# Listar buckets (hml)
oci os bucket list --compartment-id "ocid1.compartment.oc1..aaaaaaaawc3hj6isbiibbiuokijw7le72ga3qa3qyblsdhrkj5gdygskzmwq" --all

# Listar buckets (prod)
oci os bucket list --compartment-id "ocid1.compartment.oc1..aaaaaaaazjxk5dkwleol3hjq7huojevotvnjhvy5ngro4jtwcqx2fn2ujara" --all

MFEs - Micro Frontends

Status dos MFEs (18/02/2026)

Repositório Branch Pipeline Pipeline OCI Bucket Status
mfe-user devops azure-pipelines.yml mfe-user-dev Funcionando
mfe-auth devops azure-pipelines-oci.yml mfe-auth-dev 🔄 Pipeline criada
mfe-person devops azure-pipelines-oci.yml mfe-person-dev 🔄 Pipeline criada
mfe-shell devops azure-pipelines-oci.yml mfe-shell-dev 🔄 Pipeline criada
mfe-poc devops azure-pipelines-oci.yml mfe-poc-dev 🔄 Pipeline criada
mfe-formalization devops azure-pipelines-oci.yml mfe-formalization-dev 🔄 Pipeline criada

Pipeline OCI - Estrutura

Todos os MFEs seguem o mesmo padrão de pipeline:

┌─────────────┐
│   BUILD     │ → npm ci + npm run build:dev
└─────────────┘
      │
      ▼
┌─────────────┐
│  UPLOADTO   │ → Upload para OCI Object Storage
│    OCI      │   Bucket: mfe-<nome>-dev
└─────────────┘
      │
      ▼
┌─────────────┐
│  CREATEPAR  │ → Cria Pre-Authenticated Request
└─────────────┘

Arquivos de Pipeline

MFE Arquivo Branch
mfe-user azure-pipelines.yml (unificado AWS+OCI) devops
mfe-auth azure-pipelines-oci.yml devops
mfe-person azure-pipelines-oci.yml devops
mfe-shell azure-pipelines-oci.yml devops
mfe-poc azure-pipelines-oci.yml devops
mfe-formalization azure-pipelines-oci.yml devops

Variable Groups Necessários

Variable Group Variáveis
oci-terraform OCI_TENANCY_OCID, OCI_USER_OCID, OCI_FINGERPRINT, OCI_PRIVATE_KEY_B64, OCI_REGION, TF_VAR_compartment_parent_ocid
mfe-credentials CLOUDFLARE_ZONE_ID, CLOUDFLARE_API_TOKEN
aws-credentials-dev Credenciais AWS (para pipeline unificada)

Commits Recentes (mfe-user)

  • 19dced5 (18/02/2026) - chore: remove DeployToAPIGateway stage from pipeline
  • 9948430 (18/02/2026) - fix: use correct variable name TF_VAR_compartment_parent_ocid
  • 6836035 (18/02/2026) - fix: improve bucket creation error handling
  • fd780bd (18/02/2026) - fix: correct OCI CLI commands for namespace

MS-POC - Microservice POC

Status: NÃO PUBLICADO EM OBJECT STORAGE

O ms-poc está configurado no cluster Kubernetes (OKE) conforme ingresses.yaml, mas NÃO foi publicado em nenhum Object Storage.

Ingressos ms-poc (Kubernetes)

# Internal
- host: ms-poc.dev-01.interno.invista.com.br
  namespace: nexus-services

# External  
- host: ms-poc.dev.invista.com.br
  namespace: nexus-services

Próximos Passos para ms-poc

Para publicar no OCI Object Storage:

  1. Criar bucket: nexus-ms-poc-dev
  2. Criar pipeline Azure DevOps para build e upload
  3. Configurar API Gateway ou usar OKE para deploy

Clusters OKE (Oracle Kubernetes Engine)

Clusters Disponíveis (Atualizado 20/02/2026)

Clusters DEV (Terraform - Nexus)

Nome K8s Version Status Endpoint Público Endpoint Privado ArgoCD
cls-dev-nexus v1.34.1 ACTIVE 136.248.124.22:6443 10.110.133.10:6443 Sim
cls-dev-barramento v1.34.1 ACTIVE 137.131.198.242:6443 10.110.143.24:6443
cls-dev-observabilidade v1.34.1 ACTIVE 163.176.189.0:6443 10.110.143.239:6443

Clusters DEV (Legado)

Nome K8s Version Status Endpoint Nodes
dev-cls-1 v1.34.1 ACTIVE 129.148.14.249:6443 1
dev-cls-2 v1.34.1 ACTIVE 192.29.141.170:6443 1
dev-cls-3 v1.34.1 ACTIVE 192.29.130.196:6443 1

Clusters PRD

Nome K8s Version Status Endpoint
prd-cls-1 v1.34.1 ACTIVE 168.75.75.189:6443
prd-cls-2 v1.34.1 ACTIVE 129.159.57.212:6443
prd-cls-3 v1.34.1 ACTIVE 168.75.89.161:6443

Cluster OCIDs

Clusters DEV (Terraform - Nexus)

Nome Cluster OCID
cls-dev-nexus ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaaxernqctehleyduukfuyfgcnmm6fuk5l4mkgdaocsdcobrewkvc3a
cls-dev-barramento ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaancdtl3rrcblzsifl6h3vguxhj5byqldtzakgg7tv5cifn2eknv6q
cls-dev-observabilidade ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaaxbelg5ztrdn3ca3tm5mohq363c5v6yhmjhbwlgyndcrszb62robq

Clusters DEV (Legado)

Nome Cluster OCID
dev-cls-1 ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaaltungrmx3r4d36wmahz5frdfrrve5zarxgj73fxz6csxkn6sthwa
dev-cls-2 ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaa3km66vd2xw2t472cegygakgemujolgikfay4wplw6cmyljv7pfiq
dev-cls-3 ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaavcroprepvzvhjho56j4bu7fymnrrqlzt7bagjyjeocxco2kx65uq

Clusters PRD

Nome Cluster OCID
prd-cls-1 ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaamwbvpuy62wuf7nghfefo4i2wlmt64hm2oy6dp6y3ncmdyncpmrva
prd-cls-2 ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaacodepi7lmp3pt5teu5d7zqelonuuxp43ptcmdupvncnmmv6prhua
prd-cls-3 ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaal6d462vhcm3mn7jnxvzqqdn3sbebq7he7izcfd2v5ckws6t46wfq

Comando para obter kubeconfig

# cls-dev-nexus (ArgoCD + Microserviços)
oci ce cluster create-kubeconfig \
  --cluster-id ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaaxernqctehleyduukfuyfgcnmm6fuk5l4mkgdaocsdcobrewkvc3a \
  --file $HOME/.kube/config \
  --region sa-saopaulo-1 \
  --overwrite

# cls-dev-barramento
oci ce cluster create-kubeconfig \
  --cluster-id ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaancdtl3rrcblzsifl6h3vguxhj5byqldtzakgg7tv5cifn2eknv6q \
  --file $HOME/.kube/config \
  --region sa-saopaulo-1 \
  --overwrite

# cls-dev-observabilidade
oci ce cluster create-kubeconfig \
  --cluster-id ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaaxbelg5ztrdn3ca3tm5mohq363c5v6yhmjhbwlgyndcrszb62robq \
  --file $HOME/.kube/config \
  --region sa-saopaulo-1 \
  --overwrite

# prd-cls-2 (ArgoCD PROD)
oci ce cluster create-kubeconfig \
  --cluster-id ocid1.cluster.oc1.sa-saopaulo-1.aaaaaaaacodepi7lmp3pt5teu5d7zqelonuuxp43ptcmdupvncnmmv6prhua \
  --file $HOME/.kube/config \
  --region sa-saopaulo-1 \
  --overwrite

ArgoCD

cls-dev-nexus (DEV)

Item Valor
Namespace argocd
URL (LoadBalancer) http://10.110.135.3
Usuário admin
Senha Ver arquivo ~/.ssh/oci-credentials.md

Aplicações ArgoCD (cls-dev-nexus)

Aplicação Sync Status Health Status
ms-poc-dev-cls-dev-nexus OutOfSync Healthy
ms-person-dev-cls-dev-nexus Unknown Healthy
ms-user-dev-cls-dev-nexus Unknown Healthy
ms-auth-external-dev-cls-dev-nexus OutOfSync Degraded
ms-auth-sso-dev-cls-dev-nexus OutOfSync Healthy
ms-belt-dev-cls-dev-nexus OutOfSync Healthy
ms-notify-dev-cls-dev-nexus OutOfSync Healthy
ms-parameter-dev-cls-dev-nexus OutOfSync Healthy
ms-barramento-dev-cls-dev-nexus Synced Healthy
ingress-nginx Synced Healthy
ingress-nginx-external Synced Healthy

prd-cls-2 (PROD)

ArgoCD está instalado no cluster prd-cls-2 (compartment PRD).

Item Valor
Namespace argocd
Serviço argocd-server (LoadBalancer)
IP Interno 10.130.128.46
Porta 80 (HTTP), 443 (HTTPS)
Usuário admin
Senha Ver secret argocd-initial-admin-secret no namespace argocd

Como obter a senha

kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath='{.data.password}' | base64 -d

Microserviços Deployados (cls-dev-nexus)

Namespace nexus-services

Serviço Réplicas Status Imagem
ms-poc 2/2 Running OCIR
ms-person 2/2 Running OCIR
ms-user 2/2 Running OCIR
ms-auth-external 2/3 ⚠️ Degraded OCIR
ms-auth-sso 2/2 Running OCIR
ms-belt 2/2 Running OCIR
ms-notify 2/2 Running OCIR
ms-parameters 2/2 Running OCIR

Namespace integration-hub

Serviço Réplicas Status
ms-barramento 2/2 Running

Load Balancers com Acesso Externo

Levantamento realizado em 24/02/2026 via OCI CLI + kubectl.

Resumo por Compartimento

Compartimento Total LBs LBs Públicos
cmp-dev-insign 1 0
cmp-dev-nexus 5 1
cmp-hml-nexus 3 0
cmp-prod-nexus 3 0
cmp-shared-inv 1 0
DEV 8 0
HML 4 3 (sem acesso / backends vazios)
PRD 7 0

LBs Públicos Ativos

IP Público Cluster Compartimento Criado em
137.131.236.202 cls-dev-nexus cmp-dev-nexus 09/02/2026
163.176.195.151 desconhecido (sem acesso) HML 09/01/2026
144.22.206.255 desconhecido (sem acesso) HML 10/01/2026
163.176.250.178 desconhecido (sem acesso) HML 10/01/2026

Os 3 LBs do compartimento HML têm backends vazios e os clusters OKE correspondentes não estão acessíveis com as credenciais atuais (NotAuthorizedOrNotFound).


Ingress Controllers (cls-dev-nexus)

Nome Namespace Tipo IP / Serviço
ingress-nginx-controller ingress-nginx Interno 10.110.143.54
ingress-nginx-external-controller ingress-nginx Externo 137.131.236.202

Ingresses Ativos — cls-dev-nexus

Ingress Namespace Host LB Porta
ms-barramento integration-hub ms-barramento.nexos-dev.interno.invista.com.br externo 80
ms-auth-external-public nexus-services ms-auth-external.dev.invista.com.br externo 80
ms-auth-sso nexus-services ms-auth-sso.dev.invista.com.br externo 80
ms-belt-external nexus-services ms-belt.dev.invista.com.br externo 80
ms-notify-external nexus-services ms-notify.dev.invista.com.br externo 80
ms-parameters nexus-services ms-parameters.dev.invista.com.br externo 80
ms-poc-external nexus-services ms-poc.dev.invista.com.br externo 80
ms-belt nexus-services ms-belt.dev-01.interno.invista.com.br externo 80
ms-notify nexus-services ms-notify.dev-01.interno.invista.com.br externo 80
ms-person nexus-services ms-person.dev-01.interno.invista.com.br externo 80
ms-user nexus-services ms-user.dev-01.interno.invista.com.br externo 80
ms-auth-external nexus-services ms-auth-external.dev-01.interno.invista.com.br interno 80
ms-poc nexus-services ms-poc.dev-01.interno.invista.com.br interno 80

DNS (Cloudflare)

Record Zone Tipo IP
ms-poc.dev.invista.com.br invista.com.br A 137.131.236.202
ms-person.dev.invista.com.br invista.com.br A 137.131.236.202
ms-user.dev.invista.com.br invista.com.br A 137.131.236.202
ms-auth-external.dev.invista.com.br invista.com.br A 137.131.236.202
ms-auth-sso.dev.invista.com.br invista.com.br A 137.131.236.202
ms-belt.dev.invista.com.br invista.com.br A 137.131.236.202
ms-notify.dev.invista.com.br invista.com.br A 137.131.236.202
ms-parameters.dev.invista.com.br invista.com.br A 137.131.236.202

Certificados SSL

OCI Certificates Service

Nome Compartimento CN SANs Tipo Válido até Status
invista_wildcard cmp-shared-inv *.invista.com.br *.invista.com.br, invista.com.br IMPORTED 08/01/2027 ACTIVE

OCID:

ocid1.certificate.oc1.sa-saopaulo-1.amaaaaaasks3yliasqn6hqvmobj5cfkw4ukz2k272oiuhh4ktrwrhvfd4egq
  • Algoritmo: RSA 2048 / SHA256
  • Criado por: marcio.hikosaka@oracle.com em 08/12/2025

Load Balancer usando o certificado wildcard

LB Compartimento IP Visibilidade Uso
Test_Crivo_Dev cmp-shared-inv 10.8.4.127 Privado Listener 443 via certificate-ids

Configuração do listener 443 (listener_lb_2025-1205-1016):

  • Protocolo: HTTP (SSL termination no LB)
  • TLS: TLSv1.2, TLSv1.3
  • Cipher suite: oci-default-ssl-cipher-suite-v1

Outros certificados carregados no Test_Crivo_Dev (Cloudflare Origin):

Nome Issuer SAN Válido até
Certificado Cloudflare Origin CA *.invista.com.br 04/12/2040
invista_origin Cloudflare Origin CA *.invista.com.br 04/12/2040

O ingress-nginx-external-controller (137.131.236.202) não usa nenhum certificado — serve o fake cert padrão do nginx-ingress. O wildcard invista_wildcard ainda não está configurado no cluster cls-dev-nexus.


Pipelines Azure DevOps (Branch devops)

Repositórios com deploy OCI

Repositório Cluster Default Namespace
ms-poc cls-dev-nexus nexus-services
ms-person cls-dev-nexus nexus-services
ms-user cls-dev-nexus nexus-services

Templates de Pipeline

Template Branch
azure-pipelines-templates feature/cd-deploy-oci-oke
tf_oci_clusters main

Problemas Conhecidos

Problema Serviço Cluster Status
CrashLoopBackOff ms-auth-external-67fd9cf9ff-fktxc cls-dev-nexus Pendente investigação
ImagePullBackOff nats-0 (namespace stream) cls-dev-nexus Pendente investigação

Compartimentos OCI (Completo)

Estrutura de Compartimentos

Nome Descrição Parent
cmp-top-invista Compartimento Root Invista Tenancy
cmp-top-c6 Compartimento Root C6 Tenancy
cmp-top-cerealista Compartimento Root Cerealista Tenancy
cmp-top-gestora Compartimento Root Gestora Tenancy
Lift-root Lift Services Compartment Tenancy
OKE Compartment pai para DEV/HML/PRD OKE Tenancy
OCM Serviço de migração de instancias Tenancy

Compartimentos de Ambiente

Nome Descrição Parent
cmp-dev-inv Compartimento Desenvolvimento cmp-top-invista
cmp-hml-inv Compartimento homologação cmp-top-invista
cmp-prod-inv Compartimento Prod cmp-top-invista
cmp-shared-inv Compartimento Shared cmp-top-invista
DEV Compartment dev OKE
HML Compartment hml OKE
PRD Compartment prd OKE

Compartimentos de Projeto

Nome Ambiente Descrição
cmp-dev-c6 Dev Compartimento Desenvolvimento C6
cmp-hml-c6 HML Compartimento homologação C6
cmp-prod-c6 Prod Compartimento Prod C6
cmp-dev-crivo Dev Crivo desenvolvimento
cmp-crivo-dev Dev Crivo desenvolvimento
cmp-crivo-prod Prod Crivo Produção
cmp-dev-datalake Dev Datalake desenvolvimento
cmp-prod-datalake Prod Datalake produção
cmp-dev-gest Dev ambiente de desenvolvimento Gestora
cmp-prod-gest Prod Compartimento Prod Gestora
cmp-dev-insign Dev Insign desenvolvimento
cmp-dev-mull Dev Mulling desenvolvimento
cmp-prod-mull Prod Mulling produção
cmp-dev-netfactor Dev Netfactor desenvolvimento
cmp-prod-netfactor Prod Netfactor produção
cmp-dev-nexus Dev Nexus desenvolvimento (Terraform)
cmp-hml-nexus HML Nexus homologação (Terraform)
cmp-prod-nexus Prod Nexus produção (Terraform)
cmp-prod-cer Prod Compartimento Prod Cerealista
cpm-dev-automacao Dev Desenvolvimento de automação
cmp-prod-automacao Prod Produção automação
cmp-dev-aI4finance Dev AI4Finance desenvolvimento
cmp-prod-AI4Finance Prod AI4Finance produção

Referências

  • Templates Pipeline: C:\dev\repos_mfe\azure-pipelines-templates\
  • Infra Terraform: C:\dev\tf_oci_clusters\
  • Clusters Config: C:\dev\repos_mfe\azure-pipelines-templates\config\oke-clusters.json