Operators = good, building them = meh? Maestro to the rescue

Operators = good, building them = meh? Maestro to the rescue

Mesosphere again extended the open source universe by announcing operator building tool Maestro.

Operators are methods of packing, deploying and managing applications deployed on Kubernetes and managed with the orchestrator’s APIs and tooling (“Kubernetes native apps”). The concept was mainly introduced by the CoreOS team, which now is part of the Red Hat family. Operators use basic Kubernetes resources and controller concepts and add domain or even application-specific knowledge for the automation of common tasks.

Since setting operators up needs in-depth knowledge of advanced Kubernetes concepts and configuration formats, getting them right can take some time. This in turn might prevent some admins from making use of them at all or just falling back on them for scenarios with little complexity like initial deployments.

Mesosphere wants to change that by open sourcing Apache-2-licensed Maestro. While there are already projects, such as Awesome Operators, that collect operators for specific purposes (mainly the mentioned first deployments, though), Maestro is meant to help with automating tasks such as failure recovery or upgrades of binaries. It not only provides a way to build operators declaratively by using custom resource definitions, but also a universal operator implementation, which can be used as a basis for complex operators.

If the concept seems familiar, it may be because it’s mainly derived from Mesosphere’s DC/OS Commons SDK which captured patterns for framework building. Maestro basically transfers this idea to the world of Kubernetes.

The core of the universal operator is a declarative spec that describes framework details such as the deployment plan and required components to start a package. Plans in Maestro are similar to runbooks which should help users familiar with them to model system events such as configuration updates and failure recovery for intricate operators.

To start with, only a few lifecycle hooks will be supported, so you still might have to do quite some legwork during the app automation process. An implementation of arbitrary plan specifications or plan overriders however are already on the roadmap, according to Mesosphere CTO Tobias Knaup.