Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koyeb/kreconciler
A control-loop library for things that are not in k8s
https://github.com/koyeb/kreconciler
Last synced: 3 months ago
JSON representation
A control-loop library for things that are not in k8s
- Host: GitHub
- URL: https://github.com/koyeb/kreconciler
- Owner: koyeb
- License: mit
- Created: 2021-06-16T09:18:31.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-22T14:51:45.000Z (8 months ago)
- Last Synced: 2024-06-19T05:56:16.656Z (5 months ago)
- Language: Go
- Size: 56.6 KB
- Stars: 42
- Watchers: 9
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-nomad - koyeb/kreconciler - A library for building operators and reconcilers on top of Nomad (or other schedulers). (Utilities)
README
# kreconciler
[![Go Report Card](https://goreportcard.com/badge/github.com/koyeb/kreconciler)](https://goreportcard.com/report/github.com/koyeb/kreconciler)
[![Go Reference](https://pkg.go.dev/badge/github.com/koyeb/kreconciler.svg)](https://pkg.go.dev/github.com/koyeb/kreconciler)
[![Release](https://img.shields.io/github/release/koyeb/kreconciler.svg?style=flat-square)](https://github.com/koyeb/kreconciler/releases/latest)A library to build control-loops for things other than Kubernetes.
## Principle
[Kubernetes operators](https://www.infoq.com/articles/kubernetes-operators-in-depth/) are amazing for building
reliable operational tooling.Unfortunately as its name points out it is specific to Kubernetes.
This library brings a simple way to build `reconcilers` which is the core of an operator.
It runs a loop that for each event coming in will trigger the control-loop.Its core goals are:
1. Remain simple, caching, resync are not meant to be builtins because they are hard to be generic.
2. Observability is important so it's instrumented with [opentelemetry](https://opentelemetry.io/).
3. Keep the number of dependencies low.The reason why 2 is so important is that testing an operator is incredibly complicated.
It's therefore necessary to make execution of the reconciler as observable as possible to be able to figure out issues.## Who uses it
At Koyeb we've built reconcilers that helps keeping our models in sync with [Hashicorp Nomad](https://www.nomadproject.io/) and [Kuma](kuma.io/).
## Contributing
See [Contributing](CONTRIBUTING.md).