Skip to main content

AI as a copilot

AI in Mirops is optional and off by default, and today it runs on upgrade analysis — not on the ClusterMirror or the impact check, which stay fully deterministic. When enabled, it acts as a copilot on the gauge, not a judge on the gate. It can nudge the readiness score and add human-readable reasoning — but it can never block or unblock an upgrade. Deterministic facts remain the sole authority for the verdict.

This static illustration provides a quick visual summary of the same flow:

A static view separating AI-assisted readiness scoring from deterministic upgrade blockers.

What the AI does​

When spec.ai.enabled is true, the operator sends a digest of the mirror (the at-risk workloads, nodes, add-on compatibility, dependency blast radius) to Anthropic or OpenAI, and blends the model's 0–100 judgment into the gauge:

total = base × 0.7 + aiScore × 0.3

The model focuses on semantic risk the numbers miss — workload criticality inferred from names (postgres, payment), data-loss risk when draining stateful workloads, correlated failures, and add-on dependency chains the rules might not fully trace. It returns a score, a reasoning paragraph, and — when remediation is enabled — proposed fix actions.

What the AI never does​

  • It never changes decision.level. The gate is 100% deterministic.
  • It never hides a blocker or invents one.
  • It isn't required — the entire product works with the AI off. The base analysis is a complete, deterministic verdict on its own.

Why it's optional (and often server-side)​

  • Determinism is a feature. A CI gate you can trust must be reproducible; a non-deterministic model must not sit on it.
  • No API key, no friction. Open-source users run Mirops with zero AI configured. The AI is an enhancement, not a dependency.
  • Token-aware. Mirops only sends at-risk resources to the model, memoizes the result per unchanged snapshot, and caps the response with a configurable maxTokens — so the AI runs only when the cluster genuinely changed.

Enabling it​

Set spec.ai.enabled and point to a Secret holding your API key. See the AI scoring guide for the full setup.

Next​