infracloud/OCI.md

16 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

Ingress Controllers (cls-dev-nexus)

Nome Namespace Tipo
ingress-nginx-controller ingress-nginx Interno
ingress-nginx-external-controller ingress-nginx Externo

DNS (Cloudflare)

Record Zone Tipo
ms-poc.dev.invista.com.br invista.com.br A
ms-person.dev.invista.com.br invista.com.br A
ms-user.dev.invista.com.br invista.com.br A

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