Prophub Cloud Foundation

Infraestrutura

OKE, rede e CIDRs, pools de compute (ARM + x86 Karpenter), CNI NPN + Cilium, IAM e storage.

A fundação é provisionada por um Terraform one-shot (oracle-terraform-modules/oke/oci) que cria VCN, OKE ENHANCED_CLUSTER e IAM. Toda a camada de plataforma e tenant é depois gerida por GitOps.

Kubernetes (OKE)

  • OKE ENHANCED_CLUSTER (PAYG) em sa-saopaulo-1, Kubernetes 1.35.2 — control plane gerenciado e sem custo.
  • Conta convertida para PAYG (Always Free faz downgrade silencioso para BASIC).

Compute — três perfis

PoolShapeUso
PlataformaAmpere A1.Flex ARM (2 nodes × 2 OCPU × 12 GB), estáticoArgoCD, Cilium, Crossplane, Vault, Traefik
ProphubE4.Flex / E5.Flex x86, preemptível (Karpenter)Workloads de tenant: fsvc, bsvc, resvc/re2svc
dataA1.Flex on-demand + E4.Flex preemptível (Karpenter)PostgreSQL primaries (on-demand) + Redis replicas (preemptível)

Karpenter provisiona/remove nodes x86 sob demanda. Primaries de banco ficam em on-demand; preempção atinge apenas replicas.

Rede (CIDRs)

SubnetCIDRUso
VCN172.22.0.0/16VCN principal
cp172.22.0.0/24Endpoint da API Kubernetes (público, restrito por CIDR)
workers172.22.4.0/22Worker nodes (privado, NAT egress, 1022 IPs)
pub_lb172.22.2.0/24OCI Load Balancers públicos
pods172.22.16.0/20IPs reais de pods — NPN (4096 endereços)
Services10.208.0.0/16ClusterIP range (fora do VCN)

CNI — NPN + Cilium

  • NPN (OCI VCN-Native Pod Networking): pods recebem IPs reais do VCN (172.22.16.0/20) — sem overlay Flannel.
  • Cilium em chaining mode (chainingTarget: oci), eBPF, substitui o kube-proxy (kubeProxyReplacement). Instalado pelo ArgoCD, não pelo Terraform.
  • Limite NPN: 31 pods por node (controlado por VNIC secondary IPs).

IAM (OCI)

  • Dynamic Group para os worker nodes.
  • 5 policies separadas: Crossplane, tfstate, operador admin, NPN networking, Karpenter.
  • IAM vive em bootstrap/iam.tf, fora do módulo OKE (create_iam_resources = false).
  • Crossplane e Karpenter usam Workload Identity (OCI_RESOURCE_PRINCIPAL_VERSION=2.2) — sem API keys no cluster.

Storage

  • StorageClass oci-bv-data com reclaimPolicy: Retain — deleção acidental não destrói o Block Volume.
  • PVC PostgreSQL: 20Gi · PVC Redis resvc: 2Gi · Redis bsvc: sem PVC (in-memory).
  • OCI Block Volume mínimo é 50Gi — PVCs menores ainda provisionam 50Gi (impacto de custo).

O Terraform é modularizado visando portabilidade cloud-agnostic.

On this page