[openstack-dev] [puppet] Prefecting user and user_roles resources with domain-specific conf is failing.

Sofer Athlan-Guyot sathlang at redhat.com
Mon Mar 21 15:09:03 UTC 2016


Denis Egorenko <degorenko at mirantis.com> writes:

> Hi Athlan,
>
> thanks for attention of this problem. We have one more related change
> [1] and bug [2]
> for this problem, when we option 'domain_specific_drivers' is used.
>
> I would like to vote for 3) case.
>
>     As I see it there are three ways to approach this:
>     - iterate over all domains and keep the same behavior as now;
>     - detect somehow that the domain-specific configuration is used
>     and
>     hack, both instances methods to add domain options
>     - remove prefetch from keystone_user and keystone_user_role (kinda
>     get
>     my preference, see below)

We agree then :)

> Let me explain why.
> Using of prefetch and instances methods have a couple of problem, like
> we can't pass some values to them and can't to set proper options
> (dynamical of course).
> Backing to this problem, it means, that we can't specify some domain
> and hence we can
> iterate over all domains or check users only for default domain. Both
> ways are not acceptable to me.
>
> As solution for this problem, i see using calling kinda of instances
> method from exist? method.
> On this stage we can use all parameters, which are passed to
> keystone_user{_role}
> providers and we can choose proper domain if specified. If not -
> default domain will be used.

The domain, at this stage won't be a problem to be concerned with, we
will have its value.  The only thing to add, I think, would be some kind
of caching for keystone_user_role call to avoid repetition.  This
shouldn't be hard to implement though.

I've added this as a meeting point for tomorrow, so that we can take a
final decision on this and start coding:
 - https://etherpad.openstack.org/p/puppet-openstack-weekly-meeting-20160322

>
> [1] https://review.openstack.org/213906
> [2] https://bugs.launchpad.net/puppet-keystone/+bug/1485508
>
> 2016-03-21 16:34 GMT+03:00 Sofer Athlan-Guyot <sathlang at redhat.com>:
>
>     Hi,
>     
>     we have a big problem when using domain-specific configuration.
>     The
>     listing of all users is not supported by keystone when it's used
>     [1][2].
>     
>     What this means is that prefetch method in keystone_user won't
>     work, or
>     more specifically, instances method will fail.
>     
>     This poses a problem for the keystone_user_role, as the user
>     instances
>     method is called there too.
>     
>     The missing bit when domain-specific configuration is used is that
>     the
>     operator must precise the domain on the command line option.
>     
>     As I see it there are three ways to approach this:
>     
>     - iterate over all domains and keep the same behavior as now;
>     - detect somehow that the domain-specific configuration is used
>     and
>     hack, both instances methods to add domain options
>     - remove prefetch from keystone_user and keystone_user_role (kinda
>     get
>     my preference, see below)
>     
>     The problem I see with the first two methods depends on the usual
>     use
>     case of the domain specific configuration.
>     
>     For what I understand, this would be mainly used to connect to
>     existing
>     LDAP server, certainly large AD. If that's the case then we will
>     have
>     the same problem that the keystone people have seen, ie very big
>     list of
>     poeple, most of them unrelated to what is happening. We will then
>     have
>     the risk that:
>     - keystone fails;
>     - the puppet process would be slowed down significantly;
>     
>     So listing all users in this case seems like a very bad idea. As I
>     don't see a way to disable prefetching dynamically, when
>     domain-specific
>     is used (maybe have to be digged into ?), then I tend to favor the
>     removal of this from kesytone_user and keystone_user_role.
>     Keystone_user_role is the main problem here as it require a lot of
>     call
>     to be build and prefetching help here.
>     
>     So I don't see a best solution to this problem, so I'd like to
>     have more
>     inputs about the right course of action.
>     
>     Note: It was first noticed by Matthew J Black, which has open this
>     bug
>     report[3] and started to work on a fix here[4]
>     
>     [1]
>     https://github.com/openstack/keystone/blob/master/doc/source/configuration.rst
>    (look for domain-specific)
>     [2] https://bugs.launchpad.net/keystone/+bug/1555629
>     [3] https://bugs.launchpad.net/puppet-keystone/+bug/1554555
>     [4] https://review.openstack.org/#/c/289995/
>     --
>     Sofer Athlan-Guyot
>     
>     __________________________________________________________________________
>    
>     OpenStack Development Mailing List (not for usage questions)
>     Unsubscribe:
>     OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-- 
Sofer Athlan-Guyot



More information about the OpenStack-dev mailing list