cloudfoundry / korifi

Cloud Foundry on Kubernetes
Apache License 2.0
318 stars 65 forks source link

Do not fail service instance on broker server error #3607

Closed georgethebeatle closed 1 week ago

georgethebeatle commented 1 week ago

Is there a related GitHub Issue?

No

What is this change about?

Do not fail service instance on broker server error

Previously we were setting the ProvisioningFailedCondition to true if the broker returned error on provision, no matter the error. The problem with doing this is that the error can be recoverable, such as the network flaking, but the instance is sent to a state from which it cannot recover (When the ProvisioningFailedCondition is set the reconciler gives up early in the reconciliation loop).

This change fixes the problem described above by defining a new UnrecoverableError type in the osbapi client. The controller would then set the ProvisioningFailedCondition only if the error it received is an UnrecoverableError.

According to the OSBAPI spec unrecoverable perovision error codes are 400, 409 and 422.