Skip to main content
Version: 0.1 · v0.1.0

Create an analysis

UpgradeAnalysis is cluster-scoped — it has no namespace. Only targetVersion is required.

The simplest form​

apiVersion: mirops.mirops.io/v1
kind: UpgradeAnalysis
metadata:
name: to-1-34
spec:
targetVersion: "1.34"
kubectl apply -f analysis.yaml
kubectl describe upgradeanalysis to-1-34 # decision, score, reason, blockers

A fuller example​

apiVersion: mirops.mirops.io/v1
kind: UpgradeAnalysis
metadata:
name: to-1-34
spec:
targetVersion: "1.34"
scoringProfile: production # production (strict) | non-production (lenient)
scope:
mode: application # all (default) | application (skip system namespaces)
excludeNamespaces: [monitoring]
source:
type: file # file | s3 | blob | pvc
resync:
interval: "30m" # re-run automatically; empty = run once

See the full field list in the CRD reference.

Re-running an analysis​

  • Change the spec — any edit triggers a fresh analysis.

  • Refresh in place — bump the mirops.io/refresh annotation (this is what the Web UI's Re-analyze button does):

    kubectl annotate upgradeanalysis to-1-34 mirops.io/refresh="$(date +%s)" --overwrite
  • On a schedule — set resync.interval. The operator re-analyzes each interval and skips the AI call when the cluster snapshot hasn't changed.

Choose a report destination​

The default file destination is served over HTTP in-cluster. For durable, shareable reports, use a remote destination (S3/Blob/PVC).

Next​