Date
1 - 5 of 5
Dynamic service catalog
Peter Dotchev <dotchev@...>
Hi folks,
We need to change the set of plans offered by some of our services dynamically. In our use-case we want to provide a separate plan for each service version. When a new service version is deployed, we want to see a new plan for it in the marketplace. My understanding so far is that the service catalog exposed by a service broker is relatively static. AFAIK Cloud Controller fetches the catalog from the broker only during create-service-broker or update-service-broker. Both of these require admin privileges. Is there some other mechanism to update the service catalog in the marketplace? One neat solution could be service brokers to use standard http cache control headers in the response to GET /v2/catalog to declare the expiration time of the catalog. When the marketplace is requested, CC could refetch the expired service catalogs from the respective brokers. Best regards, Peter
|
|
Matt McNeeney
Hey Peter,
toggle quoted messageShow quoted text
This is an interesting use case. The idea of CC periodically refreshing service broker catalog's has been raised a few times before, especially when talking about brokers that aren't deployed on CF, but are managed somewhere else. However, this idea has raised a number of issues in the past, including: - What happens to existing service instances and bindings that were created using a plan that has now disappeared? - What happens to existing service instances and bindings that were created using a plan that has now changed? This is especially important if say the pricing of a plan changes, as there is no method for a developer to 'accept' the new plan. When an admin explicitly updates a service broker, this is mitigated as they are asking the platform to *use *the new catalog. I'm interested to learn more about your broker, and why you want to offer a separate plan for each version. And if you have any thoughts on the above, I'd welcome those too! These has been discussed at length by the OSBAPI working group as we are keen to put the right service/plan deprecation strategies in place to support this kind of workflow. Matt
On Fri, Nov 3, 2017 at 12:01 PM Peter Dotchev <dotchev(a)gmail.com> wrote:
Hi folks,
|
|
Peter Dotchev <dotchev@...>
Hi Matt,
toggle quoted messageShow quoted text
I would expect the behavior to be the same to the explicit broker update as described in the documentation <https://docs.cloudfoundry.org/services/managing-service-brokers.html#catalog-validation> . With cf update-service-broker the admin does not see the catalog changes, so he cannot approve them. In both cases the responsibility for catalog changes is with the broker. AFAIK service prices are not defined in the service catalog but in the billing system, which is outside CF control. In our case we need to support multiple service versions as they are incompatible. Each service version is deployed separately. The broker can discover all deployed versions. When we deploy a new service version, we expect the consumers to see it in the catalog along with the old versions. Asking the admin to update the broker would be an additional manual effort. Best regards, Peter
On Fri, Nov 3, 2017 at 2:58 PM, Matt McNeeney <mmcneeney(a)pivotal.io> wrote:
Hey Peter,
|
|
Matt McNeeney
Thanks Peter, that makes sense. Whilst it is the broker who is responsible
toggle quoted messageShow quoted text
for catalog changes, admins should expect that the catalog (and therefore marketplace entries) *may *change when they update a service broker. If this happens automatically, then I feel we should have a clearer strategy for how service broker authors should modify and delete existing services and plans. Are there any other service broker authors who have this use case? It would be great to hear more feedback on this from others who are struggling with the same issue.
On Mon, Nov 6, 2017 at 9:11 PM Peter Dotchev <dotchev(a)gmail.com> wrote:
Hi Matt,
|
|
Mueller, Florian
Hi Matt,
We have similar scenarios. A service broker catalog may change over time. Removing and changing plans is tricky, but must be possible. The simplest use case is correcting a typo in the service description. To deprecate a service or plan, it might be necessary to change the bindable flag from true to false at some point.
Adding new services and plans should be straight forward, though.
I guess some trivial catalog changes don't need admin consent. Others might be serious but important. It doesn't help if CF thinks a plan is bindable and offers it to the user, but when it tries to create a binding it get an error message from the broker.
Best regards,
Florian
|
|