Bootiful Kubernetes
Operators
Tiffany Jernigan �Senior Developer Advocate, www.tiffanyfay.dev�
Ties van de Ven �Software Quality Expert @Alliander www.tiesvandeven.nl
sli.do #geecon
1
Bootiful Kubernetes Operators
Tiffany Jernigan �Senior Developer Advocate, www.tiffanyfay.dev�
Ties van de Ven �Software Quality Expert @Alliander
2
Who We Are
�
Tiffany Jernigan
Senior Developer Advocate�Open to Hire
X (Twitter): @tiffanyfayj�linkedin.com/in/tiffanyfayj
�
Ties van de Ven
Software Quality Expert �Alliander
www.tiesvandeven.nl �X (Twitter): @ties_ven�linkedin.com/in/tiesvandeven
3
Agenda
4
The Operator pattern
5
High level overview
6
Control Loop
��
Controller
�SS
19�
Desired state
+
-
Input
Measured �error
Measured �temperature
Current state
�S��
S
24�
Output
7
Built-in Kubernetes Controllers
8
Kubernetes speak
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "* * * * *"
…
9
Kubernetes Controller Pattern
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "* * * * *"
Control Plane
API Server
etcd (DB)
scheduler
controller manager
CronJobController
Requeue after error
Operator chaining
CronJobController
JobController
PodController
Kubernetes API
11
Custom Operators
https://spring.io/blog/2021/11/19/get-to-know-a-kubernetes-operator
12
Why write your own operator?
I want some functionality
Can I do this in Kubernetes?
Write your own operator
Do not write your own operator
Is there an off the shelf operator?
yes
no
yes
no
13
Why write your own operator?
14
Pitfalls
15
Building an Operator
Examples of Operator frameworks/libraries
Or just use a REST client��https://kubernetes.io/docs/reference/using-api/client-libraries/
Officially supported:
16
Building our own operator
17
What will we need
18
https://via.vmw.com/bootiful-k8s-operators
Thank You
©2023 VMware, Inc.