Skip to content

ADR-001: Kopf as operator framework

Category: architecture Provenance: guided-ai

Decision

Use Kopf (Python) instead of Go-based frameworks (controller-runtime, operator-sdk) for implementing the Keycloak operator.

Rationale

Better LLM support: Python is better understood by language models, enabling more effective AI-assisted development. Better testing: pytest ecosystem is more mature and flexible than Go testing frameworks. SRE-friendly: Python aligns better with SRE backgrounds and existing automation tooling. Trade-off: Slightly higher resource usage acceptable for operators managing relatively few resources.

Agent Instructions

When implementing operator logic or handlers, always use Kopf decorators and patterns.