Difficulty: Intermediate
Estimated Time: 25 minutes

Creating and Operator based on KUDO

Kubernetes Universal Declarative Operator (KUDO) provides a declarative approach to building production-grade Kubernetes Operators covering the entire application lifecycle.

Operator Pattern

If you find yourself needing to manage specialize services and solution sets on Kubernetes, often writing an Operator provides controllers to manage these complexities. An Operator contains imperative management logic that react to declarative requests and Kubernetes events. More about the Operator Pattern can be found here. There are a variety of projects that offer you development solutions for writing Operators. KUDO is a prominent solution for writing Operators. The scenario teaches you how to use KUDO.

About KUDO

KUDO is an open source Apache 2.0 project governed by the good people at D2IQ and others. KUDO is a much easier way to write an Operator as it embraces a declarative form over imperative Go based coding.

In this scenario you will hand craft a Operator, create an Operator repository, and run the Operator to coordinate with your Kubernetes cluster.

In this scenario you will learn how to:

  • Install the KUDO plugin into kubectl
  • Generate an Operator
  • Configure Operator logic
  • Package and Server an Operator

Conclusion

Although this was a very simple Operator, you should now be familiar with the tooling and procedures needed to start developing real Operators used to solve some of your more intricate software lifecycle management challenges.

Using KUDO you can deploy your applications, have the tools needed to operate them, and understand how they're behaving – all without a Ph.D. in Kubernetes.

KUDO lets you configure an Operator’s entire lifecycle using a declarative spec, including things like backup/restore. You don’t have to write Go unless you want to.

Lessons Learned

With these steps you have learned:

  • ✔ how to install the KUDO plugin into kubectl,
  • ✔ how to generate an Operator,
  • ✔ how to configure Operator logic,
  • ✔ how to package and Server an Operator.

Special Thank You

To Ken Sipe as he inspired this scenario from his labs found here.

References


For a deeper understanding of these topics and more join
Jonathan Johnson
at various conferences, symposiums, workshops and meetups.

Software Architectures ★ Speaker ★ Workshop Hosting ★ Kubernetes & Java Specialist

Develop an Operator with Kubebuilder

Step 1 of 6

Your Kubernetes Cluster

For this scenario, Katacoda has just started a fresh Kubernetes cluster for you. Verify it's ready for your use.

kubectl version --short && \ kubectl get componentstatus && \ kubectl get nodes && \ kubectl cluster-info

The Helm package manager used for installing applications on Kubernetes is also available.

helm version --short

Kubernetes Dashboard

You can administer your cluster with the kubectl CLI tool or use the visual Kubernetes Dashboard. Use this script to access the protected Dashboard.

token.sh