Understanding the need for advanced functionality
With a basic, functional Operator already built and ready for deployment, you may be asking, What else do I really need? Indeed, now that your operand is installable and its health is managed by your Operator, there may be nothing more to do. This is a perfectly acceptable level of functionality for an Operator to have. In fact, it may be preferable to start with a simple Operator and iterate as your development resources allow (recall discussing this in Chapter 3, Designing an Operator – CRD, API, and Target Reconciliation).
The point is that there is no shame during the development of your Operator in stopping here. The Capability Model defines lower-level Operators for a reason (in other words, if it was unacceptable to have an Operator that can only install an operand, then why would Level I be defined at all?).
However, the Capability Model does define higher-level Operators for a reason too. It is not difficult to...