I agree. If we can really do pluggable authorization (and even pluggable authentication), it would not actually be hard to effectively implement a multi-tenant solution. I am hoping to attempt to implement something like this once there is code / patches for KIP-11 and KIP-12. So I wonder if we would actually need a KIP for this versus requirements for an authorization module (and possibly an authentication module) and then document a best practice for setting up a multi-tenant deployment.
I am a bit worried that KIPs 11/12 might not give us everything we need, but I think we can work through that as the implementation of both progresses On Tue, May 5, 2015 at 3:23 PM, Ashish Singh <asi...@cloudera.com> wrote: > Jay, > > I agree with you. This will kind of depend on how KIP-11 and KIP-12 shapes > up, but we can definitely start putting together the ideas. Would you > suggest starting a kip or just a generic shared document that can be later > translated into a KIP? > > On Tuesday, May 5, 2015, Jay Kreps <jay.kr...@gmail.com> wrote: > > > Hey guys, > > > > It would be nice to get a design around this. Though there are currently > so > > many big things in flight I do wonder if we should start another parallel > > thing...? But working out a design can't hurt. > > > > Personally I think since one of the goals of Kafka is data integration we > > really want to support a central cluster with many users. So I think we > > really want to have full hierarchies with all users being part of the > same > > "tree" of streams. This way granting permissions on a new stream just > means > > changing permissions on what "topic paths" a client has access to rather > > than needing a new client instance that connects to that separate > namespace > > (a la zookeeper). I think this will be a nice way to share config and acl > > defaults too. > > > > -Jay > > > > On Tue, May 5, 2015 at 10:36 AM, Ashish Singh <asi...@cloudera.com > > <javascript:;>> wrote: > > > > > Adrian, > > > > > > Trying to follow up the discussion here. Is my understanding correct > that > > > if we have topic hierarchies then we can do without namespaces. To me > > > namespace is an abstraction, it can be implemented with topic > hierarchies > > > as well, would you agree? If so I guess topic hierarchies is the way to > > go. > > > > > > One more thing I would like to put forward as an advantage of having > > topic > > > hierarchy is that we can support acls/ permissions inheritance in topic > > > hierarchies. This will avoid bootstrapping acls for each new topic. > > > > > > On Wed, Apr 29, 2015 at 7:42 AM, Adrian Preston <prest...@uk.ibm.com > > <javascript:;>> > > > wrote: > > > > > > > Thanks for your response. > > > > > > > > I agree. I think it would be useful to get consensus on how > > > > namespaces and topic-hierarchies relate to one another. To seed the > > > > discussion - here's my viewpoint, which I hope others will challenge: > > > > > > > > I see namespaces as something the broker provides to ensure that > > > > two tenants can never interact with one another - even if, > > > > for example, they both choose to use a topic called 'TOPIC1'. I > > > > imagine that this would be achieved by having the broker silently > > > > add a per tenant prefix to the topic name in each request, and > > > > strip it off in the response. So, for example, if 'TENANT1' sends > > > > a message to 'TOPIC1', this would be re-written so that the send is > > > > to 'TENANT1-TOPIC1'. > > > > > > > > If topic-hierarchies were available, then I think the prefix, > > > > added/removed to implement namespaces, would be the first level of > > > > qualification in the hierarchy. So, for example, if 'TENANT1' sends > > > > a message to 'TOPIC1', this would be re-written so that the send is > to > > > > 'TENANT1/TOPIC1'. > > > > > > > > Extrapolating from what's currently in KIP-21 (dynamic configuration) > > > > I guess that topic-hierarchies might result in the possibility for > > > > even finer grain topic configuration - e.g. a ZNode structure of: > > > > '/config/topics/<topic_level1>/<topic_level2>/...'. This would work > > > > best with an implementation of namespaces that was based on-top of > > > > topic-hierarchies, allowing configuration to be applied at the scope > > > > of: all tenants, one tenant, or one tenant's topics. > > > > > > > > So in summary: I think that namespaces can be usefully implemented > > > > independently of topic-hierarchies, and when topic-hierarchies are > > > > implemented would be easily integrated. > > > > > > > > Regards > > > > - Adrian > > > > > > > > -----Gwen Shapira <gshap...@cloudera.com <javascript:;>> wrote: > ----- > > > > To: "dev@kafka.apache.org <javascript:;>" <dev@kafka.apache.org > > <javascript:;>> > > > > From: Gwen Shapira <gshap...@cloudera.com <javascript:;>> > > > > Date: 04/28/2015 06:54PM > > > > Subject: Re: Adding multi-tenancy capabilities to Kafka > > > > > > > > I think recent discussion showed some need for topic namespaces - for > > > > example, Jun's use case for reserving topic names for specific users > > > > discussed under authorization. > > > > > > > > I think some discussion should happen on namespaces vs more > > full-fledged > > > > topic-hierarchy. > > > > I like the simplicity of namespaces, but there may be other > > requirements > > > > (such as inheriting configuration). > > > > > > > > Gwen > > > > > > > > On Tue, Apr 28, 2015 at 10:42 AM, Adrian Preston < > prest...@uk.ibm.com > > <javascript:;>> > > > > wrote: > > > > > > > > > Hi all, > > > > > > > > > > I've been looking at how a Kafka cluster could be used be deployed > so > > > > that > > > > > it can be used by multiple tenants. Specifically: a scheme where > the > > > > > clients belonging to each tenant receive the impression they are > > > > operating > > > > > against their own cluster. The ongoing security and quota work > looks > > > > like > > > > > it might provide a lot of the isolation requirements, but each > tenant > > > > would > > > > > currently share the same namespace for topics and consumer groups. > > So > > > > the > > > > > illusion of "it is my own cluster" is broken as soon as two tenants > > try > > > > > independent to use the same topic name. > > > > > > > > > > I wondered if other people on this list are interested in being > able > > to > > > > > support multiple tenants in this way? And / or if the ability to > > avoid > > > > > clashes in the topic namespace would be useful? I am considering > > > > > submitting a KIP in this area - but first wanted to get a feeling > for > > > > > whether these kinds of capabilities are of interest to others. > > > > > > > > > > Thanks in advance, > > > > > - Adrian > > > > > > > > > > Unless stated otherwise above: > > > > > IBM United Kingdom Limited - Registered in England and Wales with > > > number > > > > > 741598. > > > > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire > > PO6 > > > > 3AU > > > > > > > > > > > > > > > > > > > > > > Unless stated otherwise above: > > > > IBM United Kingdom Limited - Registered in England and Wales with > > number > > > > 741598. > > > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire > PO6 > > > 3AU > > > > > > > > > > > > > > > > > -- > > > > > > Regards, > > > Ashish > > > > > > > > -- > Ashish 🎤h >