During this month's Operator Framework SIG Meeting, I presented an update on the latest happenings with Ansible Operators (slides here). I touched on a few topics that I wanted to share with the greater universe.

  1. Ansible Operators are being demonstrated as a way to bring existing automation into Kubernetes
  2. Report from AnsibleFest Atlanta 2019 Workshop
  3. Mcrouter Operator powered by Ansible Operator
  4. GitHub Project Board

What is an Operator?
Operators are a design pattern made public in a 2016 CoreOS blog post. The goal of an Operator is to put operational knowledge into software. Operators implement and automate activities in a piece of software running inside your Kubernetes cluster, by integrating natively with Kubernetes concepts and APIs. We call this a Kubernetes-native application.

Webinar: Building Kubernetes Operators in an Ansible-native way
Tim Appnel and Chris Short walk through Kubernetes, Operators, and how using Ansible Operators lowers the barrier to entry to automating with Kubernetes.

Ansible Operators bringing existing automation to Kubernetes

In general, the Operator Framework, Kubernetes, and Ansible are a match made in heaven. They use YAML, they play a distinct part in the automation landscape of the future, and are all open source.

What Ansible Operators enable is the ability to take an Ansible Role (even one from Ansible Galaxy) that targets Kubernetes, and with almost no extra effort turn it into a Kubernetes Operator. This means that your Ansible content can be deployed into a Kubernetes cluster, and will trigger in reaction to events that Kubernetes emits.

In general, one thing I've noticed with Ansible Operators is that a lot of people have understanding of Kubernetes primitives and how they work together. But, few of those people are Go developers. Operators, like most of the cloud native ecosystem, are traditionally written in Go. The Operator SDK's inclusion of Ansible helps a much larger group write Operators. More people can write Ansible than Go it seems.

Building Kubernetes Operators with Ansible Hands-on Workshop

I mentioned most of this in my AnsibleFest Atlanta 2019 Trip Report but here are the big takeaways from the presentation:

  • Sold out! All 100 registrations taken.
  • 138 seats in room; about a dozen or so folks filled in
  • Workshop content is public now: http://workshop.coreostrain.me

But the most important part of this section was thanking the team of folks involved in getting an Ansible Operators workshop to AnsibleFest Atlanta. Huge thank you to Michael Hrivnak, Shawn Hurley, Fabian von Feilitzsch, Melvin Hillsman, Jeff Geerling, Tim Appnel, and Matt Dorn.

Mcrouter Operator powered by Ansible Operator

The hardest we have with Ansible Operators is how to demonstrate a very powerful tool for distributed systems in a time boxed scenario. Trying to explain Kubernetes and Operators to a room full of Ansible folks with varying degrees of Kubernetes experience was the challenge laid out to the team before AnsibleFest Atlanta.

Tim Appnel found a good use case to demonstrate the capabilities of an Ansible Operator that's not too complex but, does allow for data to enter into a system instantiated by an Ansible Operator: Mcrouter

Mcrouter is a memcached protocol router for scaling memcached deployments. It's a core component of cache infrastructure at Facebook and Instagram where mcrouter handles almost 5 billion requests per second at peak. Mcrouter is developed and maintained by Facebook.

Matt Dorn, Jeff Geerling (who did a marvelous Mcrouter Operator write-up), and Melvin Hillsman got it working for AnsibleFest. It is now part of the learn.opernshift.com Katacoda site for you to get up and running live in a web browser: Mcrouter Operator powered by Ansible Operator

Ansible Operator Community Project Board

The team is going to be using a GitHub Project Board (that I still need to populate) to track work that the group is doing. The goal is for asynchronous work from distributed groups to be able to occur and be tracked from one place.

If you're working on an Ansible Operator and are interested in getting help, publishing it on OperatorHub.io, or just want me to talk about it, please feel free drop me a line. We're always interested in hearing how folks are building things.

Want to Learn More?

Join the Operator Framework Special Interest Group to get up and running in the Operator Framework community.

OperatorHub.io is a home for the Kubernetes community to share Operators. Find an existing Operator


About the author

Red Hatter since 2018, tech historian, founder of themade.org, serial non-profiteer.

Read full bio