diff --git a/inventcloud/invista/nexus/OCI-NETWORK-ANALYSIS.md b/inventcloud/invista/nexus/OCI-NETWORK-ANALYSIS.md new file mode 100644 index 0000000..ef1bf77 --- /dev/null +++ b/inventcloud/invista/nexus/OCI-NETWORK-ANALYSIS.md @@ -0,0 +1,229 @@ +# OCI - Análise de Rede e Compartments (DEV Nexus) + +> **Data:** 2026-02-25 | **Responsável:** Tiago Ribeiro +> **Contexto:** Análise realizada para suporte à geração de scripts Terraform via Resource Discovery (demanda: Ana Guadagnin) + +--- + +## 1. Mapa de Compartments + +### Estrutura Confirmada + +``` +invistacloud (root) +├── cmp-top-invista +│ └── cmp-dev-inv +│ └── cmp-dev-nexus ✅ ATIVO — recursos do ambiente DEV +│ +└── OKE + └── DEV ← VCNs de rede ficam neste compartment + └── cmp-dev-nexus 🗑️ DELETADO em 2026-02-25 (estava vazio) +``` + +### Recursos em `cmp-dev-nexus` (cmp-top-invista > cmp-dev-inv) + +| Recurso | Nome | Estado | +|---|---|---| +| OKE Cluster | `cls-dev-nexus` | ACTIVE — v1.34.1 | +| OKE Cluster | `cls-dev-barramento` | ACTIVE — v1.34.1 | +| OKE Cluster | `cls-dev-observabilidade` | ACTIVE — v1.34.1 | +| Compute (workers) | `oke-*` (9x VM.Standard.E4.Flex) | RUNNING | +| Load Balancers | 5x (OKE-managed) | ACTIVE | +| API Gateway | `api-gateway-nexus-dev` | ACTIVE | + +--- + +## 2. Rede — Situação Atual + +### VCNs em Uso + +| VCN | CIDR | Compartment | Uso | Gerenciada por | +|---|---|---|---|---| +| `vcn-oke` | 10.110.0.0/16 | OKE > DEV | OKE clusters (DEV Nexus) | Terraform (`tf_oci_clusters`) | +| `VCN-DEV` | 10.6.0.0/16 | cmp-dev-inv | API Gateway + outros serviços | Manual | +| `vcn-oke` | 10.120.0.0/16 | OKE > DEV | Clusters legado dev-cls-1/2/3 | Terraform | + +### Subnets da `vcn-oke` (10.110.0.0/16) — VCN ativa dos clusters + +| Subnet | CIDR | Tipo | Uso | +|---|---|---|---| +| `sbn-workers-1` | 10.110.0.0/20 | Pública | OKE worker nodes | +| `sbn-workers-2` | 10.110.16.0/20 | Pública | OKE worker nodes | +| `sbn-workers-3` | 10.110.32.0/20 | Pública | OKE worker nodes | +| `sbn-lb-1` | 10.110.128.0/20 | Pública | Load Balancers OKE | +| `sbn-lb-2` | 10.110.144.0/20 | Pública | Load Balancers OKE | +| `sbn-api-gateway` | 10.110.192.0/20 | **Privada** | **Criada para API Gateway — não utilizada** | + +### Subnets da `VCN-DEV` (10.6.0.0/16) + +| Subnet | CIDR | Tipo | Uso atual | +|---|---|---|---| +| `SBNT-DEV` | 10.6.0.0/24 | Privada | **API Gateway `api-gateway-nexus-dev`** | +| `SBNT-DEV-AUTOMATION` | 10.6.1.0/24 | Privada | Automação | +| `SBNT-DEV-LB` | 10.6.3.0/24 | Privada | Load Balancer outros serviços | + +### Topologia Atual (cross-VCN via DRG) + +``` +Internet + │ + ▼ +API Gateway (api-gateway-nexus-dev) + │ + └── SBNT-DEV (10.6.0.0/24) ── VCN-DEV (10.6.0.0/16) + │ + DRG ← comunicação cross-VCN + │ + vcn-oke (10.110.0.0/16) + │ + ┌───────────────────┼───────────────────┐ + │ │ │ + sbn-workers-1/2/3 sbn-lb-1/2 sbn-api-gateway + (OKE nodes) (LBs OKE) (vazia / disponível) +``` + +--- + +## 3. Ações Realizadas em 2026-02-25 + +### 3.1 ✅ Compartment duplicado vazio — DELETADO + +**Problema:** Existiam 2 compartments `cmp-dev-nexus`: +- `OKE > DEV > cmp-dev-nexus` — vazio, sem uso, criado por ciclo anterior do Terraform +- `cmp-top-invista > cmp-dev-inv > cmp-dev-nexus` — com todos os recursos ativos + +**Verificação:** 0 VCNs, 0 instâncias, 0 clusters, 0 LBs, 0 API Gateways no vazio. + +**Ações:** +- Compartment vazio deletado via OCI CLI + - OCID deletado: `ocid1.compartment.oc1..aaaaaaaardqptx2truouyqtmj2awx5seh2rorh6xw4fszv2sqq7tmbohglnq` + - Status final OCI: `DELETED` (renomeado para `cmp-dev-nexus.ebThJ41h`) +- Terraform corrigido: adicionado `create_cluster_compartment = false` em `environments/dev/terraform.ci.tfvars` + - Repo: `tf_oci_clusters` | Commit: `5a127e3a` | Branch: `main` + - Motivo: evitar que o Terraform recrie o compartment automaticamente no próximo apply + +### 3.2 ✅ 8 VCNs orphans — DELETADAS + +**Problema:** 8 VCNs `vcn-oke` (10.110.0.0/16) abandonadas no compartment `OKE > DEV`, geradas por ciclos anteriores de create/destroy de clusters OKE sem destruição dos recursos de rede. + +**Verificação:** +- 0 VNICs / instâncias em todas +- 0 DRG attachments em todas +- Nenhuma no Terraform state atual → necessária exclusão manual + +**Recursos removidos (por VCN, x8):** + +| Recurso | Quantidade total | +|---|---| +| Subnets (sbn-workers-1/2/3, sbn-lb-1/2) | 40 | +| Route Tables (rt-public, rt-workers) | 16 | +| Security Lists (sl-lb, sl-workers) | ~16 | +| DHCP Options (dhcp-oke-dns) | 8 | +| Internet Gateways (igw-oke) | 8 | +| NAT Gateways (nat-oke) | 8 | +| Service Gateways (sgw-oke) | 8 | +| **VCNs** | **8** | + +--- + +## 4. Problema Pendente — Desalinhamento Arquitetural de Rede + +### Situação + +O `api-gateway-nexus-dev` está em uma VCN diferente dos clusters OKE que ele serve: + +| Componente | VCN | Compartment | +|---|---|---| +| `api-gateway-nexus-dev` | `VCN-DEV` (10.6.0.0/16) — subnet `SBNT-DEV` | `cmp-dev-inv` | +| `cls-dev-nexus` / `cls-dev-barramento` / `cls-dev-observabilidade` | `vcn-oke` (10.110.0.0/16) | `OKE > DEV` | + +A comunicação entre API Gateway e OKE hoje ocorre via **DRG (Dynamic Routing Gateway)** — ambas as VCNs têm DRG attachment ativo: +- `ATT-VCN-DEV` (VCN-DEV) +- `ATT-VCN-OKE-DEV` (vcn-oke) + +### Por que `VCN-DEV` não é adequada para OKE + +| Limitação | Detalhe | +|---|---| +| Sem Internet Gateway | Workers não conseguem puxar imagens de container | +| Sem NAT Gateway | Sem egress para internet em subnets privadas | +| Subnets /24 muito pequenas | 254 IPs por subnet — insuficiente para node pools + pods | +| Não gerenciada pelo Terraform | Criada manualmente, sem padronização | + +--- + +## 5. Opções para Resolução + +### Opção A — Migrar API Gateway para `vcn-oke` ⭐ Recomendada + +Mover o `api-gateway-nexus-dev` para a subnet `sbn-api-gateway` (10.110.192.0/20) que já existe dentro da `vcn-oke` — criada pelo Terraform especificamente para esse fim (`enable_api_gateway_mfe = true`). + +**Benefícios:** +- API Gateway e OKE na mesma VCN — comunicação direta sem DRG +- `sbn-api-gateway` já provisionada e disponível +- Alinha com a arquitetura gerenciada pelo Terraform +- Reduz custo (sem tráfego cross-VCN pelo DRG) +- Simplifica troubleshooting + +**Limitação:** API Gateway no OCI **não permite troca de subnet in-place** — é necessário recriar. + +**Passos para migração:** +1. Criar novo API Gateway em `sbn-api-gateway` (vcn-oke) + ```bash + oci api-gateway gateway create \ + --compartment-id "ocid1.compartment.oc1..aaaaaaaahycc62za6ikthlhauvarvbdixc7xpjjmcrame3cirhu2kz74ddma" \ + --display-name "api-gateway-nexus-dev" \ + --subnet-id "" \ + --endpoint-type "PUBLIC" + ``` +2. Reconfigurar todos os Deployments e Routes no novo gateway +3. Atualizar DNS (Cloudflare) apontando para o novo endpoint hostname +4. Validar funcionamento de todas as rotas +5. Remover o gateway antigo (`api-gateway-nexus-dev` em VCN-DEV) + +**Referência subnet destino:** +``` +Nome: sbn-api-gateway +CIDR: 10.110.192.0/20 +VCN: vcn-oke (10.110.0.0/16) — compartment OKE > DEV +``` + +--- + +### Opção B — Manter situação atual (DRG) + +Manter API Gateway na `VCN-DEV` conectado via DRG à `vcn-oke`. Funcional, sem risco imediato. + +**Prós:** Zero impacto — nenhuma mudança necessária +**Contras:** Latência adicional via DRG, custo de tráfego inter-VCN, maior complexidade de troubleshooting + +--- + +### Opção C — Migrar toda a rede OKE para `VCN-DEV` ❌ Não recomendada + +Recriar os clusters OKE usando a `VCN-DEV` como base. + +**Por que não:** Exigiria adicionar IGW + NAT à VCN-DEV, expandir subnets para /20, recriar 3 clusters com downtime — alto risco e esforço sem benefício claro sobre a Opção A. + +--- + +## 6. Recomendação Final + +Seguir com a **Opção A**, planejando janela de manutenção para migrar o `api-gateway-nexus-dev` para a `sbn-api-gateway` dentro da `vcn-oke`. + +**Antes da migração, confirmar com equipe Nexus/Invent Cloud:** +- Quais consumers do API Gateway precisam ter DNS atualizado +- Janela de manutenção disponível + +--- + +## Referências + +- Repo Terraform: `tf_oci_clusters` (Azure DevOps — CN-Squad / Invista FIDC - Nexus) +- Compartment DEV Nexus OCID: `ocid1.compartment.oc1..aaaaaaaahycc62za6ikthlhauvarvbdixc7xpjjmcrame3cirhu2kz74ddma` +- VCN oke OCID: `ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliapqrmikfzagpgqohuzjqik3hx63w7r2uajiqv5krvxkda` +- VCN-DEV OCID: `ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliatoq6uvqqak3kax775ksd2jastvgsbiki7mgj6jzue6dq` + +--- + +*Atualizado em: 2026-02-25*