I haven't gone through the details of the new proposal yet.
But based on the comments in the email thread, it seems to me that one of
the major concerns is around the ownership and permissions of "resources".

The actual resources (cpu, memory, and storage) is shared between multiple
tenants within a cluster.
The resources are allocated to tenants in the form of namespace policy
(dispatch rate, backlog, storage quota and etc).
That means mutating a namespace policy is modifying the resource
allocation. Hence as a cluster owner, you don't want to allow non cluster
owners to
modify the resource allocations that can potentially impact other tenants
in the same system.

If my understanding is correct, then there are two options that we can
explore:

1) separate the configurations in namespace policy into 2 groups.

one is for resource allocations (configurations can change the resource
usage), and the other one for remaining other settings (e.g. encryption
required, ttl).
cluster-admin (aka super-user) can modify the first group of configuration;
while namespace-admin can modify the other group.

This can also set a guideline for people adding more configurations into
namespace policy in the future.

2) provide a hierarchical resource allocation.

The concern was raise mainly because we have only one level (via namespace
policy) to allocate resources.
Similar as what topic policy is doing, we add a tenant level policy for
resource management.
The tenant-level policy limits the total resources can be used by all the
namespace and topics.

Hence the resource allocation and ownership can be well defined, and it can
be aligned with permissions. So we can have a clear separation between
operations and users. Cluster-owners control the total resource allocated
to a tenant but it doesn't control the namespace level details. The
modifications within a tenant doesn't affect the total resource allocated
to a tenant.

To me, exploring and going down with second option is probably a right
approach to make Pulsar a better "multi-tenant" system.
However we can start with first option to set a clear guideline.

Just my two cents.

- Sijie



On Fri, Nov 8, 2019 at 12:02 PM Joe F <j...@apache.org> wrote:

> This proposal has the same issues as the previous one . In general it is
> not correct to think of commands  as being controlled by owner of the
> object  on which the command operates. Eg: It will be an error to assing
> control of all namespace commands to the namespace owner
>
> For eg:  set subscription-dispatch-rate operates on a subscription rate and
> set-max-producers-per-topic These operate on namespaces. A naive approach
> is to think that this would be controlled by the namespace owner.   But
> essentially both these are resource management  operations. That should be
> controlled by the system admin, unless you want to deal with every
> namespace owner having the power to destroy your SLAs fo the cluster.
>
> I just picked 2 examples to indicate the drawback of approaching
> permissions in the proposed  manner.
>
> There are many such cases in the proposal, too many to list out here. I
> suggest completely ditching this approach of equating objects with  admin
> capability of object owner
>
> Joe
>
>
> On Wed, Nov 6, 2019 at 2:14 AM xiaolong ran <ranxiaolong...@gmail.com>
> wrote:
>
> > Hello all committers:
> >
> > About this PIP, do you have any other good ideas or propose.
> >
> >
> >  --
> >
> > Thanks
> > Xioalong Ran
> >
> >
> > > 在 2019年10月30日,下午7:49,xiaolong ran <ranxiaolong...@gmail.com> 写道:
> > >
> > > Hello all:
> > >
> > > When using pulsar-admin, I found that the current permission
> > verification mechanism has some problems.
> > >
> > > We are starting a proposal about permission levels and inheritance in
> > Apache Pulsar.
> > >
> > > The proposal is in:
> > >
> >
> https://github.com/apache/pulsar/wiki/PIP-49%3A-Permission-levels-and-inheritance
> > <
> >
> https://github.com/apache/pulsar/wiki/PIP-49:-Permission-levels-and-inheritance
> > >
> > >
> > > To ensure compatibility, these changes will be made in v4's admin api.
> > About the v4 admin API, see:
> > >
> > > https://github.com/apache/pulsar/wiki/PIP-48%3A-hierarchical-admin-api
> <
> > https://github.com/apache/pulsar/wiki/PIP-48:-hierarchical-admin-api>
> > >
> > > Looking forward to any feedback.
> >
> >
>

Reply via email to