Architecting Platform Abstractions: Operator Development vs. Composite Resource Tools
When developing platforms, our objective is to abstract complexity away from users by providing easy-to-use interfaces facilitated through APIs such as Kubernetes' API and Custom Resource Definitions (CRDs). The challenge frequently arises of determining when the development of custom controllers for new functionalities is necessary. Over time, an ecosystem has emerged that suggests alternative approaches which may reduce or even eliminate the requirement to write controller code from scratch. This presentation will delve into the fundamentals of Kubernetes extension, briefly covering how to create controllers and then pivoting towards the tools that might save us the trouble, using projects like the Kubernetes Resource Orchestrator (KRO) or Crossplane compositions as examples. By the end of this talk, you will have a comprehensive overview on when it is appropriate to build your own operators and when leveraging existing tools can achieve the same result with less code, allowing for more efficient development and maintenance cycles in the realm of Kubernetes-based platform construction.