docs(day-2): Operator talk
This commit is contained in:
45
content/day-2/04_operator estensibility.md
Normal file
45
content/day-2/04_operator estensibility.md
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
title: Solving Operator Extensibility: A gRPC Plugin Framework for kubernetes
|
||||
weight: 4
|
||||
tags:
|
||||
- rejekts
|
||||
- operatopr
|
||||
---
|
||||
|
||||
<!-- {{% button href="https://youtu.be/rkteV6Mzjfs" style="warning" icon="video" %}}Watch talk on YouTube{{% /button %}} -->
|
||||
<!-- {{% button href="https://docs.google.com/presentation/d/1nEK0CVC_yQgIDqwsdh-PRihB6dc9RyT-" style="tip" icon="person-chalkboard" %}}Slides{{% /button %}} -->
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user