Skip to content

v0.4.0 — Multi-cloud completo

Choose a tag to compare

@fabgcruz fabgcruz released this 28 May 03:31
· 75 commits to main since this release

v0.4.0 — Multi-cloud completo

Marco do roadmap. O Bagre agora conecta AWS + Azure + GCP simultaneamente — single pane of glass para IPs em qualquer combinação de cloud + on-prem, com detecção automática de IPs públicos ociosos em todos os três providers.

✨ Destaques

☁️ Cloud sync Azure (#20)

Service Principal (App Registration + client secret) com OAuth2 client_credentials. Sincroniza:

  • VNets e subnets (com região, tags, address prefixes)
  • Network Interfaces (private IPs com referência à subnet, VM attachment)
  • Public IPs — incluindo unassociated, que entram automaticamente no relatório FinOps

REST puro contra management.azure.com — sem @azure/* SDK (50MB+ de dep evitados).

☁️ Cloud sync GCP (#21)

Service Account JSON key com JWT RS256 manual + OAuth2 JWT bearer (RFC 7523). Sincroniza:

  • Subnetworks via aggregated endpoint (todas regions num call só)
  • Instances → NICs: private IPs + ephemeral public IPs (accessConfigs.natIP)
  • Reserved Addresses: static INTERNAL/EXTERNAL — os EXTERNAL com users:[] viram FinOps gold (equivalente Elastic IPs unassociated no GCP)

REST puro contra compute.googleapis.com — sem @google-cloud/* SDK.

🎯 O que veio de graça pra Azure e GCP

Como toda a base do v0.2.0 foi desenhada provider-agnostic, ao habilitar Azure e GCP estes recursos passaram a funcionar sem nenhuma mudança adicional:

  • FinOps idle public IPs — relatório unificado com custo USD/mês desperdiçado entre os 3 providers
  • Catálogos com abas dinâmicas — uma aba por CloudAccount conectada, em todos os providers
  • Pool sintético de Public IPs — captura Elastic IPs (AWS) / Public IPs (Azure) / Static EXTERNAL Addresses (GCP)
  • Audit log das operações
  • Hero card com 3 estados (sem dados / zero ociosos / N ociosos pra revisar)

🚀 Como atualizar

git pull
docker compose build api web
docker compose up -d

Sem mudança de schema, sem novas env vars obrigatórias.

🔧 Configuração nova

Pra conectar Azure: precisa criar App Registration + client secret + atribuir role Reader na subscription. UI tem instruções inline.

Pra conectar GCP: precisa criar Service Account + role roles/compute.networkViewer + baixar JSON key. UI tem instruções inline + link pra doc.

📊 Comparativo dos providers

Característica AWS Azure GCP
Auth Access Key OR Assume Role Service Principal Service Account JSON
API base EC2 SDK REST direto REST direto
Scope Account ID Subscription ID Project ID
Regions iterado aggregated aggregated
Custo estimado idle/h $0.005 $0.005 $0.010

🛣️ Próximo

  • #26 SNMP discovery + topology graph (sugestão do Raul)
  • #27 Validation plugin system (sugestão do Jesse)
  • #15 Terraform Provider
  • #16 Kubernetes Operator + CRDs
  • #10 IPv6 first-class

📦 Código: https://github.com/fabgcruz/bagre — MIT