serving-operator icon indicating copy to clipboard operation
serving-operator copied to clipboard

Remove custom resource cleanup logic.

Open Cynocracy opened this issue 4 years ago • 2 comments

Problem Today, every time a resource needs to be deleted from an older minor version X, the Operator is updated with custom code in release X+1 which cleans up those resources.

Generally, so long as the Operator is only upgraded by one minor version at a time, we can remove the code after a minor release. However due to the existence of https://github.com/knative/serving-operator/issues/3, we cannot guarantee that the cleanup is unnecessary or that the user goes up by one minor release (though it's highly recommended).

I propose we begin to implement some parts of the Knative Operator rethink

Specifically:

  • Move resource cleanup into minor version tagged directories paths (just post-upgrade for now).
  • Vendor these into the Operator
  • When performing an upgrade, identify the minor version that is currently present (X) and the version being upgraded to (Y)
  • Upgrade to Y
  • Run all post-upgrade Jobs present between X and Y.

Later to fix https://github.com/knative/serving-operator/issues/3, we can vendor all minor version releases < X in Operator X, and go through the upgrade minor by minor.

Persona: Which persona is this feature for? This is largely an improvement in code structure, rather than a feature. Thus, this primarily targets the Contributors persona, and improves the process of maintaining the code, by lowering the number of version specific changes that are made to the Operator codebase.

Exit Criteria No custom deletion logic exists in the Operator.

Time Estimate (optional): How many developer-days do you think this may take to resolve? 2 developer-weeks or so, I'm hoping :)

Cynocracy avatar Apr 14 '20 19:04 Cynocracy