You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We have decided to have a single reconciler for bindings toboth managed and user-provided service instacnes. A cfservicebinding resource does not have a field indicating the type of its respective cfserviceinstance, menaninig that in order to tell one type of binding from the other one has to first look up the instance. Looking up the instance could return an error, making it impossible to implement an event filter that would distribute different types of bindings to different reconcilers (like we have done for instances). The event filter is based on a predicate function, but a predicate function cannot return an error.
We have created a single bindings controller that reconclies managed and user-provided bindings alike, but it looks up their respective instances and based on the type of instance it delegates to a sub-reconciler for any specific reconciliation logic for the respective type of binding.
So far the specific logic has been:
create the respective secret containing credentials
create the sericebinding.io resource so that these credentials are projected as a volume mount.
Everything else has been done by the main reconciler in a shared manner. However we have noticed that some conditional logic discerning managed from user-provided services has started to emerge in the main reconciler including
how we build the sericebinding.io binding
what do we do prior to removing the finalizer
what does it mean for the binding to be ready
Therefore it would make sense to remove those conditionals and split the logic between the specific sub-reconcilers, leaving only the dispatching based on the service instance type in the main reconciler.
The text was updated successfully, but these errors were encountered:
The logic for servicebinding.io creation is moved to the respective
controllers and some consants are moved to the korifiv1alpha1 package
fixescloudfoundry#3576
Background
We have decided to have a single reconciler for bindings toboth
managed
anduser-provided
service instacnes. Acfservicebinding
resource does not have a field indicating the type of its respectivecfserviceinstance
, menaninig that in order to tell one type of binding from the other one has to first look up the instance. Looking up the instance could return an error, making it impossible to implement an event filter that would distribute different types of bindings to different reconcilers (like we have done for instances). The event filter is based on a predicate function, but a predicate function cannot return an error.We have created a single bindings controller that reconclies
managed
anduser-provided
bindings alike, but it looks up their respective instances and based on the type of instance it delegates to a sub-reconciler for any specific reconciliation logic for the respective type of binding.So far the specific logic has been:
Everything else has been done by the main reconciler in a shared manner. However we have noticed that some conditional logic discerning
managed
fromuser-provided
services has started to emerge in the main reconciler includingTherefore it would make sense to remove those conditionals and split the logic between the specific sub-reconcilers, leaving only the dispatching based on the service instance type in the main reconciler.
The text was updated successfully, but these errors were encountered: