Repository navigation
Releases
v0.8.2
v0.8.1
v0.8.0
Highlights
The plan is more careful.
planhas a fourth group, Manual review. Persistent state (a StatefulSet, or a single replica with a volume) is no longer sent to on-demand, because whether it can use Spot depends on how the application replicates and recovers. The plan lists what to check. OnlyhostPathstays on on-demand.- Phase 2 is ranked by priority: the vCPU that would move, times the score, times the confidence, divided by the number of changes.
plan --pricing static|awsadds a monthly cost estimate. The tool has no prices of its own: you give them, or it reads the AWS Price List and the Spot Instance Advisor. It is an estimate from requested CPU, not a billing forecast.
The verdict says how far to trust it. Every workload has a confidence (high, medium, low) with its reasons. It does not change the score.
explain. spot-readiness explain SR014 documents a rule (all 26: SR001 to SR019 and KR001 to KR007). spot-readiness explain shop/api ./k8s shows how a workload got its score, verdict and confidence.
A versioned JSON. Reports and plans start with schemaVersion and toolVersion. --baseline reads reports from before this release as schema 1 and refuses a newer schema instead of comparing against a layout it cannot read.
GitHub Action. upload-sarif: "true" uploads the SARIF report to code scanning in the same step (needs security-events: write).
Quality. go test -race, govulncheck, actionlint and shellcheck on action.yml in CI, golden files for every output format, and an integration test against a real kind cluster. The Go version moves to 1.26.9, which fixes the vulnerabilities govulncheck found in the standard library, and golang.org/x/net and x/text are updated.
Notes
- The CSV has a new
confidencecolumn at the end. - The positioning is now explicit: workload rules apply to any cluster, and everything that depends on how capacity is provided is AWS-first (EKS, Karpenter). GKE and AKS Spot are not recognized.
plan --pricing awsis tested against a fake Price List and Advisor, not yet against the real AWS API.
Changelog
- 5a726b5 ci: race detector, govulncheck, actionlint and shellcheck on the action
- e7d3bc9 feat: confidence for every verdict
- cee7871 feat: explain a rule or the score of a workload
- 9e01449 feat: manual review group and priority order in the plan
- 31eb8bf feat: monthly cost estimate for the plan with --pricing
- 6810f85 feat: upload the SARIF report from the action with upload-sarif
- 68e7a6c fix: SARIF file URIs for a scan run outside the repository
- 0c7b68b refactor: move the command into internal/app and version the JSON schema
v0.7.1
Changelog
- 94275d9 fix: keep workloads with persistent volumes and one replica on on-demand
v0.7.0
Changelog
- afc3309 feat: .spot-readiness.yaml configuration file
- 423cbf4 feat: Karpenter NodePool analysis with scan --karpenter
- 5bdda4d feat: PR regression detection with --baseline
- 0fbc609 feat: SARIF output with file and line locations
- ea38e11 feat: Spot flexibility score and rules SR016 to SR019
- b4bf7df feat: cluster interruption handling assessment
- 6fa47f3 feat: flag PDBs that allow zero disruptions and lack AlwaysAllow eviction policy
- 107b935 feat: remediation suggestions with --suggest
- 9faf7c2 feat: runtime placement analysis in cluster mode
- 4e3eda9 feat: spot-readiness plan, a Spot migration plan
v0.6.0
Changelog
- 5782135 feat: GitHub Action to scan manifests and comment on pull requests
v0.5.0
Changelog
- 501a195 feat: analyze KEDA ScaledJobs like Jobs
v0.4.1
Changelog
- 9e6ac49 fix: report activeDeadlineSeconds on Jobs as info instead of a caveat
v0.4.0
Changelog
- e99aa5c feat: analyze Jobs, CronJobs, Argo Rollouts and KEDA ScaledObjects
v0.3.0
Changelog
- 6a71306 feat: markdown output for pull request comments (-f markdown)