[openstack-dev] [nova][cinder] about unified limits

Ben Nemec openstack at nemebean.com
Mon Sep 10 18:11:53 UTC 2018


We had an extensive discussion of this in the keystone room today: 
https://etherpad.openstack.org/p/keystone-stein-unified-limits

We had a couple of Nova people in the room, so if anyone from other 
teams can take a look at the outcomes on the etherpad and let us know if 
there are any issues with the current plan for other projects that would 
be good.

On 09/10/2018 09:25 AM, Ben Nemec wrote:
> We had talked about Tuesday afternoon. I need to sync up with Lance and 
> figure out exactly when will work best.
> 
> On 09/08/2018 10:58 AM, Jay S Bryant wrote:
>> Ben,
>>
>> Ping me when you are planning on having this discussion if you think 
>> of it.  Since there is interest in this for Cinder I would like to try 
>> to be there.
>>
>> Thanks!
>>
>> Jay
>>
>>
>> On 9/7/2018 1:43 PM, Ben Nemec wrote:
>>> I will also note that I had an oslo.limit topic on the Oslo PTG 
>>> schedule: https://etherpad.openstack.org/p/oslo-stein-ptg-planning
>>>
>>> I don't know whether anybody from Jaze's team will be there, but if 
>>> so that would be a good opportunity for some face-to-face discussion. 
>>> I didn't give it a whole lot of time, but I'm open to extending it if 
>>> that would be helpful.
>>>
>>> On 09/07/2018 01:34 PM, Lance Bragstad wrote:
>>>> That would be great! I can break down the work a little bit to help 
>>>> describe where we are at with different parts of the initiative. 
>>>> Hopefully it will be useful for your colleagues in case they haven't 
>>>> been closely following the effort.
>>>>
>>>> # keystone
>>>>
>>>> Based on the initial note in this thread, I'm sure you're aware of 
>>>> keystone's status with respect to unified limits. But to recap, the 
>>>> initial implementation landed in Queens and targeted flat 
>>>> enforcement [0]. During the Rocky PTG we sat down with other 
>>>> services and a few operators to explain the current status in 
>>>> keystone and if either developers or operators had feedback on the 
>>>> API specifically. Notes were captured in etherpad [1]. We spent the 
>>>> Rocky cycle fixing usability issues with the API [2] and 
>>>> implementing support for a hierarchical enforcement model [3].
>>>>
>>>> At this point keystone is ready for services to start consuming the 
>>>> unified limits work. The unified limits API is still marked as 
>>>> stable and it will likely stay that way until we have at least one 
>>>> project using unified limits. We can use that as an opportunity to 
>>>> do a final flush of any changes that need to be made to the API 
>>>> before fully supporting it. The keystone team expects that to be a 
>>>> quick transition, as we don't want to keep the API hanging in an 
>>>> experimental state. It's really just a safe guard to make sure we 
>>>> have the opportunity to use it in another service before fully 
>>>> committing to the API. Ultimately, we don't want to prematurely mark 
>>>> the API as supported when other services aren't even using it yet, 
>>>> and then realize it has issues that could have been fixed prior to 
>>>> the adoption phase.
>>>>
>>>> # oslo.limit
>>>>
>>>> In parallel with the keystone work, we created a new library to aid 
>>>> services in consuming limits. Currently, the sole purpose of 
>>>> oslo.limit is to abstract project and project hierarchy information 
>>>> away from the service, so that services don't have to reimplement 
>>>> client code to understand project trees, which could arguably become 
>>>> complex and lead to inconsistencies in u-x across services.
>>>>
>>>> Ideally, a service should be able to pass some relatively basic 
>>>> information to oslo.limit and expect an answer on whether or not 
>>>> usage for that claim is valid. For example, here is a project ID, 
>>>> resource name, and resource quantity, tell me if this project is 
>>>> over it's associated limit or default limit.
>>>>
>>>> We're currently working on implementing the enforcement bits of 
>>>> oslo.limit, which requires making API calls to keystone in order to 
>>>> retrieve the deployed enforcement model, limit information, and 
>>>> project hierarchies. Then it needs to reason about those things and 
>>>> calculate usage from the service in order to determine if the 
>>>> request claim is valid or not. There are patches up for this work, 
>>>> and reviews are always welcome [4].
>>>>
>>>> Note that we haven't released oslo.limit yet, but once the basic 
>>>> enforcement described above is implemented we will. Then services 
>>>> can officially pull it into their code as a dependency and we can 
>>>> work out remaining bugs in both keystone and oslo.limit. Once we're 
>>>> confident in both the API and the library, we'll bump oslo.limit to 
>>>> version 1.0 at the same time we graduate the unified limits API from 
>>>> "experimental" to "supported". Note that oslo libraries <1.0 are 
>>>> considered experimental, which fits nicely with the unified limit 
>>>> API being experimental as we shake out usability issues in both 
>>>> pieces of software.
>>>>
>>>> # services
>>>>
>>>> Finally, we'll be in a position to start integrating oslo.limit into 
>>>> services. I imagine this to be a coordinated effort between 
>>>> keystone, oslo, and service developers. I do have a patch up that 
>>>> adds a conceptual overview for developers consuming oslo.limit [5], 
>>>> which renders into [6].
>>>>
>>>> To be honest, this is going to be a very large piece of work and 
>>>> it's going to require a lot of communication. In my opinion, I think 
>>>> we can use the first couple iterations to generate some well-written 
>>>> usage documentation. Any questions coming from developers in this 
>>>> phase should probably be answered in documentation if we want to 
>>>> enable folks to pick this up and run with it. Otherwise, I could see 
>>>> the handful of people pushing the effort becoming a bottle neck in 
>>>> adoption.
>>>>
>>>> Hopefully this helps paint the landscape of where things are 
>>>> currently with respect to each piece. As always, let me know if you 
>>>> have any additional questions. If people want to discuss online, you 
>>>> can find me, and other contributors familiar with this topic, in 
>>>> #openstack-keystone or #openstack-dev on IRC (nic: lbragstad).
>>>>
>>>> [0] 
>>>> http://specs.openstack.org/openstack/keystone-specs/specs/keystone/queens/limits-api.html 
>>>>
>>>> [1] https://etherpad.openstack.org/p/unified-limits-rocky-ptg
>>>> [2] https://tinyurl.com/y6ucarwm
>>>> [3] 
>>>> http://specs.openstack.org/openstack/keystone-specs/specs/keystone/rocky/strict-two-level-enforcement-model.html 
>>>>
>>>> [4] 
>>>> https://review.openstack.org/#/q/project:openstack/oslo.limit+status:open 
>>>>
>>>> [5] https://review.openstack.org/#/c/600265/
>>>> [6] 
>>>> http://logs.openstack.org/65/600265/3/check/openstack-tox-docs/a6bcf38/html/user/usage.html 
>>>>
>>>>
>>>> On Thu, Sep 6, 2018 at 8:56 PM Jaze Lee <jazeltq at gmail.com 
>>>> <mailto:jazeltq at gmail.com>> wrote:
>>>>
>>>>     Lance Bragstad <lbragstad at gmail.com 
>>>> <mailto:lbragstad at gmail.com>> 于
>>>>     2018年9月6日周四 下午10:01写道:
>>>>      >
>>>>      > I wish there was a better answer for this question, but 
>>>> currently
>>>>     there are only a handful of us working on the initiative. If 
>>>> you, or
>>>>     someone you know, is interested in getting involved, I'll happily
>>>>     help onboard people.
>>>>
>>>>     Well,I can recommend some my colleges to work on this. I wish 
>>>> in S,
>>>>     all service can use unified limits to do quota job.
>>>>
>>>>      >
>>>>      > On Wed, Sep 5, 2018 at 8:52 PM Jaze Lee <jazeltq at gmail.com
>>>>     <mailto:jazeltq at gmail.com>> wrote:
>>>>      >>
>>>>      >> On Stein only one service?
>>>>      >> Is there some methods to move this more fast?
>>>>      >> Lance Bragstad <lbragstad at gmail.com
>>>>     <mailto:lbragstad at gmail.com>> 于2018年9月5日周三 下午9:29写道:
>>>>      >> >
>>>>      >> > Not yet. Keystone worked through a bunch of usability
>>>>     improvements with the unified limits API last release and created
>>>>     the oslo.limit library. We have a patch or two left to land in
>>>>     oslo.limit before projects can really start using unified limits 
>>>> [0].
>>>>      >> >
>>>>      >> > We're hoping to get this working with at least one 
>>>> resource in
>>>>     another service (nova, cinder, etc...) in Stein.
>>>>      >> >
>>>>      >> > [0]
>>>> https://review.openstack.org/#/q/status:open+project:openstack/oslo.limit+branch:master+topic:limit_init 
>>>>
>>>>      >> >
>>>>      >> > On Wed, Sep 5, 2018 at 5:20 AM Jaze Lee <jazeltq at gmail.com
>>>>     <mailto:jazeltq at gmail.com>> wrote:
>>>>      >> >>
>>>>      >> >> Hello,
>>>>      >> >>     Does nova and cinder  use keystone's unified limits api
>>>>     to do quota job?
>>>>      >> >>     If not, is there a plan to do this?
>>>>      >> >>     Thanks a lot.
>>>>      >> >>
>>>>      >> >> --
>>>>      >> >> 谦谦君子
>>>>      >> >>
>>>>      >> >>
>>>> __________________________________________________________________________ 
>>>>
>>>>      >> >> OpenStack Development Mailing List (not for usage questions)
>>>>      >> >> Unsubscribe:
>>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>>> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>>>      >> >> 
>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>      >> >
>>>>      >> >
>>>> __________________________________________________________________________ 
>>>>
>>>>      >> > OpenStack Development Mailing List (not for usage questions)
>>>>      >> > Unsubscribe:
>>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>>> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>>>      >> > 
>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>      >>
>>>>      >>
>>>>      >>
>>>>      >> --
>>>>      >> 谦谦君子
>>>>      >>
>>>>      >>
>>>> __________________________________________________________________________ 
>>>>
>>>>      >> OpenStack Development Mailing List (not for usage questions)
>>>>      >> Unsubscribe:
>>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>>> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>>>      >> 
>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>      >
>>>>      >
>>>> __________________________________________________________________________ 
>>>>
>>>>      > OpenStack Development Mailing List (not for usage questions)
>>>>      > Unsubscribe:
>>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>>> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>>>      > 
>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>
>>>>
>>>>
>>>>     --     谦谦君子
>>>>
>>>> __________________________________________________________________________ 
>>>>
>>>>     OpenStack Development Mailing List (not for usage questions)
>>>>     Unsubscribe:
>>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>>> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>>>
>>>>
>>>>
>>>> __________________________________________________________________________ 
>>>>
>>>> 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
>>>>
>>>
>>> __________________________________________________________________________ 
>>>
>>> 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
>>
>>
>> __________________________________________________________________________ 
>>
>> 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
> 
> __________________________________________________________________________
> 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



More information about the OpenStack-dev mailing list