I was wondering if there was any good reason other operators couldn't respond to the node maintenance CRD and make decisions about what to do with resources tied to the node (like local storage).
The real life example I was considering would require us to add an optional field to the MaintenanceCRD where the length of the maintenance is estimated.
Flow:
- A storage operator has replicated data on the nodes and wants to put a node in maintenance.
- User puts a node into Maintenance by creating a NodeMaintenance object.
- In the NM object, the user estimates how many minutes the Node is going to be in maintenance for.
- The storage on that node goes down. The storage operator must choose whether to recreate the replicated data elsewhere (to maintain the # of replicas) or to wait for the node to come up.
- If the estimated maintenance time > (the estimated time to recreate the replicated data + SOME_OFFSET), then recreate the data elsewhere
- else, wait for the node to come up.
- if the node does not come up within that time limit, recreate the data elsewhere.
I was wondering if there was any good reason other operators couldn't respond to the node maintenance CRD and make decisions about what to do with resources tied to the node (like local storage).
The real life example I was considering would require us to add an optional field to the MaintenanceCRD where the length of the maintenance is estimated.
Flow: