KUDO is a well designed operator with modern AppOps in mind. Custom process flows that can execute commands and make calls to Kubernetes APIs combined with an operator repository unifies the best parts of application lifecycle management tools out in the ecosystem we were looking for our production environment. As contributor and maintainer of the OpenEBS project, we are also excited to join the list of operators with the upcoming release of OpenEBS KUDO operator. KUDO will support OpenEBS community's need to simplify day 2 operations for stateful applications as well as storage in Kubernetes.– Murat Karslioglu VP of Product at MayaData / Maintainer OpenEBS Project
Focus on your software …
The Kubernetes Universal Declarative Operator (KUDO) is a highly productive toolkit for writing Kubernetes Operators.
… not on deploying it to Kubernetes
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.
Automate Day-2 Operations
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.
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.