Chapter 6. Solutions for Writing Operators

So far we’ve had a look at custom controllers and operators on a conceptual level in “Controllers and Operators” and, in Chapter 5, how to use Kubernetes code generators—a rather low-level way to deal with the topic. In this chapter we’ll walk through three solutions for writing custom controllers and operators in detail and discuss some more alternatives.

Using one of the solutions discussed in this chapter should help you to avoid writing a lot of repetitive code and enable you to focus on the business logic, rather than on boilerplate code. It should get you started more quickly and make you more productive.


Operators in general, and the tools we discuss in this chapter specifically, are still rapidly evolving as of mid-2019. While we do our best, certain commands and/or their outputs you see shown here, may change. Take this into account, and make sure that you always use the latest version of the respective tool, keeping an eye on the respective issue trackers, mailing lists, and Slack channels.

While there are resources available online that compare the solutions we discuss here, we will not recommend a specific solution to you. We do, however, encourage you to evaluate and compare them yourself and pick the one that is the best fit for your organization and environment.


We will be using cnat (cloud-native at, which we introduced in “A Motivational Example”) as the running example for the different solutions in ...

Get Programming Kubernetes now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.