Skip to main content
Version: 0.2 · v0.2.1

Scoring model & profiles

The base score (out of 100)​

The base readiness score is the sum of four dimensions:

DimensionWeightHow it's computed
Health25Proportional to the fraction of pods ready.
Capacity3030 − (cpuPressure × 15) − (memPressure × 15), where pressure = requests / allocatable.
Stability20Partitioned: crash-loops (10) + restart trend (6) + pod drop (4).
Compatibility25Diminishing penalty per incompatible add-on.

With AI on, the final gauge is base × 0.7 + AI × 0.3. The score is a gauge — it never blocks. See decisions.

Profiles​

spec.scoringProfile sets how strict the SAFE bar and the block thresholds are:

ProfileNot-ready → WARNINGNot-ready → blockSAFE threshold
production (default)5%30%90
non-production15%60%85
  • Warning threshold — above this fraction of not-ready pods, the score dips below SAFE (a WARNING, not a block).
  • Block threshold — above this fraction, the cluster is severely unstable — a deterministic blocker (CRITICAL).
  • SAFE threshold — the score a clean cluster must meet to be SAFE.

An unknown or empty profile defaults to production.

Choosing a profile​

Use production for clusters that serve real traffic — it's strict, so a small amount of instability already warns. Use non-production for dev/test where transient churn is normal and you don't want noise.