As background I’m working on a SaaS product and I want to be able to offer up the ability to switch different applications in and out for one another (assuming backwards / forwards compatibility). As part of this, I’m evaluating different ways to keep different kubernetes clusters in sync with potentially heterogeneous deployment configurations. This is challenging for a few different reasons, but application and cluster lifecycle management is right at the forefront of my concerns right now. To accomplish this I’m rapidly coming to the conclusion that it’s necessary to have (at least?) 1 Operator to manage the lifecycle.
I’ve been through a decent chunk of the documentation but I have a few questions about how kubernetes works under the hood. In particular:
It sounds like Controllers are designed to work on a single Kind, does this mean writing a custom Operator implies defining a custom Kind?
How does kubernetes decide which Controller(s) are applied? Is there some order of precedence or some inclusion / exclusion criteria?
Can anyone offer up their $0.02 on this? It would be greatly appreciated!