Currently, new CROs are created with an initial status. Only after the first reconciliation through
the controller, the status will be populated. In the timeframe between creation and first reconciliation, the initial status will make certain observers (such as kstatus) treat the object as 'ready', although it is by far not.
Solution: do some (meaningful) defaulting in the CRD itself; then K8s apiserver will ensure upon creation that the status is not initial. For example, by defaulting status.observedGeneration: -1, with something like
Currently, new CROs are created with an initial status. Only after the first reconciliation through the controller, the status will be populated. In the timeframe between creation and first reconciliation, the initial status will make certain observers (such as kstatus) treat the object as 'ready', although it is by far not.
Solution: do some (meaningful) defaulting in the CRD itself; then K8s apiserver will ensure upon creation that the status is not initial. For example, by defaulting status.observedGeneration: -1, with something like
in the CRD schema specification.
Issue moved from https://github.tools.sap/cs-devops/clustersecret-controller/issues/61