When an operator is uninstalled via the UI, the controller deployment is removed from the cluster as it is owned by the operator's subscription, and CRDs are left as-is. However, if the operator follows the recommended flow for adding CRD conversion webhooks, this uninstall will result in broken conversion webhooks (as the deployment that handles them is gone).
This results in garbage collection across the cluster being broken, e.g. [1]. In OpenShift 4.10, it will also result in the cluster entering a degraded state [2].
Background:
The DevWorkspace Operator (and the Web Terminal Operator, which depends on it) use conversion webhooks for their CRDs. Uninstalling the DevWorkspace Operator requires a significant manual process, documented here
To reproduce the issue in [1], it should be sufficient to install the DevWorkspace Operator via OperatorHub on a cluster, and then remove it.
[1] - https://bugzilla.redhat.com/show_bug.cgi?id=2010647
[2] - https://github.com/openshift/enhancements/pull/908/files#diff-4c414d04bf185452eac4e74cd1a4736a4e94d72b582a97b04763ea32300f18ebR176