Closed gmrodgers closed 2 years ago
hey @kubernetes-sigs/service-catalog-maintainers, if you get time could one of yous take a look/assign assignees!
@mszostok @jberkhahn any chance you folks you could get a chance to look at this!
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale
.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta. /lifecycle stale
Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten
.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta. /lifecycle rotten
Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen
.
Mark the issue as fresh with /remove-lifecycle rotten
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta. /close
@fejta-bot: Closing this issue.
/reopen /lifecycle frozen
@jhvhs: Reopened this issue.
This project is being archived, closing open issues and PRs. Please see this PR for more information: https://github.com/kubernetes/community/pull/6632
The goal of this proposal is to enable the ability for users of the
ClusterServiceBroker
resource, provided by service-catalog, to restrict which namespaces in a kubernetes cluster that its service classes/plans can be visible/used from, whilst also reducing the toil on the user by only having to register and manage one broker.Motivation
Currently, if a user of service-catalog wants to restrict the usage of service classes/plans to specific namespaces, they have to use both the namespaced
ServiceBroker
and filterCatalogRestrictions
in their spec. For example, if one wanted to restrict a plan ‘plan-A’ to namespace ‘namespace-1’, one would currently apply the following:But if one wanted to apply this plan restriction to not only ‘namespace-1’ but also namespaces 2..100, then one has to do this 100 times. If one wanted to collate the information of instances/bindings, one would have to do so across 100 namespaces, maintaining a mapping between every one.
Problems
ServiceBroker
resource with the correctCatalogRestrictions
in every namespace.Possible Solution
Our proposed solution to this problem is to modify the
CatalogRestrictions
spec field in theClusterServiceBroker
so that it now has the concept of a namespace. This would look as follows:The
ClusterServiceBroker
controller would then create the broker’s classes and plans via the namespace-scopedServiceClass
andServicePlan
in the namespaces specified in theCatalogRestrictions
. Specifically in this case,ServiceClass
s representing the broker’s classes would be created innamespace-1
andnamespace-2
. And aServicePlan
for representing planplan-A
would be created innamespace-1
andnamespace-2
.Another example would be:
In this case,
ServiceClass
s representing the broker’s service classes would be created innamespace-1
,namespace-2
, andnamespace-3
. And aServicePlan
for representing planplan-A
would be created innamespace-1
andnamespace-2
. All plans for each service class for the broker (includingplan-A
) would have an equivalentServicePlan
innamespace-3
.In the case of deletion of the broker, it would behave similarly to the current behaviour except it would clean up the namespaced versions of the service class and plan resources.
If the namespaces are not specified in the
CatalogRestrictions
, then the current behaviour will be maintained i.e. the controller will create aClusterServiceClass
andClusterServicePlan
for the broker’s service classes and plans respectively.Reasons for this solution
servicePlan
andserviceClass
string lists.CatalogRestrictions
in Service CatalogRequest For Comment
Would love to get feedback on this proposal, especially with regard to the possible solution. Mainly:
ServiceClass
/ServicePlans
to reference aClusterServiceBroker
?Thanks!
P.S. Following from the example in #2734, I made this proposal as an issue. Happy to move elsewhere if it works better