| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-03-22 | |||
| 18:42:59 | sean-k-mooney | kmalloc: e.g. an admin token that only allowed to make requets against a specific host | |
| 18:43:00 | kmalloc | ok, thanks! | |
| 18:43:21 | kmalloc | (again, forward looking things) | |
| 18:43:23 | mriedem | https://review.openstack.org/#/c/525772/ | |
| 18:43:34 | kmalloc | yeah | |
| 18:43:36 | kmalloc | ty! | |
| 18:45:33 | kmalloc | jaypipes: sortof, system-scope is designed to not let you do things like make resources (create a VM) - but still do actions like [for example] disable a hypervisor (clearly not a project-scoped action, very much infrastructure admin) [these are examples, not meaning that api would exist] | |
| 18:45:45 | jaypipes | kmalloc: not sure how forward looking it is, considering the bug report is from 2012-03-29. | |
| 18:45:48 | jaypipes | ;) | |
| 18:46:45 | kmalloc | jaypipes: forward looking in keystone-and-ks-middleware support vs "when the bug was filed and we suck at fixing that across openstack's history" ;) | |
| 18:47:44 | sean-k-mooney | kmalloc: ah so a system-scoped token could set the datapath_down field on a neutorn port or admin_state but not delete or create a neutron port | |
| 18:48:02 | kmalloc | sean-k-mooney: right. that would be the kindof idea | |
| 18:48:21 | sean-k-mooney | kmalloc: would you also envision it allowing migrate actions also or jsut service level apis | |
| 18:49:00 | kmalloc | sean-k-mooney: the plan is really for things that are meant to be done administratively vs by an end user. Migrate is a bit gray | |
| 18:49:24 | kmalloc | i've seen it used in non-administrative ways. | |
| 18:49:38 | sean-k-mooney | kmalloc: im just trying to tink of why a full could admin token would not be correct in this case | |
| 18:49:40 | kmalloc | though haven't looked at common cases lately (my knowledge there is out dated) | |
| 18:49:58 | openstackgerrit | Dan Smith proposed openstack/nova master: Add require_tenant_aggregate request filter https://review.openstack.org/545002 | |
| 18:49:59 | openstackgerrit | Dan Smith proposed openstack/nova master: WIP: Honor availability_zone hint via placement https://review.openstack.org/546282 | |
| 18:50:23 | kmalloc | sean-k-mooney: trying to break the "manage infrastructure" and "admin can do things for an account/domain/project" | |
| 18:50:44 | sean-k-mooney | kmalloc: ah ok makes sense. | |
| 18:51:03 | kmalloc | yeah, it's something we've needed for a long time | |
| 18:51:14 | kmalloc | because admin via a magic project scope is ... kindof awful | |
| 18:51:46 | kmalloc | it leads to a lot of potential "oopse, this scope bled through and let something happen" making the concept of say "domain admin" hard. | |
| 18:51:53 | jaypipes | kmalloc: kinda awful that is the same as it was >6 years ago... | |
| 18:52:21 | kmalloc | jaypipes: yes, and through many many many many iterations... we have successfully moved the needle to "yeah we still need to fix it" | |
| 18:52:29 | kmalloc | jaypipes: which makes me a bit more than sad. | |
| 18:52:31 | jaypipes | kmalloc: not saying it's not a good idea, just that clearly everyone has worked around it or lived with admin-ness for time eternal at this point. | |
| 18:52:41 | sean-k-mooney | kmalloc: https://review.openstack.org/#/c/525772 will result in a api microversion change also right | |
| 18:52:59 | kmalloc | sean-k-mooney: hm. | |
| 18:53:28 | kmalloc | sure? but how are old microversions managed in policy... wait wait, going to stop going down this rabbithole for now | |
| 18:53:33 | mlavalle | rybridges, melwitt: Neutron creates the aggragates for you: https://github.com/openstack/neutron/blob/master/neutron/services/segments/plugin.py#L216 | |
| 18:54:00 | openstackgerrit | Matt Riedemann proposed openstack/nova master: Always deallocate networking before reschedule if using Neutron https://review.openstack.org/520248 | |
| 18:54:02 | mriedem | oomichi: can you re-approve this? ^ it sat so long that the test needed to be updated. | |
| 18:54:04 | kmalloc | jaypipes: right, but i think it's time to provide a real fix rather than relying on "everyone has their own workaround" | |
| 18:54:20 | sean-k-mooney | kmalloc: do unscoped tokens work for all scoped apis. if so then you proable dont need on but it might be nice to have a microverion | |
| 18:54:22 | kmalloc | jaypipes: and with policy-in-code, and scope-types we're really moving the right way | |
| 18:54:35 | kmalloc | sean-k-mooney: no, unscoped tokens don't work anywhere | |
| 18:54:42 | kmalloc | excpet to get a scoped token in keystone. | |
| 18:54:47 | jaypipes | kmalloc: ok | |
| 18:55:14 | kmalloc | sean-k-mooney: we're trying to allow RBAC for system-scope actions, unscoped tokens are explicitly no-roles. | |
| 18:55:25 | sean-k-mooney | kmalloc: ok so ya that would be a micro version bump then for backwards compatiblity. | |
| 18:55:28 | melwitt | mlavalle: right, but what about compute hosts that go into those aggregates? is that something neutron can do automatically or is it left up to the admin to have to do that? | |
| 18:55:48 | melwitt | thanks for chiming in, btw :) | |
| 18:55:53 | kmalloc | sean-k-mooney: yeah i'm not sure how a microversion affects policy enforcement -- it becomes weird. | |
| 18:55:58 | jaypipes | kmalloc: I struggle to have confidence in the firmness of the ideas after seeing keystone v3 domains, federation, PKI and other things go back and forth. | |
| 18:56:29 | kmalloc | jaypipes: well, please chime in on the scope types stuff. | |
| 18:56:37 | mlavalle | melwitt, rybridges: Neutron adds the hosts to the aggregate: https://github.com/openstack/neutron/blob/master/neutron/services/segments/plugin.py#L223 | |
| 18:57:04 | sean-k-mooney | mlavalle: that is for routed networks correct | |
| 18:57:21 | mlavalle | sean-k-mooney: yes it is | |
| 18:57:56 | kmalloc | jaypipes: there are a number of things we have not changed once other services lean on it. [also not sure what you mean firmness of federation, that's stayed the same and been built on, it hasn't been taken out] | |
| 18:58:16 | melwitt | mlavalle: a-ha, okay. so rybridges is seeing behavior where no hosts get added to the aggregate | |
| 18:58:18 | kmalloc | jaypipes: but i'd rather have more eyes/comments than less on the scope-types work. | |
| 18:58:28 | rybridges | Hey mlavalle! Thanks so much for the reply. We just checked the segmenthostmappings table in the DB and we see that the host mappings are in the table and our compute hosts are listed. But they are not added in the outpute of aggregate show | |
| 18:58:56 | kmalloc | sean-k-mooney: i'll have to see how the policy stuff shakes out with microversions, i'm sure it'll be 100% ok, just not clicking right this moment. | |
| 18:59:14 | kmalloc | sean-k-mooney: which means, i need to poke at things more. hehe :) | |
| 18:59:58 | kmalloc | sean-k-mooney: thanks for your time! | |
| 19:00:25 | cfriesen | jaypipes: cpu thread isolation is actually a valid issue for resource accounting, because the amount of resources consumed is variable depending on whether the host has enabled HT or not. | |
| 19:00:53 | sean-k-mooney | kmalloc: ya no worres i just didnot notice any microversion bumps in https://review.openstack.org/#/c/525772/4 and sice it has 1+2 already i taught i would ask since it proably should not merge until that is checked | |
| 19:01:09 | jaypipes | cfriesen: I don't doubt that. I'm saying that the cpu_threads_policy has nothing to do with resource accounting. | |
| 19:01:23 | kmalloc | sean-k-mooney: yeah, it might also not require a microversion, because it doesn't actually change anything yet, the change might need a microversion. | |
| 19:01:41 | cfriesen | jaypipes: but it does, since it determines whether we need to allocate additional resources on some compute nodes | |
| 19:01:58 | kmalloc | sean-k-mooney: i'll make sure to get some time to ensure we aren't introducing any breaking changes there (i don't think we are) that would require microversion bumps and if we are... make sure it's added | |
| 19:02:01 | sean-k-mooney | kmalloc: oh adding the scope_types=['project'] does not change the behavior | |
| 19:02:11 | kmalloc | sean-k-mooney: yeah it shouldn't. | |
| 19:02:18 | jaypipes | cfriesen: whether the host has HT enable impacts the reporting of CPU inventory for the host (or its NUMA nodes), but cpu_threads_policy only affects which host processors the guest is willing to be pinned to. | |
| 19:02:48 | jaypipes | cfriesen: are you referring to cpu_allocation_policy? | |
| 19:02:56 | jaypipes | or cpu_threads_policy? | |
| 19:02:57 | kmalloc | sean-k-mooney: yeah it's meant to just allow for richer policy allowing for defining the scope-types in policy as well | |
| 19:03:04 | cfriesen | jaypipes: no. If I ask for 1 PCPU and set cpu_thread_policy=ISOLATE then it will actually consume two host CPUs (the main one and the HT sibling) | |
| 19:03:25 | kmalloc | sean-k-mooney: but that should just be allowing for more specific policy enforcement, not actually making a change to behavior. | |
| 19:04:20 | kmalloc | sean-k-mooney: that is why i was feeling confused, but you know, i am 100% willing to assume I was mis-understanding something since it's in nova's code base and i don't spend as much time there. | |
| 19:04:22 | sean-k-mooney | kmalloc: ok cool sound like you have it well in hand in anycase. just taught i would ask for my own knollage i avoid api changes unless i have no choice | |
| 19:04:35 | kmalloc | sean-k-mooney: cool. and again ty very much! | |
| 19:04:57 | cfriesen | jaypipes: basically by enabling cpu_thread_policy=ISOLATE I'm asking for the entire host core, which maps to two ht siblings. But each of those siblings was exposed to placement as a PCPU. | |
| 19:05:24 | jaypipes | cfriesen: it doesn't always map to 2 HTs. | |
| 19:05:37 | cfriesen | jaypipes: true, it could be more | |
| 19:05:38 | jaypipes | cfriesen: yet more hardware vendor undefined randomness. | |
| 19:05:40 | sean-k-mooney | jaypipes: unfrotuently yes | |
| 19:05:49 | cfriesen | jaypipes: or it could be 1, if HT is disabled on the host | |
| 19:06:01 | jaypipes | cfriesen: no, that is the host inventory of things. | |
| 19:06:03 | sean-k-mooney | or 8 HT if its powerpc | |
| 19:06:13 | jaypipes | cfriesen: again, I understand the host inventory part of this. | |
| 19:06:35 | jaypipes | cfriesen: my problem is with flavors that consume different amounts of resources on different hosts. | |
| 19:06:59 | cfriesen | yep, that's exactly what this does, since it depends on the host config | |
| 19:07:06 | sean-k-mooney | jaypipes: ya thats what happens for cpu_thread_policy=ISOLATE today | |
| 19:07:27 | jaypipes | cfriesen: which, due to the design of cpu_threads_policy, being a string of "isolate|prefer|share" is entirely impossible to predict an integer amaount of some CPU resources that will *actually* be consumed by the guest. | |
| 19:08:07 | sean-k-mooney | jaypipes: yes. this was not an issue in icehouse but its biting us now | |
| 19:08:23 | mlavalle | rybridges, melwitt: Look at slide 28 in https://www.slideshare.net/MiguelLavalle/routed-networks-sydney. That shows you what you should see in Placement. For each segment in a routed network, that is the Placement structure that you should see | |
| 19:08:28 | cfriesen | jaypipes: the original goal was to improve flexibility by enabling hyperthreads, while allowing instances to ask for whole cores if they need it for performance. | |
| 19:08:31 | tblakes | mriedem: For bug https://bugs.launchpad.net/nova/+bug/1756360, it looks like we're going to need to implement __repr__ for NovaExceptions. Do you have any input on the format we want to return? | |
| 19:08:33 | openstack | Launchpad bug 1756360 in OpenStack Compute (nova) "Serializer strips Exception kwargs" [Undecided,Incomplete] - Assigned to Tyler Blakeslee (tblakes) | |
| 19:09:30 | sean-k-mooney | jaypipes: cfriesen ya the original intel proposal made pinning a host config option with no flavor extra specs. then you would just use aggregate to make teh desision | |
| 19:09:31 | cfriesen | jaypipes: actually, it *is* possible to predict what will be consumed by the guest given the host information | |
| 19:09:58 | cfriesen | jaypipes: it's just that it could be different from one compute node to another | |
| 19:09:59 | mlavalle | rybridges, melwitt: a routed network is a network where segments are associated to its subnets. In other words, if you do a GET of those subnets, all of them should have a valua in their 'sehment_id' attribute | |
| 19:10:10 | sean-k-mooney | cfriesen: not before the placement allocate_candidates request | |
| 19:10:26 | mlavalle | rybridges, melwitt: 'segment_id'^^^^ | |
| 19:10:44 | cfriesen | sean-k-mooney: correct, unless we wanted to model siblings in placement. :) | |
| 19:11:10 | mriedem | tblakes: can you reply to gibi's question about reproducing this in comment 1 | |