infracloud/inventcloud/invista/nexus/OCI-DEV-NEXUS.md
Tiago Ribeiro 96602a1b24 docs(nexus): adiciona diagramas de arquitetura e fluxo de tráfego DEV Nexus
- Diagrama geral: Internet → Cloudflare → OCI → serviços
- Fluxo API backend: Cloudflare → LB Test_Crivo → api-gw-nexus-dev → DRG → OKE
- Fluxo MFE frontend: planejado (pendente DRG attach)
- Mapa de compartments com recursos dentro/fora
- Tabela: Terraform vs Manual vs Pipeline CI por recurso

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-25 13:17:07 -03:00

561 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OCI — Ambiente DEV Nexus (cmp-dev-nexus)
> **Data:** 2026-02-25 | **Responsável:** Tiago Ribeiro
> **Contexto:** Documentação completa do ambiente DEV Nexus — recursos OCI e Terraform (`tf_oci_clusters`)
---
## 0. Diagrama Geral — Fluxo de Tráfego e Recursos
### 0.1 Fluxo Completo: Internet → Cloudflare → OCI → Serviços
```
┌─────────────────────────────────────────────────────────────────────────────────────┐
│ INTERNET │
└──────────────────────────────┬──────────────────────────────────────────────────────┘
┌──────────▼──────────┐
│ CLOUDFLARE │
│ *.invista.com.br │
│ (DNS + Proxy/WAF) │
└──────┬──────────────┘
┌────────────────┼─────────────────────┐
│ APIs backend │ MFE (frontend) │ Acesso direto
│ (proxied) │ (planejado ⏳) │ (public LB)
▼ ▼ ▼
┌─────────────────┐ ┌──────────────────┐ ┌──────────────────────┐
│ LB Test_Crivo │ │ LB Test_Crivo │ │ OKE Public LB │
│ 10.8.4.127 │ │ Dev (VCN-Shared) │ │ 137.131.236.202 │
│ VCN-Shared │ │ (rota pendente) │ │ cls-dev-nexus │
│ cmp-shared-inv │ └──────────────────┘ └──────────────────────┘
│ [MANUAL] │ │ │
└────────┬────────┘ │ │
│ │ │
│ DRG-Invista-Shared │
│ (VCN-Shared ↔ VCN-DEV) │
▼ │ │
┌─────────────────────────────────────────────────┼──────────────────────────────────┐
│ VCN-DEV (10.6.0.0/16) — cmp-dev-inv [MANUAL] │ │
│ │ │
│ ┌──────────────────────────────────────────┐ │ │
│ │ api-gateway-nexus-dev [MANUAL] │ │ │
│ │ PRIVATE · IP: 10.6.0.123 │ │ │
│ │ Subnet: SBNT-DEV (10.6.0.0/24) │ │ │
│ │ │ │ │
│ │ Deployments: │ │ │
│ │ /api/auth /api/user │ │ │
│ │ /api/person /api/role │ │ │
│ │ /api/sso /api/cache │ │ │
│ │ /api/commercial-manager … │ │ │
│ └────────────────────┬─────────────────────┘ │ │
│ │ DRG (VCN-DEV ↔ vcn-oke) │ │
└───────────────────────┼─────────────────────────┼──────────────────────────────────┘
│ │
└────────────┬────────────┘
┌────────────────────────────────────▼────────────────────────────────────────────────┐
│ vcn-oke (10.110.0.0/16) — cmp-dev-inv [TERRAFORM ✅] │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────┐ │
│ │ sbn-lb-1 (10.110.128.0/20) · sbn-lb-2 (10.110.144.0/20) — PÚBLICAS │ │
│ │ │ │
│ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌─────────────┐ │ │
│ │ │ OKE LB │ │ OKE LB │ │ OKE LB │ │ OKE LB pub │ │ │
│ │ │ 10.110.133.131│ │ 10.110.135.3 │ │ 10.110.129.64 │ │137.131.236.2│ │ │
│ │ │ cls-barramento│ │ cls-nexus │ │ cls-obs. │ │ cls-nexus │ │ │
│ │ └───────┬───────┘ └──────┬────────┘ └──────┬────────┘ └──────┬──────┘ │ │
│ └──────────┼─────────────────┼──────────────────┼─────────────────┼─────────┘ │
│ │ │ │ │ │
│ ┌──────────┼─────────────────┼──────────────────┼─────────────────┼─────────┐ │
│ │ sbn-workers-1/2/3 (10.110.032.0/20) — PÚBLICAS — cmp-dev-nexus │ │
│ │ │ │
│ │ ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────┐ │ │
│ │ │ cls-dev-nexus │ │ cls-dev-barramento │ │ cls-dev-obs. │ │ │
│ │ │ [TERRAFORM ✅] │ │ [TERRAFORM ✅] │ │ [TERRAFORM ✅] │ │ │
│ │ │ np-dev-1 (x3 VMs) │ │ np-dev-2 (x3 VMs) │ │ np-dev-3 (x3) │ │ │
│ │ │ ArgoCD ✅ │ │ ArgoCD ✅ │ │ ArgoCD ✅ │ │ │
│ │ │ K8s v1.34.1 │ │ K8s v1.34.1 │ │ K8s v1.34.1 │ │ │
│ │ └─────────────────────┘ └─────────────────────┘ └─────────────────┘ │ │
│ └───────────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────┐ │
│ │ sbn-api-gateway (10.110.192.0/20) — PRIVADA [TERRAFORM ✅] │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ api-gateway-mfe-dev [TERRAFORM ✅] │ │ │
│ │ │ PRIVATE · IP: 10.110.198.250 │ │ │
│ │ │ Deployments: mfe-user → nexus-mfe-user-development (Object Storage) │ │ │
│ │ └──────────────────────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────────────┘
┌───────────▼──────────────┐
│ OCI Object Storage │
│ Namespace: grbb7qzeuoag │
│ nexus-mfe-user-dev │
│ mfe-shell-dev │
│ [MANUAL / Pipeline CI] │
└───────────────────────────┘
```
---
### 0.2 Fluxo API Backend (atual)
```
Browser
└─► Cloudflare (*.invista.com.br) [DNS Proxy + WAF]
LB Test_Crivo_Dev (10.8.4.127 — VCN-Shared — cmp-shared-inv)
Cert: *.invista.com.br (Cloudflare Origin CA)
│ roteamento por hostname
api-gateway-nexus-dev (PRIVATE — 10.6.0.123 — VCN-DEV)
/api/auth /api/user /api/person /api/sso …
│ DRG: VCN-DEV ↔ vcn-oke
OKE Load Balancers internos (10.110.128-143.x — sbn-lb-1/2)
K8s Services / Ingress (cls-dev-nexus)
Pods (worker nodes — sbn-workers-1/2/3 — cmp-dev-nexus)
```
---
### 0.3 Fluxo MFE Frontend (planejado ⏳)
```
Browser
└─► Cloudflare (mfe-user-dev.invista.com.br) [DNS Proxy]
▼ ⏳ PENDENTE: DRG attach vcn-oke → DRG-Invista-Shared
LB Test_Crivo_Dev (10.8.4.127 — VCN-Shared)
│ rota: mfe-user-dev.invista.com.br → 10.110.198.250:443
│ DRG: VCN-Shared → vcn-oke
api-gateway-mfe-dev (PRIVATE — 10.110.198.250 — sbn-api-gateway)
│ / → index.html /{path*} → arquivos estáticos
OCI Object Storage
nexus-mfe-user-development (namespace: grbb7qzeuoag)
Atual (sem DNS):
https://guhal72tzyekzchzamhhi3lvgi.apigateway.sa-saopaulo-1.oci.customer-oci.com/
```
---
### 0.4 Mapa de Compartments e Recursos
```
invistacloud (root)
├── cmp-top-invista
│ └── cmp-dev-inv ──────────────────────────────────────────────────────────────┐
│ │ │
│ │ [TERRAFORM ✅] vcn-oke (10.110.0.0/16) │
│ │ [TERRAFORM ✅] api-gateway-mfe-dev (10.110.198.250) │
│ │ [TERRAFORM ✅] observability (alarms, log group, dashboards) │
│ │ [MANUAL] VCN-DEV (10.6.0.0/16) │
│ │ [MANUAL] api-gateway-nexus-dev (PRIVATE, 10.6.0.123) │
│ │ [MANUAL] DRG attachments (VCN-DEV ↔ vcn-oke) │
│ │ [PIPELINE CI] buckets: mfe-shell-dev │
│ │ │
│ └── cmp-dev-nexus ────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ [TERRAFORM ✅] cls-dev-nexus (k8s v1.34.1, x3 VMs) │ │
│ │ [TERRAFORM ✅] cls-dev-barramento (k8s v1.34.1, x3 VMs) │ │
│ │ [TERRAFORM ✅] cls-dev-observabilidade (k8s v1.34.1, x3 VMs)│ │
│ │ [OKE-managed] 5x Load Balancers (OKE Services) │ │
│ │ [MANUAL] buckets: tfstate-*, invista-inventcloud-bucket3│ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
└── cmp-shared-inv │
[MANUAL] LB Test_Crivo_Dev (10.8.4.127, VCN-Shared 10.8.0.0/16) │
[MANUAL] DRG-Invista-Shared │
OKE > DEV ←── VCNs orphans deletadas em 2026-02-25 ────────────────────────────┘
```
---
### 0.5 O que é Terraform vs Manual vs Pipeline CI
| Recurso | Gerenciado por | Repositório |
|---|---|---|
| VCN `vcn-oke` (10.110.0.0/16) + subnets + gateways | **Terraform** | `tf_oci_clusters/modules/network` |
| OKE clusters (x3) + node pools | **Terraform** | `tf_oci_clusters/modules/oke_cluster` |
| `api-gateway-mfe-dev` + deployments MFE | **Terraform** | `tf_oci_clusters/modules/api_gateway_mfe` |
| ArgoCD (Helm v7.3.0) em cada cluster | **Terraform** (null_resource) | `tf_oci_clusters/environments/dev/argocd.tf` |
| Observabilidade (alarms, log group, dashboards) | **Terraform** | `tf_oci_clusters/modules/observability` |
| Compartments `cmp-dev-nexus` / `cmp-dev-inv` | **Terraform** (flags `create_*=false` = não recria) | `tf_oci_clusters` |
| `VCN-DEV` (10.6.0.0/16) + subnets + gateways | **Manual** (OCI Console) | — |
| `api-gateway-nexus-dev` (PRIVATE) + deployments | **Manual** (OCI Console) | — |
| LB `Test_Crivo_Dev` (10.8.4.127) | **Manual** | — |
| DRG-Invista-Shared + attachments | **Manual** | — |
| DNS Cloudflare (*.invista.com.br) | **Manual** (API Cloudflare) | — |
| Object Storage buckets (mfe-*) | **Pipeline CI** (azure-pipelines.yml) | Repos dos MFEs |
| OKE Load Balancers (5x) | **OKE-managed** (K8s Service) | Apps no cluster |
| Kubeconfigs (`~/.kube/config-dev-*`) | **Terraform** (local-exec) | Gerado no apply |
---
## 1. Compartments
### Hierarquia
```
invistacloud (root)
└── cmp-top-invista
└── cmp-dev-inv ← compartment pai (local.compartment_id no Terraform)
└── cmp-dev-nexus ← clusters OKE, node pools, LBs
```
| Compartment | OCID | Uso |
|---|---|---|
| `cmp-dev-inv` | `ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a` | VCN, API Gateway, Object Storage, Observabilidade |
| `cmp-dev-nexus` | `ocid1.compartment.oc1..aaaaaaaahycc62za6ikthlhauvarvbdixc7xpjjmcrame3cirhu2kz74ddma` | Clusters OKE, Node Pools, Load Balancers |
> **Nota:** O Terraform usa `cmp-dev-inv` como compartment raiz do ambiente (`existing_compartment_id`) e `cmp-dev-nexus` como compartment dos clusters (`cluster_compartment_id_map`).
---
## 2. OKE Clusters
### Clusters Ativos
| # | Cluster | OCID (sufixo) | Versão K8s | Node Pool | Nodes |
|---|---|---|---|---|---|
| 1 | `cls-dev-nexus` | `…cobrewkvc3a` | v1.34.1 | `np-dev-1` | 3x VM.Standard.E4.Flex |
| 2 | `cls-dev-barramento` | `…cifn2eknv6q` | v1.34.1 | `np-dev-2` | 3x VM.Standard.E4.Flex |
| 3 | `cls-dev-observabilidade` | `…crszb62robq` | v1.34.1 | `np-dev-3` | 3x VM.Standard.E4.Flex |
### Configuração dos Node Pools
| Parâmetro | Valor |
|---|---|
| Shape | `VM.Standard.E4.Flex` |
| OCPUs | 2 |
| Memória | 16 GB |
| Nodes por pool | 3 (`node_pool_size_up = 3`) |
| Modo de escala | `up` (escala zero: `node_pool_size_down = 0`) |
| Autoscaler | Desabilitado |
| Pods CIDR | `10.244.0.0/16` |
| Services CIDR | `10.96.0.0/16` |
### Worker Nodes (Compute Instances)
| Instância | Cluster | Shape | Estado |
|---|---|---|---|
| `oke-cifn2eknv6q-*` (x3) | cls-dev-barramento | VM.Standard.E4.Flex | RUNNING |
| `oke-cobrewkvc3a-*` (x3) | cls-dev-nexus | VM.Standard.E4.Flex | RUNNING |
| `oke-crszb62robq-*` (x3) | cls-dev-observabilidade | VM.Standard.E4.Flex | RUNNING |
### Kubeconfig
Os kubeconfigs são gerados automaticamente pelo Terraform via `null_resource.kubeconfig`:
```
~/.kube/config-dev-1 → cls-dev-nexus
~/.kube/config-dev-2 → cls-dev-barramento
~/.kube/config-dev-3 → cls-dev-observabilidade
```
Gerar manualmente:
```bash
oci ce cluster create-kubeconfig \
--cluster-id <CLUSTER_OCID> \
--file ~/.kube/config-dev-<N> \
--token-version 2.0.0
```
---
## 3. Rede
### VCN
| VCN | CIDR | Compartment | Gerenciada por |
|---|---|---|---|
| `vcn-oke` | `10.110.0.0/16` | `cmp-dev-inv` / OKE > DEV | Terraform (`tf_oci_clusters`) |
| `VCN-DEV` | `10.6.0.0/16` | `cmp-dev-inv` | Manual |
### Subnets `vcn-oke` (10.110.0.0/16)
| 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 + API Gateway MFE |
| `sbn-lb-2` | `10.110.144.0/20` | Pública | Load Balancers OKE |
| `sbn-api-gateway` | `10.110.192.0/20` | **Privada** | Criada pelo Terraform (disponível — não usada atualmente) |
### Gateways de Rede
| Gateway | Tipo | Uso |
|---|---|---|
| `igw-oke` | Internet Gateway | Egress público para workers e LBs |
| `nat-oke` | NAT Gateway | Egress privado para `sbn-api-gateway` |
| `sgw-oke` | Service Gateway | Acesso a serviços OCI (Object Storage, etc.) |
| DRG | Dynamic Routing Gateway | Cross-VCN: `vcn-oke``VCN-DEV` |
---
## 4. Load Balancers
Todos os LBs são criados e gerenciados pelo OKE (via Services do tipo LoadBalancer no Kubernetes):
| Display Name (ID OKE) | IP | Shape | Cluster | Criado em |
|---|---|---|---|---|
| `35adee2d-…` | `10.110.133.131` | 100Mbps | cls-dev-barramento | 2026-01-26 |
| `b8344bb7-…` | `10.110.135.3` | 100Mbps | cls-dev-nexus | 2026-01-26 |
| `bc0548de-…` | `10.110.129.64` | 100Mbps | cls-dev-observabilidade | 2026-01-26 |
| `177c06f0-…` | `10.110.143.54` | 100Mbps | cls-dev-nexus | 2026-01-29 |
| `029cfee6-…` | `137.131.236.202` *(público)* | 100Mbps | cls-dev-nexus | 2026-02-09 |
> Os IPs privados (`10.110.x`) estão na subnet `sbn-lb-1` ou `sbn-lb-2`.
> O único IP público (`137.131.236.202`) pertence a um Service exposto externamente no `cls-dev-nexus`.
---
## 5. API Gateways
### `api-gateway-mfe-dev` — Terraform-managed
| Campo | Valor |
|---|---|
| Nome | `api-gateway-mfe-dev` |
| Compartment | `cmp-dev-inv` |
| Tipo | PUBLIC |
| Subnet | `sbn-lb-1` (10.110.128.0/20) — vcn-oke |
| Gerenciado por | Terraform (`modules/api_gateway_mfe`) |
| Hostname | `guhal72tzyekzchzamhhi3lvgi.apigateway.sa-saopaulo-1.oci.customer-oci.com` |
**Deployments configurados:**
| MFE | Bucket | Path | Backend |
|---|---|---|---|
| `mfe-user` | `mfe-user-dev` | `/{path*}` | Object Storage `grbb7qzeuoag` |
| `mfe-user` | `mfe-user-dev` | `/` (fallback SPA) | `index.html` no bucket |
### `api-gateway-nexus-dev` — Manual
| Campo | Valor |
|---|---|
| Nome | `api-gateway-nexus-dev` |
| Compartment | `cmp-dev-inv` |
| Subnet | `SBNT-DEV` (10.6.0.0/24) — VCN-DEV |
| Gerenciado por | Manual |
| Conectividade OKE | Via DRG (cross-VCN: VCN-DEV ↔ vcn-oke) |
> **Pendência:** Migrar `api-gateway-nexus-dev` para `sbn-api-gateway` na `vcn-oke` (ver `OCI-NETWORK-ANALYSIS.md` — Opção A).
---
## 6. Object Storage
### Buckets em `cmp-dev-nexus`
| Bucket | Uso | Criado em |
|---|---|---|
| `invista-inventcloud-bucket3` | Uso geral | 2026-02-06 |
| `tfstate-gqysee` | Terraform remote state | 2025-12-30 |
| `tfstate-inidhr` | Terraform remote state | 2025-12-30 |
| `tfstate-terraform` | Terraform remote state | 2025-12-30 |
### Buckets em `cmp-dev-inv`
| Bucket | Uso | Criado em |
|---|---|---|
| `mfe-shell-dev` | MFE Shell (frontend) | 2026-02-24 |
> **Namespace do Object Storage:** `grbb7qzeuoag`
---
## 7. ArgoCD
ArgoCD instalado em todos os 3 clusters via Helm pelo Terraform:
| Parâmetro | Valor |
|---|---|
| Chart Version | `7.3.0` (argo/argo-cd) |
| Namespace | `argocd` |
| LB tipo | Interno (annotation `oci-load-balancer-internal=true`) |
| OIDC | OCI IDCS (integrado via outputs do módulo `identity`) |
**URLs internas (somente acesso via VCN):**
| Cluster | URL |
|---|---|
| `cls-dev-nexus` (1) | `https://argocd.dev-01.interno.invista.com.br` |
| `cls-dev-barramento` (2) | `https://argocd.dev-02.interno.invista.com.br` |
| `cls-dev-observabilidade` (3) | `https://argocd.dev-03.interno.invista.com.br` |
**RBAC OCI IDCS:**
| Grupo OCI | Role ArgoCD |
|---|---|
| `invista-oke-admin` | `admin` |
| `invista-oke-dev` | `readonly` |
| `invista-oke-readonly` | `readonly` |
---
## 8. Observabilidade
Gerenciada pelo módulo `modules/observability` em `cmp-dev-inv`:
| Recurso | Tipo | Configuração |
|---|---|---|
| Alarmes OCI Monitoring | `oci_computeagent` | CPU > 90% (PT10M) → CRITICAL; CPU > 75% (PT15M) → WARNING |
| Log Group | OCI Logging | — |
| Dashboard | OCI Management Dashboard | Import de `dashboards/oke-observability-import.json` |
---
## 9. Terraform — `tf_oci_clusters`
### Repositório
| Campo | Valor |
|---|---|
| Organização | Azure DevOps — CN-Squad |
| Projeto | Invista FIDC - Nexus |
| Repositório | `tf_oci_clusters` |
| Pipeline | `terraform-tf_oci_clusters` (ID 51) |
| Variable Group | `oci-terraform` (ID 34) |
| Backend | Object Storage OCI (S3-compatible) — bucket `tfstate-*` em `cmp-dev-nexus` |
### Estrutura de Arquivos
```
tf_oci_clusters/
├── environments/
│ ├── dev/
│ │ ├── main.tf # Clusters, rede, bastion, observabilidade
│ │ ├── api_gateway_mfe.tf # API Gateway MFE + deployments
│ │ ├── argocd.tf # ArgoCD Helm install + kubeconfig
│ │ ├── backend.tf # Remote state config
│ │ ├── providers.tf # OCI provider
│ │ ├── variables.tf # Todas as variáveis
│ │ └── terraform.ci.tfvars # Valores do ambiente DEV (pipeline CI)
│ ├── hml/ # Ambiente HML (estrutura similar)
│ └── prod/ # Ambiente PROD (estrutura similar)
├── modules/
│ ├── oke_cluster/ # OKE cluster + node pool
│ │ ├── main.tf # oci_containerengine_cluster + node_pool
│ │ └── variables.tf
│ ├── network/ # VCN, subnets, gateways, route tables, security lists
│ │ ├── main.tf
│ │ └── variables.tf
│ ├── api_gateway_mfe/ # API Gateway PUBLIC para MFEs estáticos
│ │ ├── main.tf # oci_apigateway_gateway + deployments por MFE
│ │ └── variables.tf
│ ├── compartment/ # Criação de compartment
│ ├── observability/ # ONS + OCI Logging + Alarms + Dashboards
│ └── iam_service_accounts/ # IAM para service accounts
├── compartments/ # Gerenciamento top-level de compartments
├── dns/ # DNS OCI
├── iam/ # IAM policies
├── identity/ # OIDC / IDCS (usado pelo ArgoCD)
├── argocd/
│ ├── values.yaml # Helm values do ArgoCD
│ └── application-dev.yaml # ArgoCD Application manifest (GitOps)
└── dashboards/
└── oke-observability-import.json
```
### terraform.ci.tfvars DEV — Valores Principais
```hcl
env_name = "dev"
create_compartment = false
create_cluster_compartment = false # removido manualmente 2026-02-25
existing_compartment_id = "ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a" # cmp-dev-inv
cluster_compartment_id_map = {
"1" = "ocid1.compartment.oc1..aaaaaaaahycc62za6ikthlhauvarvbdixc7xpjjmcrame3cirhu2kz74ddma" # cmp-dev-nexus
"2" = "ocid1.compartment.oc1..aaaaaaaahycc62za6ikthlhauvarvbdixc7xpjjmcrame3cirhu2kz74ddma"
"3" = "ocid1.compartment.oc1..aaaaaaaahycc62za6ikthlhauvarvbdixc7xpjjmcrame3cirhu2kz74ddma"
}
kubernetes_version = "v1.34.1"
node_shape = "VM.Standard.E4.Flex"
ocpus = 2
memory_in_gbs = 16
vcn_cidr = "10.110.0.0/16"
scale_mode = "up"
node_pool_size_up = 3
node_pool_size_down = 0
enable_bastion = true
admin_cidr = "187.65.249.125/32"
enable_api_gateway_mfe = true
```
### Pipeline CI/CD
```
Push to main (tf_oci_clusters)
→ Bootstrap (init + validate)
→ Detect Changes (diff por environment)
→ Plan (terraform plan -var-file=terraform.ci.tfvars)
→ Aprovação Manual
→ Apply (terraform apply)
```
---
## 10. Fluxo de Dependências
```
tf_oci_clusters (pipeline ID 51)
├── module.network → VCN vcn-oke (10.110.0.0/16)
│ └── subnets, IGW, NAT, SGW, route tables, security lists
├── module.cluster[1,2,3] → cls-dev-nexus / cls-dev-barramento / cls-dev-observabilidade
│ └── node_pool → np-dev-1/2/3 (VM.Standard.E4.Flex 2cpu/16gb x3)
├── module.api_gateway_mfe → api-gateway-mfe-dev (PUBLIC, sbn-lb-1)
│ └── deployment mfe-user → bucket mfe-user-dev
├── null_resource.kubeconfig → ~/.kube/config-dev-{1,2,3}
├── null_resource.argocd_setup → ArgoCD v7.3.0 em cada cluster
└── module.observability → Alarms + Log Group + Dashboards
```
---
## Referências
| Recurso | OCID / URL |
|---|---|
| Compartment `cmp-dev-nexus` | `ocid1.compartment.oc1..aaaaaaaahycc62za6ikthlhauvarvbdixc7xpjjmcrame3cirhu2kz74ddma` |
| Compartment `cmp-dev-inv` | `ocid1.compartment.oc1..aaaaaaaa76x3nykkjwvctpr6px34dysu3pbg7p62h2r65fegt7fvbrioll3a` |
| VCN `vcn-oke` | `ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliapqrmikfzagpgqohuzjqik3hx63w7r2uajiqv5krvxkda` |
| VCN `VCN-DEV` | `ocid1.vcn.oc1.sa-saopaulo-1.amaaaaaasks3yliatoq6uvqqak3kax775ksd2jastvgsbiki7mgj6jzue6dq` |
| API Gateway MFE hostname | `guhal72tzyekzchzamhhi3lvgi.apigateway.sa-saopaulo-1.oci.customer-oci.com` |
| Repo Terraform | Azure DevOps — CN-Squad / Invista FIDC - Nexus / tf_oci_clusters |
| Região | `sa-saopaulo-1` |
| Object Storage Namespace | `grbb7qzeuoag` |
---
*Atualizado em: 2026-02-25*