Improving Service Access in Cloud Foundry Application Runtime


Krannich, Bernd <bernd.krannich@...>
 

Hi Matt,

 

I was already tempted to ping you about the status of the topic. Seems like all the lobbying I did, both in writing [1] and in person is coming to a good end. ūüėČ

 

I already left my feedback in the document and the suggested solution you outlined below looks good from my perspective.

 

Thanks so much, I believe users will like this quite a bit!

 

Regards,

Bernd

 

[1] https://github.com/cloudfoundry/cloud_controller_ng/issues/837

 

From: <cf-dev@...> on behalf of Matt McNeeney <mmcneeney@...>
Reply-To: "cf-dev@..." <cf-dev@...>
Date: Tuesday, 15. May 2018 at 10:15
To: "Discussions about Cloud Foundry projects and the system overall." <cf-dev@...>
Subject: [cf-dev] Improving Service Access in Cloud Foundry Application Runtime

 

Hi all,

 

In Cloud Foundry Application Runtime, a Service Broker can only be registered once (either globally or space-scoped). This is because the Cloud Controller detects conflicts in the information exposed in a Service Broker's Catalog. However, we are aware of a number of use cases in which the same Service Broker should be registered multiple times in the platform, for example:

  • Development teams want to try out different Service Brokers for development (databases are commonly used) and register these as space-scoped. In multi-tenant environments, only the 'first' development team who tries to register a given Service Broker would succeed.
  • Different lines of business in a company want to register the same service broker (but using different credentials for billing purposes) into their Cloud Foundry orgs or spaces. These credentials are provided to the platform when a Service Broker is being created (or updated).

 

The CF Services API team would like to tackle this problem and have outlined a number of possible solutions in this proposal [0]. The solution we believe best solves this problem is allowing the name of a Service Broker to be used as an optional argument when multiple services with the same name are available in the marketplace. This would mean exposing the user-defined name of Service Brokers to all developers for the first time (we don't believe these to be confidential), and updating a number of CLI commands to display/consume this additional field.

 

For example, the marketplace would now should the name of a broker:

 

$ cf marketplace

service           plans         broker          description

service1          small         broker1         An example service

service1          small         broker2         An example service

 

And to create a new service instance using service1, the broker name would have to be provided:

 

$ cf create-service service1 small my-service

More than one service called ‚Äėmysql‚Äô is available. Please specify the name of the broker from which to provision this service with the ‚Äė-b‚Äô flag.

 

$ cf create-service service1 small my-service -b broker1

OK

 

 

We are looking for feedback on this proposal before we start this work, so please provide any feedback you have over the next week!

 

 

 

 

 


Matt McNeeney
 

Hi all,

In Cloud Foundry Application Runtime, a Service Broker can only be registered once (either globally or space-scoped). This is because the Cloud Controller detects conflicts in the information exposed in a Service Broker's Catalog. However, we are aware of a number of use cases in which the same Service Broker should be registered multiple times in the platform, for example:
  • Development teams want to try out different Service Brokers for development (databases are commonly used) and register these as space-scoped. In multi-tenant environments, only the 'first' development team who tries to register a given Service Broker would succeed.
  • Different lines of business in a company want to register the same service broker (but using different credentials for billing purposes) into their Cloud Foundry orgs or spaces. These credentials are provided to the platform when a Service Broker is being created (or updated).

The CF Services API team would like to tackle this problem and have outlined a number of possible solutions in this proposal [0]. The solution we believe best solves this problem is allowing the name of a Service Broker to be used as an optional argument when multiple services with the same name are available in the marketplace. This would mean exposing the user-defined name of Service Brokers to all developers for the first time (we don't believe these to be confidential), and updating a number of CLI commands to display/consume this additional field.

For example, the marketplace would now should the name of a broker:

$ cf marketplace
service           plans         broker          description
service1          small         broker1         An example service
service1          small         broker2         An example service

And to create a new service instance using service1, the broker name would have to be provided:

$ cf create-service service1 small my-service
More than one service called ‚Äėmysql‚Äô is available. Please specify the name of the broker from which to provision this service with the ‚Äė-b‚Äô flag.

$ cf create-service service1 small my-service -b broker1
OK


We are looking for feedback on this proposal before we start this work, so please provide any feedback you have over the next week!