An operator is a set of CustomResourceDefinitions (CRDs) that extends the Kubernetes API and a controller that handles the new API objects. Not only have the number of projects following the operator pattern exploded, but so have the number of ways to bootstrap an operator. The operator pattern is the basis for Kubernetes’ extensibility, but it is difficult to achieve the same robustness as in-tree APIs/controllers.
In this talk, the speakers will present what it takes to write a production-ready Operator based on their experience developing and running Kanister in production. They will compare popular operator kits, SDKs, and guides, presenting their trade-offs. Best practices for building, testing, and API versioning will also be covered. After the talk, the audience will feel comfortable developing a production-ready operator. Familiarity with CRDs is a suggested prerequisite.