From 81b49c4489f4881ba255c900a54c5f4f838ef5c6 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sat, 21 Mar 2026 12:06:31 +0100 Subject: [PATCH] docs(day-2): Operator talk --- content/day-2/04_operator estensibility.md | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 content/day-2/04_operator estensibility.md diff --git a/content/day-2/04_operator estensibility.md b/content/day-2/04_operator estensibility.md new file mode 100644 index 0000000..a085555 --- /dev/null +++ b/content/day-2/04_operator estensibility.md @@ -0,0 +1,45 @@ +--- +title: Solving Operator Extensibility: A gRPC Plugin Framework for kubernetes +weight: 4 +tags: + - rejekts + - operatopr +--- + + + + +From the guys at EDB (the comercial offerin connected to CNPG). +If you haven't hear of CNPG: Use it, please + +## Why + +- Modify beyond CRDs (Inject Sidecars, run modifications, ...) +- Smarter reconciliation: Pause/Skip on evernal logic +- Integrate with third party sdks (backup management, storeage, ...) + +## Current Options + +- Patch it upstream -> and hope they agree with your PR) +- Fork it -> now you have to maintain it +- Mutating Webhooks -> Doesn't know about the working of the operator ans just blindly forces resource modifications + +## Sample Use-Case + +- Project: CloudNativePG +- Goal: Extend backup functionality +- Solution: CNPG-I (inspired by CSI) + - Protobuf contract + - Decoule of lifecycle/deplyoment: Plugins run as pods in the cnpg namespace + - Capability based dicovocery: Automatic registration and it will be called only if needed + - Orchestrated delegation: Operator is still "the brain" but can delegate + +TODO: Steal diagram from slides + +## Operator Hooks + +- Lifecycle: During reconcile -> Modify +- Reconciler: Interaction during the reconciliation loop -> Stop, Requeue, Continue +- Metrics Collection: Register additional metrics +- Backups: Execute the backup +- WAL Archiving: Handle WAL archiving externally \ No newline at end of file