linode / provider-ceph

Provider Ceph is a Crossplane provider capable of managing S3 Buckets on one or more Ceph clusters.
Apache License 2.0
19 stars 3 forks source link

Return error for unhealthy backend discovery during subresrource observeBackend calls #298

Closed nolancon closed 4 weeks ago

nolancon commented 1 month ago

Description of your changes

When we Observe a subresource client, we skip over any unhealthy backends. We do this so as not to block subsequent Create/Update/Delete calls after observation.

However, during Update we also perform this check/skip as part of lower level observeBackend function calls - this can result in Update silently failing to reconcile a subresource on a backend due to a momentarily unhealthy state.

As such, the check for the backend's healthiness has been split for each subresource client:

I have:

How has this code been tested

Existing tests - this change fixes a very specific edge case which is difficult to reproduce.