Focus on your software …
The Kubernetes Universal Declarative Operator (KUDO) is a highly productive toolkit for writing operators for Kubernetes.
… not deploying it to Kubernetes
Using KUDO, you can deploy your applications, give your users the tools they need to operate it, and understand how it's behaving in their environments – all without a PhD in Kubernetes.
Use declarative templates
KUDO let’s you configure an operator’s lifecycle using a declarative spec. You don’t have to write Go unless you want to.
There's more to life than Kubernetes
Software like databases weren't built only to run on Kubernetes. They already have a rich set of tooling for deployment and operations, no matter where they are deployed. These tools are written, tested, and maintained by the experts who know this software best.
KUDO encourages you to build operators that take advantage of this work.
Instead of re-writing all of these tooling in Go, KUDO allows you to encapsulate your operations into plans. As a operator developer, plans are your route for exposing batteries-included operations for your software. As a user, run plans like backup and restore in confidence that these plans work and are tested.
Complicated lifecycle? Keep it simple
Software with complicated lifecycles is the kind of software KUDO optimizes for. In many cases, submitting a bunch of manifests and letting pods crash until other pods have run creates additional complexity in the deployment and maintenance of this software.
Init Containers go awry, binaries get wrapped in esoteric launch scripts that are hard to debug, and Kubernetes users have to navigate a minefield of misleading data with poor resolution. The solution? Write software that deploys your software and handles this sequencing for you.
KUDO brings sequencing of complicated software lifecycles without having to build software to do it for you. Plans contain phases, steps, and tasks, allowing plans to represent the full lifecycle of your application's stages.
Other tools require learning a programming language, learning the API, or learning a DSL specific for building operators. For many teams, this doesn't overlap with their core competencies.
Additionally, when a new version of Kubernetes is released, you have to wait for your toolkit to update to take advantage of any new upstream features in Kubernetes.
KUDO operators are just a series of Custom Resource Definitions and Kubernetes templates, with configuration provided by Go Templates. Operators can even inherit from other formats, such as Helm, to quickly be able to re-use these formats and become rapidly productive with KUDO.