Skip to content
This repository was archived by the owner on Aug 10, 2026. It is now read-only.
 
 

Repository files navigation

rest-dynamic-controller

The dynamic REST operator of Krateo PlatformOps: one controller image that manages any external resource reachable over a REST API, driven entirely by a RestDefinition and the OpenAPI document it points at.

What is this

rest-dynamic-controller (RDC) is instantiated by the oasgen-provider: for every RestDefinition, oasgen-provider generates the CRDs and deploys one RDC Deployment pinned to that Group/Version/Resource. Each instance reconciles its Custom Resources against the remote API — observe, create, update, delete — using the verbs, field mappings, auth and async semantics declared in the RestDefinition. Full picture: docs/index.md.

Install

RDC is never installed on its own: it ships as an image (ghcr.io/krateo-platformops/rest-dynamic-controller) pulled by oasgen-provider, whose chart pins the RDC tag (values.rdc.image). Normally both arrive via the Krateo installer. Standalone (brings RDC with it):

helm install oasgen-provider-crds oci://ghcr.io/krateo-platformops/charts/oasgen-provider-crds \
  --namespace krateo-system --create-namespace
helm install oasgen-provider oci://ghcr.io/krateo-platformops/charts/oasgen-provider \
  --namespace krateo-system

Details and the dev loop: docs/usage.md.

Configure

See docs/configuration.md. Most used:

Setting Default Effect
REST_CONTROLLER_DEBUG false Verbose (debug-level) logs for the whole instance.
krateo.io/connector-verbose: "true" (CR annotation) unset Dumps the HTTP exchanges for one CR only.
REST_CONTROLLER_RESYNC_INTERVAL 3m Full re-observe interval per CR.

REST_CONTROLLER_SERVICEACCOUNT_NAME / _NAMESPACE are required — the controller exits at startup without them (oasgen-provider supplies them via the per-instance ConfigMap).

Examples

  • examples/sample-resource — a RestDefinition for a mock CRUD API (ConfigMap-hosted OAS) plus a Sample CR with bearer-auth configuration.

Docs

Develop & release

go test -tags=unit,integration -p 1 ./... (the integration tag compiles the envtest/kind suite; dropping it silently skips those tests). Tag X.Y.Z (no v) ships the multi-platform image — runbook: docs/release.md.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages