Píšeme vlastný Operator v Go
Operator SDK a reconciler loop od nuly.
Operator pattern je Kubernetes best practice pre správu stateful aplikácií. Operator = CRD (definícia custom API objektu, napr. `MyDatabase`) + Controller (kód, ktorý sleduje CR objekty a reconciluje reálny stav do želaného stavu).
Operator SDK je Red Hat nástroj pre generovanie kostry operátora. Tri jazyky/frameworks: Go (najflexibilnejší, používajú ho Red Hat operátory), Ansible (pre existing Ansible playbooks), Helm (wrap Helm chart-u ako operator, minimum kódu). Pre production siahni po Go.
Reconcile loop je jadro. Controller subscribe-uje events na CR (create/update/delete) a spustí Reconcile(request) funkciu. Vnútri porovnáš spec (želaný stav v CR) s reálnym stavom (existing Deployment, Service, ConfigMap v klastri) a rob-íš delty – create/update/delete zdrojov. Loop musí byť idempotentný a re-entrant.
Status subresource informuje ostatných o stave. CR má `.spec` (input od user-a) a `.status` (output od controller-a). Update status cez oddelený API call – zabraňuje race conditions s concurrent spec updatmi. Klasické fields: `observedGeneration`, `conditions` (array typu Ready, Progressing, Degraded), `readyReplicas`.
Deployment cez OLM bundle. `operator-sdk bundle create` vygeneruje manifests + metadata + Dockerfile pre bundle image, ktorý index catalog operator source môže konzumovať. Publish do quay.io/community-operators alebo interne. Rate limiting, exponential backoff a leader election dostaneš z controller-runtime knižnice zadarmo – neriskuj vlastnú implementáciu, ušetríš si veľa produkčných výpadkov.