Skip to content

Plano de Execução

Plano de Execucao Unificado

Consolida os roadmaps de IaC, GPU e Dados em um fluxo executavel. Baseado no inventario Proxmox (mapeamento SSH 2026-04-12).


Estado atual

2 clusters Proxmox independentes (PVE 8.4, Debian 12)
Franca (clusterlabri07): 8 nodes online, 172 cores, 592 GB RAM
SP (clusterippri): 6 nodes online, 136 cores, 720 GB RAM
6 GPUs:
Franca: 3x RTX A5500 (72 GB VRAM) — driver NAO instalado
SP: 3x RTX A5000 (72 GB VRAM) — driver OK
Storage:
LINSTOR: 4 nodes Franca, ~13 TiB NVMe (12.6 TiB livre)
ZFS: ambos os sites
SP nao tem LINSTOR
K3s: roda bare metal nos hosts Proxmox 21 e 31 (Franca)
ArgoCD: GitOps para apps + rotas Traefik (multi-cluster)
Apps: Airflow, Authentik, InvenioRDM, OJS, Superset, SeaweedFS, MongoDB, Prometheus

Sprints

Sprint 0 — Upgrade PVE 9 + Debian 13

Objetivo: todo o cluster em Proxmox 9 / Debian 13 antes de qualquer outra mudanca.

Por que primeiro: drivers NVIDIA mais recentes, kernel 6.12+, base limpa para o que vem depois. Evita retrabalho de configurar algo no Debian 12 e ter que refazer no 13.

Procedimento: upgrade in-place, node a node, em 4 ondas (detalhes em proxmox-inventario.md).

OndaNodesRiscoTempo estimado
1labri-33, labri-32, labri-25 (vazios)Minimo1-2 dias
2ippri-33, ippri-31, ippri-34, ippri-32 (GPU SP)Baixo-Medio2-3 dias
3labri-31, labri-27, labri-21, labri-22 (criticos Franca)Alto3-5 dias
4ippri-12, ippri-11 (SP restante)Alto2-3 dias

Validacao por node: checklist em proxmox-inventario.md (PVE version, VMs, LINSTOR, rede, GPU, storage).

Decisao: validar LINSTOR v1.33.2 no Debian 13 no node labri-33 (vazio) antes de tocar nos satellites com dados.

Referencia: iac.md Fase 1


Sprint 1 — Mapeamento e Codificacao (paralelo com Sprint 0)

Objetivo: codificar a infra existente. Nada novo e criado — tudo e import/descricao do que ja roda.

Pode comecar enquanto o Sprint 0 avanca nos nodes vazios.

Trilha A — Pulumi (provisioning)

TarefaEscopo
Decidir state backendLocal vs S3 (SeaweedFS) vs Pulumi Cloud
Importar VMs existentesVyOS, debian-proxy, vm-cpps-02, vm-cpps-13, VM 108, DataLuta, pfsense
Mapear storage poolsLINSTOR (pools, resources, replication), ZFS (pools, datasets)
Mapear rede virtualvmbr0/1/2, VLANs 192/193/194/197, bridges, subnets
Mapear templatesdebian13 (VMID 104)
Resultadopulumi import de tudo, state file funcional

Trilha B — Ansible (configuracao)

TarefaEscopo
Validar playbooks existentes--check em VyOS, Traefik
Criar role Proxmox hostPacotes base, NVIDIA driver, NTP, SSH hardening
Criar role LINSTORController, satellite, pools, resource groups
Criar role K3sBootstrap server/agent, flannel config, LINSTOR CSI
Inventario completoAtualizar inventory/hosts.yaml com todos os 15 nodes
Resultadomake configure recria qualquer node a partir do repo

Trilha C — Documentacao

TarefaEscopo
Documentar LINSTORTopologia, pools, replication policy, rede 10.10.10.0/24
Documentar VLANsInvestigar e registrar VLANs 193, 194, 197
Atualizar roadmapsGPUs A5500/A5000, K3s bare metal, LINSTOR, topologia real

Decisoes:

  • Pulumi state backend
  • LINSTOR: manter config atual ou reestruturar?
  • Nodes offline (24, 13, 14): trazer online ou decommissionar?

