Skip to main content

Controller Pattern

PveSphere uses Kubernetes Controller pattern to manage PVE resources.

Controller Principle​

Controller pattern is implemented through Informer mechanism:

  1. List: Get resource list
  2. Watch: Monitor resource changes
  3. Informer: Maintain local cache
  4. Controller: Handle resource events

Implementation Architecture​

┌─────────────┐
│ PVE API │
└──────┬──────┘
│
▼
┌─────────────┐
│ ListWatcher│
└──────┬──────┘
│
▼
┌─────────────┐
│ Informer │
└──────┬──────┘
│
▼
┌─────────────┐
│ Controller │
└─────────────┘

Core Components​

Informer​

Maintains resource cache:

  • Local cache
  • Incremental updates
  • Event notifications

Controller​

Handles resource events:

  • Add events
  • Update events
  • Delete events

Advantages​

  • Real-time Sync: Automatically sync resource status
  • Local Cache: Reduce API calls
  • Event-driven: Reactive processing
  • Fault Tolerance: Automatic retry and recovery