nocontrol
A Rust library for building Kubernetes-style reconciliation controllers. Define your desired state with manifests and let nocontrol continuously reconcile them.
Features
- Declarative manifests - Define your desired state as typed specifications
- Automatic reconciliation - Changes trigger reconciliation loops
- Configurable resync - Periodic full reconciliation (default: 5 minutes)
- Lease-based coordination - Safe for distributed deployments
- Requeue support - Schedule future reconciliations with delays
Quick Start
Add to your Cargo.toml:
[]
...
[]
= "0.0.1"
...
Note: Requires Rust nightly (edition 2024).
use ;
use ;
// 1. Define your specification
// 2. Implement the Operator trait
;
// 3. Run the control plane
async
Configuration
Configure the operator with OperatorConfig:
use ;
use Duration;
let config = OperatorConfig ;
let operator = new_with_config;
Actions
Return from reconcile() to control scheduling:
Action::None- No follow-up reconciliationAction::Requeue(duration)- Reconcile again after the specified delay
License
MIT