0% found this document useful (0 votes)
8 views

Developing Kubernetes Operator Slides

The document discusses developing a Kubernetes operator from scratch using the Operator SDK. It begins with an overview of the Operator SDK and its features. It then demonstrates a simple "Hello World" HTTP application and how to deploy it on Kubernetes. Finally, it shows how to create a basic Kubernetes operator that automates the deployment of the "Hello World" application and exposes it through a service, extending the Kubernetes API. The presenter provides sample YAML files and code to demonstrate the process.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Developing Kubernetes Operator Slides

The document discusses developing a Kubernetes operator from scratch using the Operator SDK. It begins with an overview of the Operator SDK and its features. It then demonstrates a simple "Hello World" HTTP application and how to deploy it on Kubernetes. Finally, it shows how to create a basic Kubernetes operator that automates the deployment of the "Hello World" application and exposes it through a service, extending the Kubernetes API. The presenter provides sample YAML files and code to demonstrate the process.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Developing a Kubernetes

Operator
from zero to Hero using the Operator-SDK
Domenico Francesco Bruscino,
Senior Software Engineer @Red Hat
About me

Domenico Francesco Bruscino


Senior Software Engineer @Red Hat
working on AMQ Broker
@bruscinodf
Agenda
● Operator SDK

● Hello World HTTP

● Deploy Hello World HTTP

● Hello World Operator

● Demo
Operator SDK
● High-level APIs and abstractions

● Tools for scaffolding and code generation

● Integration with Operator Lifecycle Manager (OLM)

● Extensions to cover common Operator use cases

● Metrics endpoint set up automatically with the Prometheus format


Hello World HTTP
● a container with a simple HTTP web server
● the default serving address is 8080
○ set HELLO_ADDR to change the it
● the default response text is Hello, World!
○ set HELLO_TEXT to change the it

$ podman run -p 8080:8080 quay.io/brusdev/hello-world-http


Hello, World HTTP!
The default serving address is :8080, set HELLO_ADDR to change the it.
The default response text is Hello, World!, set HELLO_TEXT to change the it.
Serving :8080 with the text Hello, World!
Deploy Hello World HTTP
hello-world-http-deployment.yaml hello-world-http-service.yaml

apiVersion: apps/v1 apiVersion: v1


kind: Deployment kind: Service
metadata: metadata:
name: hello-world-http-deployment name: hello-world-http-service
spec: spec:
selector: selector:
matchLabels: app: hello-world-http
app: hello-world-http ports:
replicas: 1 - protocol: TCP
template: port: 8080
metadata: targetPort: 8080
labels:
app: hello-world-http
spec:
containers:
- name: hello-world-http
image: quay.io/brusdev/hello-world-http:latest
Hello World Operator
● Automate the deployment of Hello World HTTP
● Expose a service to access Hello World HTTP
● Extend API with HelloWorld

apiVersion: examples.brus.dev/v1alpha1
kind: HelloWorld
metadata:
name: helloworld-sample
spec:
size: 1
text: Hello, brusdev!
Hello World Operator
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloworld-sample
spec:
replicas: 1
template:
spec:
containers:
apiVersion: examples.brus.dev/v1alpha1
- name: helloworld
kind: HelloWorld image: quay.io/brusdev/hello-world-http:latest
env:
metadata: - name: HELLO_TEXT
value: Hello, brusdev!
name: helloworld-sample ...

spec:
size: 1
text: Hello, brusdev! apiVersion: v1
kind: Service
metadata:
name: helloworld-sample
spec:
ports:
- protocol: TCP
port: 8080
targetPort: 8080
...
Demo
Resources
● https://github.com/brusdev/hello-world-http
● https://github.com/brusdev/hello-world-operator
● https://sdk.operatorframework.io/
● https://kubernetes.io/docs/concepts/extend-kubernetes/operator/
Thank you!

You might also like