https://github.com/ca-moes/rere
Turn Kubernetes resource right-sizing recommendations into auto-merged GitOps PRs — across raw manifests, Helm values, and operator CRs.
https://github.com/ca-moes/rere
automation cli cost-optimization devops finops flux fluxcd gitops golang helm k8s krr kubernetes kustomize pull-requests resource-optimization right-sizing rightsizing sre vpa
Last synced: about 10 hours ago
JSON representation
Turn Kubernetes resource right-sizing recommendations into auto-merged GitOps PRs — across raw manifests, Helm values, and operator CRs.
- Host: GitHub
- URL: https://github.com/ca-moes/rere
- Owner: Ca-moes
- License: other
- Created: 2026-06-29T20:35:32.000Z (7 days ago)
- Default Branch: main
- Last Pushed: 2026-06-30T08:53:48.000Z (6 days ago)
- Last Synced: 2026-06-30T10:03:52.421Z (6 days ago)
- Topics: automation, cli, cost-optimization, devops, finops, flux, fluxcd, gitops, golang, helm, k8s, krr, kubernetes, kustomize, pull-requests, resource-optimization, right-sizing, rightsizing, sre, vpa
- Size: 36.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rere
> **ré-ré** = **re**source **re**sizer
**The missing write-back half of Kubernetes resource right-sizing.**
Recommenders (Robusta [KRR](https://github.com/robusta-dev/krr), VPA, Goldilocks) already tell you the right CPU/memory requests & limits by reading Prometheus history. The gap nobody fills is **safely writing those numbers back into a GitOps repo** — across raw manifests, Helm `values:`, *and* operator Custom Resources — as **clean, auto-merged pull requests**, with surgical edits that preserve your comments and formatting.
`rere` is a Go CLI (with a GitHub Action planned — [#13](https://github.com/Ca-moes/rere/issues/13)) that does exactly that. It is **complementary to your recommender, not a replacement**:
> **Keep your recommender — `rere` adds the write-back half.**
## How it works
```
KRR JSON → adapter → discover (owning Flux object + repo path) → fieldmap (resolve field)
→ policy (deadband / headroom / limits) → yamledit (surgical edit) → PR + auto-merge
```
Unlike a naive find-and-replace, `rere` edits YAML through a structure-aware tree (kyaml), so comments, anchors, and key order survive — the diff shows only the numbers that changed. And unlike dependency bots, it can move values **down**: most right-sizing savings come from *downsizing*.
## Status
🚧 Early development. The v0.1 (MVP) milestone targets Flux + GitHub, the three field-map tiers, the KRR adapter, deadband policy, and auto-merge. Follow progress in the [issues](https://github.com/Ca-moes/rere/issues).
## Documentation
Design, architecture, and the decisions behind them live under [`docs/`](docs/):
- [Architecture & implementation direction](docs/explanation/architecture.md)
- [Prior art and why rere exists](docs/explanation/prior-art.md)
- [Architecture Decision Records](docs/adrs/) · [Research](docs/research/)
## License
**Proprietary — all rights reserved.** The source is published for transparency and evaluation only; it is **not** open source and may not be used, copied, modified, or redistributed without prior written permission. See [LICENSE](LICENSE). The intent is to relax this to a more permissive license once the project matures.