[openstack-dev] [keystone] Custom ProjectID upon creation

Andrey Grebennikov agrebennikov at mirantis.com
Mon Dec 5 22:31:16 UTC 2016

> -----Original Message-----
> From: Andrey Grebennikov <agrebennikov at mirantis.com>
> Reply: OpenStack Development Mailing List (not for usage questions)
> <openstack-dev at lists.openstack.org>
> Date: December 5, 2016 at 12:22:09
> To: openstack-dev at lists.openstack.org <openstack-dev at lists.openstack.org>
> Subject:  [openstack-dev] [keystone] Custom ProjectID upon creation
> > Hi keystoners,
> I'm not a keystoner, but I hope youu don't mind my replying.

> > I'd like to open the discussion about the little feature which I'm trying
> > to push forward for a while but I need some feedbacks/opinions/concerns
> > regarding this.
> > Here is the review I'm talking about https://review.
> > openstack.org/#/c/403866/
> >
> > What I'm trying to cover is multi-region deployment, which includes
> > geo-distributed cloud with independent Keystone in every region.
> >
> > There is a number of use cases for the change:
> > 1. Allow users to re-use their tokens in all regions across the
> distributed
> > cloud. With global authentication (LDAP backed) and same roles names this
> > is only one missing piece which prevents the user to switch between
> regions
> > even withing single Horizon session.
> So this just doesn't sound right to me. You say above that there are
> independent Keystone deployments in each region. What token type are
> you using that each region could validate a token (assuming project
> IDs that are identical across regions) that would do this for
> "independent Keystone" deployments?
> Specifically, let's presume you use Keystone's new default of fernet
> tokens and you have independently deployed Keystone in each region.
> Without synchronizing the keys Keystone uses to generate and validate
> fernet tokens, I can't imagine how one token would work across all
> regions. This sounds like a lofty goal.
> Further, if Keystone is backed by LDAP, why are there projects being
> created in the Keystone database at all? I thought using LDAP as a
> backend would avoid that necessity. (Again, I'm not a keystone
> developer ;))
> Sorry that I didn't mention this in the beginning.
Yes, it is supposed to be fernet tokens installation for sure, UUID will
not work by default, PKI is deprecated. Keys are supposed to be
synchronized. Without it multi-site will never work even if I replicate the
This is what I started from about half a year ago immediately after
receiving the usecase. I created 2 clouds, replicated the key, set up each
Keystone to know about both sites as Regions, made project IDs same, and
voilla - having global LDAP for authentication in place I could even switch
between these regions within one Horizon session. So that one works.

Next, the ability to store projects in LDAP was removed 2 releases ago.
>From my personal opinion (and in fact not just mine but hundreds of other
users as well) this was one of the biggest mistakes.
This is one of the major questions from my side to the community - if it
was always possible to store project IDs in the external provider, and if
it is still possible to do it for the userIDs - what is the point of
preventing it now?

> 2. Automated tools responsible for statistics collection may access all
> > regions using one token (real customer's usecase)
> Why can't the automated tools be updated to talk to each Keystone and
> get a token while talking to that region?
They may. Depending on what is currently being used in production. It is
not always so easy to completely refactor external tooling, especially if
they are proprietary or semi-proprietary.

> > 3. Glance replication may happen because the images' parameter "owner"
> > (which is a project) should be consistent across the regions.
> So, Glance replication doesn't even guarantee identical image IDs
> across regions. If Glance's replication isn't working because the
> owner project is being synchronized directly, that sounds like a bug
> in Glance, not Keystone.
Not sure I'm following.... In essence it is "replication". It should be the
same. So when Glance brings the image to another region (from the
Particular project) - it expects this project to exist.

> > What I hear all time - "you have to replicate your database" which from
> the
> > devops/deployment/operations perspective is totally wrong approach.
> DevOps is a movement [1]. Replicating the database is not pleasant,
> no, but it is your better option. I'll repeat, though, why is your
> LDAP backed Keystone so reliant on Keystone's DB?
> See above - no other way to do it. Replication of the DB is not only bad
way to deal with it - there is no guarantee that broken tables from one
region will stay only in their own region. You have to start dealing with
decisions like "which region is supposed to be the main one", because there
is no "main" one. You'll start getting your regions frozen when they lose
 connectivity to each others etc (this is about 2 regions architecture and
there is no quorum).

> If it is possible to avoid Galera replication over geographically
> > distributed regions - then API calls should be used. Moreover, in case
> of 2
> > DCs there will be an issue to decide which region has to take over when
> > they are isolated from each other.
> >
> > There is a long conversation in the comments of the review, mainly with
> > concerns from cores (purely developer's opinions).
> You say that as if developer opinions (the folks who have to
> understand and maintain your desired approach) is invalid or
> worthless. That's not the case.

This is completely opposite from what I meant. What I say is >> concerns
from cores (purely developer's opinions) << where the essence was about
"there is no complaints yet from Not developers". I'm sorry if I hurt your
feeling, but when I keep hearing "go replicate your db" instead of
discussing real cons, this makes me hyper upset as well.

> > Please help me to bring it to life ;)
> Please give us more detail and convince us to help you. :)

Hope that's enough. Thanks a lot for such extended response.

> [1]: https://theagileadmin.com/what-is-devops/
> --
> Ian Cordasco
> __________________________________________________________________________
> 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

Andrey Grebennikov
Principal Deployment Engineer
Mirantis Inc, Austin TX
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20161205/37c172dd/attachment-0001.html>

More information about the OpenStack-dev mailing list