Operator development
made easy with Helm
Olaf Meyer
Senior Consultant
29.07.2021
Operator development made easy with Helm Page 2 of 17
Who am I and what do I do for living?
I’m a consultant at ConSol. I support &
advise customers how to use OpenShift
and Kubernetes and how to run
applications on these platforms.
My interest is how to accelerate the
development cycles for cloud native
applications.
Twitter: @ola_mey
Operator development made easy with Helm Page 3 of 17
About Consol Software GmbH
Software
Engineering
Whether with modern
software architecture,
cloud-native software, IT
integration or customized
CI/CD pipelines –
we understand our
technological
know-how as an offer to
master the challenges of
digitalization.
IT Solutions
We develop IT solutions
with a high utility value
and pursue ideas beyond
our current business. The
results? For example our
software ConSol CM, our
open source offer for test
automation or
Red Hat Solutions.
IT Operations
Managed services, IT
operations or support –
at ConSol you choose
exactly the services that
an efficient IT requires.
For any project size,
whether on premises or
in the cloud. Individual
SLAs ensure calculable
costs at all times.
IT Consulting
No matter whether
coaching, consulting in
a special field or
complete management
of your IT project: With
more than 30 years of
competence, our
consulting services are
above all tailored to
you and realizable.
Operator development made easy with Helm Page 4 of 17
Agenda
• What are Operators?
• Why is this interesting for me as a DevOps Engineer?
• Why should I care about Helm Operators, if I could use Go or ….
• When not to use Operators?
• How to combine Operators with GitOps?
• Demo
• Summary
Operator development made easy with Helm Page 5 of 17
What are Operators?
The term was coined in the article „Introducing Operators: Putting Operational
Knowledge into Software“ by Brandon Philips of CoreOS on 3rd
November 2016.
Definition of Operators from this article:
„We call this new class of software Operators. An Operator is an application-
specific controller that extends the Kubernetes API to create, configure, and
manage instances of complex stateful applications on behalf of a Kubernetes
user. It builds upon the basic Kubernetes resource and controller concepts but
includes domain or application-specific knowledge to automate common
tasks.“
Operator development made easy with Helm Page 6 of 17
What are Operators?
https://github.com/cncf/tag-app-delivery/blob/master/operator-wg/whitepaper/Operator-WhitePaper_v1-0.md
Operator development made easy with Helm Page 7 of 17
What are Operators?
Frameworks that help you create Operators (a not complete list)
• Operator Framework (https://operatorframework.io/)
• Kopf - Kubernetes Operator Pythonic Framework
(https://github.com/nolar/kopf)
• Kubebuilder (https://book.kubebuilder.io/)
• Metacontroller (https://metacontroller.github.io/metacontroller/)
• Kubernetes Universal Declarative Operator (https://kudo.dev/)
• Charmed Operator Framework (https://juju.is/)
• Shell-operator (https://github.com/flant/shell-operator)
• Write your own ...
Operator development made easy with Helm Page 8 of 17
Operator Framework
3 Pillars of the Operator Framework
1) Operator SDK
– Helm
– Ansible
– Go (Scaffolding by kubebuilder)
2) Operator Lifecycle Manager
3) Operatorhub.io
Operator development made easy with Helm Page 9 of 17
Operator Capability Levels
https://sdk.operatorframework.io/docs/overview/operator-capabilities/
Operator development made easy with Helm Page 10 of 17
Why use helm to create Operators?
• Helm is a broadly adopted framework for packaging of K8s applications
• Easy to learn and to read → Good starting point to create Operators
• Can later still be used for creating and updating K8S resources in other
Operators
• Defined CRD allow documentation and validation of user input
Operator development made easy with Helm Page 11 of 17
When not use helm to create Operators?
• Operator manages for K8s and non-K8S resources
• Deployment and updates require complex data- or application migration
Operator development made easy with Helm Page 12 of 17
When not create Operators?
• Only a few instances of the applications need to be installed
• No or seldom updates of existing applications
Operator development made easy with Helm Page 13 of 17
Demo(s)
1) Create helm Operator from a Nginx Helm-Chart
2) Combine two Operators with ArgoCD
– Project setup Operator → Creates namespaces, quota, limit ranges and
admin user based on CR
– Deploys example applications Java, NodeJs and Rails based on CR
Operator development made easy with Helm Page 14 of 17
Demo(s)
Operator development made easy with Helm Page 15 of 17
Summary
• Creating (Helm) Operators is easy
• Do not underestimate the effort for testing and documentation
– Applies to all kinds of Operators
• CRDs are handled like every other resource in K8S
• A journey of a Helm operator to OperatorHub.io and back again
(https://labs.consol.de/development/2021/05/03/helm_based_operator.html)
Thank you!
Olaf Meyer
Twitter: @ola_mey
ConSol
Consulting & Solutions Software
GmbH
St.-Cajetan-Str. 43
D-81669 München
Tel.: +49-89-45841-100
info@consol.de
www.consol.de
Twitter: @consol_de

"Operator development made easy with Helm"

  • 1.
    Operator development made easywith Helm Olaf Meyer Senior Consultant 29.07.2021
  • 2.
    Operator development madeeasy with Helm Page 2 of 17 Who am I and what do I do for living? I’m a consultant at ConSol. I support & advise customers how to use OpenShift and Kubernetes and how to run applications on these platforms. My interest is how to accelerate the development cycles for cloud native applications. Twitter: @ola_mey
  • 3.
    Operator development madeeasy with Helm Page 3 of 17 About Consol Software GmbH Software Engineering Whether with modern software architecture, cloud-native software, IT integration or customized CI/CD pipelines – we understand our technological know-how as an offer to master the challenges of digitalization. IT Solutions We develop IT solutions with a high utility value and pursue ideas beyond our current business. The results? For example our software ConSol CM, our open source offer for test automation or Red Hat Solutions. IT Operations Managed services, IT operations or support – at ConSol you choose exactly the services that an efficient IT requires. For any project size, whether on premises or in the cloud. Individual SLAs ensure calculable costs at all times. IT Consulting No matter whether coaching, consulting in a special field or complete management of your IT project: With more than 30 years of competence, our consulting services are above all tailored to you and realizable.
  • 4.
    Operator development madeeasy with Helm Page 4 of 17 Agenda • What are Operators? • Why is this interesting for me as a DevOps Engineer? • Why should I care about Helm Operators, if I could use Go or …. • When not to use Operators? • How to combine Operators with GitOps? • Demo • Summary
  • 5.
    Operator development madeeasy with Helm Page 5 of 17 What are Operators? The term was coined in the article „Introducing Operators: Putting Operational Knowledge into Software“ by Brandon Philips of CoreOS on 3rd November 2016. Definition of Operators from this article: „We call this new class of software Operators. An Operator is an application- specific controller that extends the Kubernetes API to create, configure, and manage instances of complex stateful applications on behalf of a Kubernetes user. It builds upon the basic Kubernetes resource and controller concepts but includes domain or application-specific knowledge to automate common tasks.“
  • 6.
    Operator development madeeasy with Helm Page 6 of 17 What are Operators? https://github.com/cncf/tag-app-delivery/blob/master/operator-wg/whitepaper/Operator-WhitePaper_v1-0.md
  • 7.
    Operator development madeeasy with Helm Page 7 of 17 What are Operators? Frameworks that help you create Operators (a not complete list) • Operator Framework (https://operatorframework.io/) • Kopf - Kubernetes Operator Pythonic Framework (https://github.com/nolar/kopf) • Kubebuilder (https://book.kubebuilder.io/) • Metacontroller (https://metacontroller.github.io/metacontroller/) • Kubernetes Universal Declarative Operator (https://kudo.dev/) • Charmed Operator Framework (https://juju.is/) • Shell-operator (https://github.com/flant/shell-operator) • Write your own ...
  • 8.
    Operator development madeeasy with Helm Page 8 of 17 Operator Framework 3 Pillars of the Operator Framework 1) Operator SDK – Helm – Ansible – Go (Scaffolding by kubebuilder) 2) Operator Lifecycle Manager 3) Operatorhub.io
  • 9.
    Operator development madeeasy with Helm Page 9 of 17 Operator Capability Levels https://sdk.operatorframework.io/docs/overview/operator-capabilities/
  • 10.
    Operator development madeeasy with Helm Page 10 of 17 Why use helm to create Operators? • Helm is a broadly adopted framework for packaging of K8s applications • Easy to learn and to read → Good starting point to create Operators • Can later still be used for creating and updating K8S resources in other Operators • Defined CRD allow documentation and validation of user input
  • 11.
    Operator development madeeasy with Helm Page 11 of 17 When not use helm to create Operators? • Operator manages for K8s and non-K8S resources • Deployment and updates require complex data- or application migration
  • 12.
    Operator development madeeasy with Helm Page 12 of 17 When not create Operators? • Only a few instances of the applications need to be installed • No or seldom updates of existing applications
  • 13.
    Operator development madeeasy with Helm Page 13 of 17 Demo(s) 1) Create helm Operator from a Nginx Helm-Chart 2) Combine two Operators with ArgoCD – Project setup Operator → Creates namespaces, quota, limit ranges and admin user based on CR – Deploys example applications Java, NodeJs and Rails based on CR
  • 14.
    Operator development madeeasy with Helm Page 14 of 17 Demo(s)
  • 15.
    Operator development madeeasy with Helm Page 15 of 17 Summary • Creating (Helm) Operators is easy • Do not underestimate the effort for testing and documentation – Applies to all kinds of Operators • CRDs are handled like every other resource in K8S • A journey of a Helm operator to OperatorHub.io and back again (https://labs.consol.de/development/2021/05/03/helm_based_operator.html)
  • 16.
  • 17.
    Olaf Meyer Twitter: @ola_mey ConSol Consulting& Solutions Software GmbH St.-Cajetan-Str. 43 D-81669 München Tel.: +49-89-45841-100 info@consol.de www.consol.de Twitter: @consol_de