An Elixir framework for building Kubernetes operators, controllers, and custom schedulers.
Bonny is an Elixir-based framework for building Kubernetes operators, controllers, and custom schedulers. It allows developers to extend the Kubernetes API by creating custom resources and controllers that manage application-specific logic on a Kubernetes cluster. The framework provides mix tasks and configuration helpers to streamline operator development.
Elixir developers and DevOps engineers who need to build custom Kubernetes operators or extend Kubernetes functionality for specific applications or infrastructure needs.
Developers choose Bonny because it brings Elixir's concurrency and fault-tolerance to Kubernetes operator development, offering a productive and structured way to create robust extensions with built-in tooling and telemetry.
The Elixir based Kubernetes Development Framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Mix tasks like `mix bonny.init` and `mix bonny.gen.manifest` automate operator setup and manifest generation, reducing initial boilerplate as shown in the Getting Started guide.
Emits comprehensive metrics for reconciler, watcher, scheduler, and task events via the Telemetry library, enabling easy monitoring and debugging without extra setup.
Utilizes Elixir's actor model and fault-tolerance for building reliable, concurrent controllers, aligning with the philosophy of encoding domain knowledge into robust systems.
Provides ready-to-use configuration for Kubernetes connections, API groups, and service accounts, with examples in the generated `config/bonny.exs` file.
Tied exclusively to Elixir, limiting adoption for teams using more common Kubernetes languages like Go, and reducing community support compared to frameworks like Operator SDK.
The README notes example operators are built with older versions, indicating potential inconsistencies and a smaller pool of up-to-date resources for troubleshooting.
Running outside a cluster requires manual RBAC setup and kubeconfig management, which can be error-prone and is admitted as not recommended for production.