Skip to content

Control Plane (L3)

This page details how the IMP operator reconciles CRDs into actionable node-level intent.

Inputs

  • ImpVM, ImpNetwork, ImpVMSnapshot, ImpVMMigration, ImpWarmPool, RunnerPool.
  • Cluster-scoped policy/config resources (for classes/profiles/templates).
  • Existing status conditions and resource versions.

Reconcile Stages

  1. Observe: watch/list/get resources and dependencies.
  2. Validate: confirm dependencies and invariants for requested action.
  3. Plan: compute minimal diff between desired and observed state.
  4. Execute: dispatch runtime/network intent to the responsible agent.
  5. Publish: update status conditions, emit events, and expose metrics.

API Patterns

  • Read-heavy from Kubernetes API (watch/list/get).
  • Status writes via patch/update with conflict handling.
  • Idempotent retries for transient errors and contention.

Reliability Concerns

  • Conflict retries on stale resourceVersion.
  • Backoff to avoid hot reconcile loops.
  • Condition transitions that preserve failure reason visibility.

What to Monitor

  • Reconcile duration and queue depth.
  • Error rate by reason (RuntimeStartFailed, NetworkSetupFailed, etc.).
  • Frequency of status conflicts and retry count.