Referencia: iac.md Fase 1


Sprint 2 — Seguranca

Objetivo: resolver risco critico de credenciais e proteger a infra antes de expandi-la.

Pode rodar em paralelo com Sprint 1.

TarefaDetalhe
SOPS/ageEncriptar values no Git. ArgoCD decripta no deploy
Rotacionar credenciaisNovas senhas para authentik, airflow, dashboard, ojs, superset
git filter-repoLimpar historico Git
Remover gitleaks allowlistPaths temporarios no .gitleaks.toml
CrowdSec + bouncer TraefikWAF/IPS na entrada
FalcoRuntime security K8s
Trivy CronJobVulnerability scan periodico

Referencia: iac.md Fase 1


Sprint 3 — GPU no K3s

Objetivo: GPU funcional no cluster. Depende de Sprint 0 (PVE 9) nos nodes GPU.

Franca (nodes 31, 32, 33):

TarefaDetalhe
Instalar driver NVIDIAapt install nvidia-driver (Debian 13 facilita)
nvidia-ctk (container toolkit)Runtime GPU para containerd/K3s
Expandir K3sNodes 32 e 33 fazem join como agent (31 ja tem K3s)
DRA driverDynamic Resource Allocation para GPU
KAI SchedulerGPU sharing + topology-aware scheduling
DCGM ExporterMetricas GPU → OpenObserve/Prometheus
Namespace ai-servicesPriorityClasses, HF cache PVC (LINSTOR)

SP (nodes 31, 33, 34):

TarefaDetalhe
Liberar pve-ippri-34Migrar VM desktop (30c/121G) para outro node
K3s SPBootstrap cluster separado nos 3 nodes GPU
GPU no K3s SPDriver ja instalado — so nvidia-ctk + DRA

Validacao: nvidia-smi dentro de pod, GPU schedulavel, DCGM exportando metricas.

Referencia: gpu-platform.md Fases 0-1


Sprint 4 — Primeiros servicos IA + Dados

Objetivo: pesquisadores comecam a usar. Depende de Sprint 3 (GPU).

Trilha GPU (depende de Sprint 3):

TarefaDetalhe
vLLM + Open WebUIChat local com modelos open-source
TensorZero gatewayAuth, routing, A/B test, rate limiting
LangfuseObservabilidade LLM
LLM GuardContent filtering, PII detection

Trilha Dados (parcialmente independente — pode comecar antes):

TarefaDetalhe
Scrapy + PlaywrightCrawlers (diarios oficiais, noticias, governo)
Docling + TikaPDF parsing + OCR
Apache HudiLakehouse bronze/silver/gold sobre SeaweedFS
InvenioRDM + OpenSearchRepositorio com busca full-text

Trilha AIOps (depende de Sprint 3):

TarefaDetalhe
k8sGPTCronJob diagnostico K3s
HolmesGPTInvestigacao automatica de alertas
ChatermTerminal IA para operador

Referencia: gpu-platform.md Fases 2-3, data-platform.md Fases 1-3


Sprint 5 — Multi-site (Franca ↔ SP)

Objetivo: federar os dois clusters. Depende de Sprint 3 (K3s em ambos os sites).

TarefaDetalhe
VyOS WireGuardTunel site-to-site (rede UNESP/ANSP)
CIDRsPlanejar pod/service sem colisao entre sites
CiliumSubstituir Flannel nos dois clusters (prerequisito Cluster Mesh)
Cilium Cluster MeshService discovery cross-cluster
KarmadaControl plane multi-cluster (placement, failover)
MultiKueueGPU batch cross-site
DNS failoverHealthcheck + 2 IPs publicos
SeaweedFS replicacaoAsync cross-site
LINSTOR em SPInstalar nos nodes GPU (NVMe disponivel)

Decisoes:

  • Argo CD: centralizado (Karmada) ou 1 por site?
  • SeaweedFS: near-sync ou async?
  • DNS failover: Cloudflare ou self-hosted?

Referencia: iac.md Fases 6a-6b


