Azure / open-service-broker-azure

The Open Service Broker API Server for Azure Services
https://osba.sh
MIT License
248 stars 101 forks source link

Missing capability for unique identifiers of services and plans when deploying multiple space-scoped instances in multi-tenant CF environments such as SAP Cloud Platform #477

Open mszcool opened 6 years ago

mszcool commented 6 years ago

When adding a service broker to a CF environment, Service IDs, Service Names and Plan IDs need to be unique for the entire Cloud Foundry environment.

This is especially important for multi-tenant CF environments such as SAP Cloud Platform. In those cases, multiple individual customers get their own organizations and spaces and don't have the permission to change global configurations. That means, Service Brokers can only installed in a space-scoped fashion within a space of the owned organization.

That means, the OSBA cannot be used by end customers of SAP when they are using SAP Cloud Platform. The reason is, that one deployment of an instance of the OSBA of one customer would conflict with another deployment-attempt of the OSBA of a second customer because service names, IDs and plan IDs need to be globally unique across the CF environment even if they are deployed space-scoped.

I've implemented a solution to this for the Azure Meta Service Broker and filed a pull-request. I might do this for the OSBA as well, but don't have the bandwidth right now. Hence I am filing this as an issue. A solution similar to the one I've implemented for the Meta Service Broker as part of this pull request (https://github.com/Azure/meta-azure-service-broker/pull/177) would be highly appreciated for the initial GA to make the OSBA usable in SAP CP across multiple customers.

Thanks Mario

jeremyrickard commented 6 years ago

This also seems like a general problem that CF should solve: https://github.com/cloudfoundry/cloud_controller_ng/issues/837

krancour commented 6 years ago

I feel like if that feature were available, I'd be reluctant to use it or recommend it because it would limit portability of manifests-- I tend to view things through a k8s lens. But maybe this is less of a factor in the CF world? (I'm totally not a CF guy.) I suppose if this feature were disabled by default and used only to enable compatibility with multi-tenant CF clusters, I'd probably be ok with it.

I did look at what you PR'ed to MASB and my initial reaction is that it seems reasonable. We'll be happy to look if you want to PR something similar here.

krancour commented 6 years ago

And I do totally agree that this seems like something CF should fix. The OSB spec doesn't say brokers have to do this-- and it cannot add that requirement without revving the spec to v3. That pretty much leaves the ball in CF's court.