kubetidy v0.1.0
Changelog
- 4ef835a: Initial commit (Mayur Das mayur.das@neevcloud.com)
- b1eafc1: build: comprehensive make targets + one-command kind e2e (Mayur Das mayur.das@neevcloud.com)
- 74136b3: docs(design): operator — CRD-backed usage historian (Tier 0.5) (Mayur Das mayur.das@neevcloud.com)
- bd845c9: docs(design): storage model + extensible typed CRD family (UsageProfile, ClusterUsageSummary, Recommendation) (Mayur Das mayur.das@neevcloud.com)
- 79bd348: docs(readme): add kind quick-test, make command table, architecture links (Mayur Das mayur.das@neevcloud.com)
- 26aae95: docs(readme): proper description and usage for scan and diff (Mayur Das mayur.das@neevcloud.com)
- deb1d4c: docs(readme): real Tier-1 demo GIF (VHS), replacing the hand-drawn SVG (Mayur Das mayur.das@neevcloud.com)
- 2d6ba41: feat(api): typed, versioned CRD family via controller-gen (incr. 2) (Mayur Das mayur.das@neevcloud.com)
- 7066fe9: feat(cli):
kubectl tidy uninstall— clean removal (inverse of init) (Mayur Das mayur.das@neevcloud.com) - fb99d90: feat(cli): uninstall --dry-run +
cleanupalias (Mayur Das mayur.das@neevcloud.com) - 1c94c5f: feat(diff): add
kubectl tidy diff— reversible kubectl patch per recommendation (Mayur Das mayur.das@neevcloud.com) - d47be7f: feat(operator): configurable decay half-life (default 7d); wire operator flags (Mayur Das mayur.das@neevcloud.com)
- e91b7d1: feat(operator): publish operator image to Docker Hub; configurable tag (Mayur Das mayur.das@neevcloud.com)
- d10d42c: feat(operator): write per-cluster ClusterUsageSummary rollup (incr. 3) (Mayur Das mayur.das@neevcloud.com)
- 044c254: feat(operator): write per-workload Recommendation CRDs from the rules engine (Mayur Das mayur.das@neevcloud.com)
- e0c5123: feat(operator,init): in-cluster usage historian (Tier 0) +
kubectl tidy init(Mayur Das mayur.das@neevcloud.com) - c916c0f: feat(packaging): krew manifest, curl|sh installer, and tagged release pipeline (Mayur Das mayur.das@neevcloud.com)
- cec1904: feat(pr,autodetect): GitOps export + Prometheus auto-detection (Mayur Das mayur.das@neevcloud.com)
- cbccfd2: feat(pricing): OpenCost-backed precise cost (Tier 2), auto-detected (Mayur Das mayur.das@neevcloud.com)
- 2c22154: feat(prometheus): one-command Prometheus deploy for Tier-1 scans (Mayur Das mayur.das@neevcloud.com)
- ce17673: feat: implement kubetidy MVP package bodies with TDD (Mayur Das mayur.das@neevcloud.com)
- 61f2c49: feat: scaffold kubetidy MVP — design spec, docs, and compiling contract (Mayur Das mayur.das@neevcloud.com)
- 1ce1482: fix(ci): convert golangci-lint config to v2 schema (Mayur Das mayur.das@neevcloud.com)
- 6b01879: fix(ci): use golangci-lint v2 (go.mod targets go 1.26) (Mayur Das mayur.das@neevcloud.com)
- ec30c07: fix(docs,test): repair corrupted README/ARCHITECTURE, restore ≥80% coverage (Mayur Das mayur.das@neevcloud.com)
- d84bb4b: fix(init): make operator image configurable; warn on the kind-only default (Mayur Das mayur.das@neevcloud.com)
- 7022fa1: fix(lint): resolve all golangci-lint v2 findings (Mayur Das mayur.das@neevcloud.com)
- a78e24e: fix(operator): UsageProfile names must be valid RFC 1123 (lowercase kind) (Mayur Das mayur.das@neevcloud.com)
- 1c8e52a: fix(operator): build a Linux multi-arch image (kind + k8s), not a host image (Mayur Das mayur.das@neevcloud.com)
- f9689aa: fix(operator): lint clean, ≥80% coverage, init/operator docs + make targets (Mayur Das mayur.das@neevcloud.com)
- 4f86f19: fix(operator,test): publish image in manifests; drop hanging test; ≥80% coverage (Mayur Das mayur.das@neevcloud.com)
- a1c9824: fix(scan): make Tier-0 recommendations safe and the output honest (Mayur Das mayur.das@neevcloud.com)
- 9029e07: fix(score): implement Compute + accuracy (was an unpersisted stub) (Mayur Das mayur.das@neevcloud.com)
Install
krew (kubectl plugin):
kubectl krew install --manifest-url https://github.com/mayur-tolexo/kubetidy/releases/download/v0.1.0/kubetidy.yamlcurl | sh:
curl -fsSL https://raw.githubusercontent.com/mayur-tolexo/kubetidy/v0.1.0/install.sh | sh