The Go library every Krateo provider controller is built on: a managed-resource reconciliation runtime over controller-runtime.
provider-runtime supplies the generic reconcile loop for managed resources —
Observe → Create/Update/Delete against an external system — plus the shared
condition model (Ready/Synced), the krateo.io/* annotation vocabulary
(external-name, pause, management/deletion policy), OTel-model logging, OTLP
metrics, and rate-limiting/workqueue utilities. Providers implement an
ExternalClient; the library drives everything else. Consumed as a plain Go
module — no image, no chart, no CRDs shipped.
Full picture: docs/index.md.
go get github.com/krateo-platformops/provider-runtime@v1.3.0See docs/configuration.md. Most used:
| Setting | Default | Effect |
|---|---|---|
reconciler.WithPollInterval |
1m |
Speculative re-observe interval per managed resource |
controller.Options.MaxConcurrentReconciles |
1 |
Per-controller worker count |
telemetry.Config.Enabled |
false |
OTLP metrics pipeline (provider_runtime.* instruments) |
- examples/greeting-controller — a minimal compilable provider:
GreetingCRD reconciled against a fake external system.
- docs/index.md — the map
- docs/overview.md — package design and the reconcile flow
- docs/usage.md —
go get+ minimal provider code - docs/configuration.md — build tags, env, options, annotations
- docs/api.md — the exported Go API surface
- docs/examples.md — examples index
- docs/release.md — how a release ships (tag-only)
- docs/log.md — curated history
make test (unit tests, no cluster needed) · make generate (deepcopy) · make lint — release runbook: docs/release.md.