benthos-operator
Kubernetes operator that acts as a control plane for managing the lifecycle of Benthos pipelines.
⚠️ this project is currently in a pre-alpha state.
✨Features
- ♻️ Complete lifecycle management of Benthos pipelines
- ⚙️ Automated rollout on config changes
- ⚖️ Configurable scaling
Getting Started
The operator is still in very early stages, there's currently no Helm Chart or released Docker image. However, it does work (I promise), just don't use it in production....
If you'd like to test it out, you can follow the Developer Guide to get the operator deployed.
Once it's running, you can deploy a pipeline with the following Custom Resource:
---
apiVersion: streaming.benthos.dev/v1alpha1
kind: BenthosPipeline
metadata:
name: benthospipeline-sample
spec:
replicas: 2
config: |
input:
generate:
mapping: root = "woof"
interval: 5s
count: 0
pipeline:
processors:
- mapping: root = content().uppercase()
output:
stdout: {}
Once you've deployed your pipeline resource, you can check the current state of the pipeline.
kubectl get benthospipelines
NAME READY PHASE REPLICAS AVAILABLE AGE
benthospipeline-sample true Running 2 2 62s
The operator will also perform a rollout of the pods when the config is changed.
NAME READY PHASE REPLICAS AVAILABLE AGE
benthospipeline-sample true Updating 15 12 61m
Contributing
If you'd like to contribute, please take a look at our outstanding issues