Skip to content

Proxmox VE 요구사항

connector: id: pve · mode: ui_only · endpoint: https://pve.yamon.io · executor_internal_url: https://192.168.219.10:8006 · verify_tls: false · protected: true · managed_by: fractalops

  • 직원/관리자 권한을 FractalOps 정책으로 제어한다.
  • 노드/VM/LXC 접근을 역할 기반으로 제한한다.

Proxmox VE는 lab 전체의 하이퍼바이저다. 토폴로지에 등장하는 노드는 pve0, pve1, pve2, pve-worker0..3이며, 각종 guest(예: Keycloak ct_id 106, OpenBao ct_id 125, Dokploy vmid 148)가 이 위에서 돈다. PVE 콘솔은 pve.yamon.io(Pomerium 보호 호스트)로 노출되고, executor는 내부 https://192.168.219.10:8006이다.

flowchart LR
  U(["직원 / 관리자"]) --> E["Pomerium edge<br/>pve.yamon.io (protected)"]
  E --> UI["PVE Web UI"]
  E --> CON["noVNC / xterm.js console"]
  subgraph Exec["executor (내부)"]
    EX["https://192.168.219.10:8006<br/>verify_tls: false"]
  end
  UI --> EX
  CON --> EX
  PJ["pve connector (jit 권한)"] -. default deny .-> EX

public URL(pve.yamon.io)과 executor URL(192.168.219.10:8006)은 분리된 계약이다.

  • pve connector jit 권한 적용.
  • 최소권한 원칙(default deny).
  • shell/vnc 권한 에러(501 등) 재발 방지.
    • UI 경로와 console(noVNC/xterm) 경로의 권한이 일관해야 한다.
  • mode: ui_only — FractalOps는 PVE의 lifecycle을 강하게 소유하지 않고, edge/auth/health 계약(public URL + executor URL + readiness)으로 통합한다.
  • LXC는 cutover/transitional 전용 런타임이다. 지원 런타임은 Kubernetes/Argo이며 PVE는 그 k3s 노드를 호스팅한다.
  • Cloudflare 터널 ingress에 pbs.yamon.io(PBS, 10.10.10.11:8007), pdm.yamon.io(10.10.10.104:8443)가 별도 등록되어 있다(토폴로지 cloudflare.tunnel_ingress).
  • 관리자/개발자/비개발자별 접근 차등 확인.
  • pve UI + console 경로 권한 일관성 확인.
  • make infra-validate로 노드/guest 토폴로지 정합성 검증.