Sprint 6 — Busca semantica + IAM

Objetivo: busca por significado + identidade centralizada. Depende de Sprint 4 (GPU services).

TarefaDetalhe
Embeddings BGE-M3Vetorizacao semantica
QdrantVector database para RAG
WhisperSpeech-to-text
SGLangAlternativa vLLM (RadixAttention)
TrinoQuery federada sobre Hudi + PostgreSQL + MongoDB
FreeIPADiretorio central (LDAP + Kerberos)
Octelium ZTNAAcesso remoto zero trust

Referencia: gpu-platform.md Fase 4, data-platform.md Fase 4, iac.md Fase 4-5


Sprint 7 — Batch AI + CAQDAS + Workspace

Objetivo: pesquisadores autonomos. Depende de Sprint 6.

TarefaDetalhe
KueueJob queuing para batch
Unsloth + MLflowFine-tuning
Promptfoo + DVCEval de modelos + dataset versioning
OpenCost + KyvernoCusto + policies
QualCoder + Label Studio + CATMACAQDAS com IA
JuiceFS /homeHome compartilhado sobre SeaweedFS
VDI WebtopDesktop web para pesquisadores

Referencia: gpu-platform.md Fases 5-6, data-platform.md Fase 5, iac.md Fase 5


Sprint 8 — DX avancada + IA autonoma

Objetivo: plataforma completa. Depende de Sprint 7.

TarefaDetalhe
BackstageService catalog
TabbyCode assist (Copilot-like)
DSPyPipelines IA declarativos
Neo4j + NER + LightRAGKnowledge graph
LLM Knowledge Base + Hermes AgentPesquisa autonoma
kagentAcoes corretivas autonomas K8s
JupyterHub/MarimoNotebooks com GPU/SQL/Qdrant
Datashare + ZoteroExploracao documental + bibliogragia
dflash + PolarQuant + TurboQuantOtimizacao de inference

Referencia: gpu-platform.md Fases 7-9, data-platform.md Fases 6-8


Diagrama de dependencias

Sprint 0 (PVE 9)
├──► Sprint 1 (Codificar infra) ──────────────────┐
│ (paralelo com Sprint 0) │
│ ▼
├──► Sprint 2 (Seguranca) ──────────────────► Sprint 3 (GPU no K3s)
│ (paralelo com Sprint 1) │
│ ├──► Sprint 4 (IA + Dados)
│ │ │
│ │ ▼
└──► Sprint 5 (Multi-site) ◄──────────────────────┘ Sprint 6 (Busca + IAM)
(depende de K3s nos 2 sites) │
│ ▼
└──────────────────────────────────► Sprint 7 (Batch + CAQDAS)
Sprint 8 (DX + IA autonoma)

O que roda em paralelo:

  • Sprint 0 (PVE 9) + Sprint 1 (codificar) + Sprint 2 (seguranca) — 3 frentes simultaneas
  • Sprint 4 trilha Dados (crawlers, Hudi) nao depende de GPU — pode antecipar
  • Sprint 5 (multi-site) pode comecar assim que Sprint 3 terminar, sem esperar Sprint 4

Recursos por sprint

SprintNodes afetadosDowntime esperado
0Todos (13 online)Sim, por node (reboot apos upgrade)
1Nenhum (so codificacao)Nao
2vm-cpps-02 (rotacao credenciais)Minimo (restart de pods)
3labri-31/32/33 (Franca), ippri-31/33/34 (SP)Nao (join K3s sem downtime)
4K3s clusterNao (deploy via ArgoCD)
5Todos (rede cross-site)Sim (troca CNI Flannel→Cilium)
6-8K3s clusterNao (deploy via ArgoCD)

Referencia cruzada com roadmaps

Sprintiac.mdgpu-platform.mddata-platform.md
0Fase 1 (parcial)
1Fase 1 (importar, codificar)
2Fase 1 (seguranca)
3Fases 0-1
4Fases 2-3Fases 1-3
5Fases 6a-6b
6Fases 4-5Fase 4Fase 4
7Fase 5Fases 5-6Fase 5
8Fase 7Fases 7-9Fases 6-8