Tuesday, 2021-11-23

opendevreviewGhanshyam proposed openstack/governance master: Select secure and consistent RBAC as a community-wide goal  https://review.opendev.org/c/openstack/governance/+/81881701:57
opendevreviewGhanshyam proposed openstack/governance master: Move completed goals into the completed directory  https://review.opendev.org/c/openstack/governance/+/81884502:27
*** pojadhav is now known as pojadhav|afk05:58
*** pojadhav|afk is now known as pojadhav06:36
*** ykarel is now known as ykarel|lunch09:21
*** pojadhav is now known as pojadhav|afk11:32
*** ykarel|lunch is now known as ykarel12:05
*** pojadhav|afk is now known as pojadhav12:17
*** ykarel is now known as ykarel|afk12:41
*** ykarel|afk is now known as ykarel14:02
dansmithgmann: you're going to have the tc meeting without all the us people?15:13
*** ykarel is now known as ykarel|away15:55
lbragstadrosmaita o/ 16:21
rosmaita0/16:21
lbragstadhey TC folks 16:21
lbragstadrosmaita brought up a point about domain personas in https://review.opendev.org/c/openstack/governance/+/81515816:21
lbragstadi think it's valid that we need to include something in that document about when services need to implement that16:22
lbragstadif we do it in Yoga - it feels like scope creep 16:22
lbragstadif we do it in Zena - we're "breaking" a current work flow for operators16:22
lbragstad(for at least a release) 16:22
lbragstads/Zena/Z-release/16:24
rosmaitayou have my vote for the name of Z, especially my suggestion of "You" got rejected for Y16:24
* lbragstad shakes head16:25
lbragstadi do that all the time with xena and z because of how it sounds16:25
rosmaitame too16:25
rosmaitaactually, looking at your timeline16:27
rosmaitaenforce_scope=True would happen before Z release16:27
rosmaitaso i think we could move the domain implementation to early Z16:28
rosmaitaand still turn on scope, and not break operators?16:28
lbragstadwell - that's not going to allow an operator to ask nova for all instances across the entire deployment16:28
lbragstadi think that will still be broken16:28
lbragstadbecause system-admin can't list all instances in the deployment16:29
lbragstadand project-admin is only going to be able to list instances within the project they have authorization on 16:29
lbragstadright?16:29
johnthetubaguy[m]so the current patch, I think system-admin is allowed to list all instances, as a comprimise16:29
johnthetubaguy[m]https://review.opendev.org/c/openstack/nova/+/816206/7/nova/policies/servers.py#6016:30
rosmaitascope type is project on that rule, though16:31
johnthetubaguy[m]oh sorry, I got confused, yes16:31
rosmaitaok16:31
lbragstadyeah - so if we don't add domain support for yoga - that will be broken16:31
rosmaitabut only if enforce_scope=True, right?16:32
lbragstadyes16:32
rosmaitaand exept for keystone, i think no one will have enforce_scope=True in yoga release?16:33
lbragstadwell - one or two services might16:33
lbragstadi think the idea is that everyone should develop yoga so that it can be run with enforce_scope: True16:33
rosmaitawell, i think we say, "don't turn it on if you don't support domain scope yet"16:33
rosmaitaoh, well if that's the idea, then we need domain support in Yoga16:34
lbragstadyeah - that could be something we document16:34
lbragstad"hey, you get all these personas, but this use case is broken until Z"16:34
lbragstadand we add the domain support case to Z as a target16:34
lbragstadin addition to the system-member and system-reader16:35
lbragstadthis affects johnthetubaguy[m] way more than me, so i'm curious to see what he says16:35
rosmaitai think that's ok, i don't know how many people will make the move until multiple services support s-rbac16:35
rosmaitathough johnthetubaguy[m] may have a different idea16:35
johnthetubaguy[m]so step one, with no scope checks, its an admin thing, regardless of project/domain/system discussions16:36
johnthetubaguy[m]at least we agreed on that bit16:36
johnthetubaguy[m]I guess the problem then is, what is the easiest route to turn on scope checking, and how does it help you move forward16:36
johnthetubaguy[m]the domain admin bit I care about most is probably the client being able to get the correct token for instance reboot / live-migration etc16:37
johnthetubaguy[m]as in the CLI working correctly is a big blocker here16:38
johnthetubaguy[m]or rather, we need the CLI to work nicely before its reasonable for users to start dropping the deprecated policy rules16:38
lbragstadok - so it sounds like having the CLI do the right thing is more important than the domain user support16:41
lbragstad?16:41
johnthetubaguy[m](this is my thinking face, via a text medium)16:41
johnthetubaguy[m]lbragstad: +1 I think it is, otherwise operators are in a right mess16:41
lbragstadok - so 1. client fetches all projects for a domain 2. iterates through each project to list instances 3. aggregates the list and presents it to the user16:42
lbragstadthat would allow `openstack --os-cloud domain-admin instance list --all-projects`16:42
lbragstadbut purely based on clientcode16:43
lbragstadno service level API changes for support domain users16:43
lbragstadsupporting*16:43
rosmaita(i am in another meeting, so delayed in reading here)16:44
johnthetubaguy[m]I am not sure if the above works without changes mind :/16:44
johnthetubaguy[m]so today they basically have system admin and domain admin and project admin on all projects with a single config16:45
johnthetubaguy[m]so for the first step, turn off deprecated rules, you would need to get a project token for the correct project, for many of those APIs16:46
johnthetubaguy[m]for some APIs it should be a system scoped admin, but until we enforce scopes, any admin will do16:46
johnthetubaguy[m]as such domain admin would pass the system admin role checks, and let you get tokens in the correct projects16:47
johnthetubaguy[m]so I guess that would work ... (thinking face)16:47
johnthetubaguy[m]the next step is the need for the system vs domain destinction16:47
lbragstadok - in that case 16:47
johnthetubaguy[m]so to list all hosts, to pick one for live-migration, you would use system, then you do domain/project admin for the live-migration16:48
lbragstadyou're not using enforce_scope = True16:48
johnthetubaguy[m]yes, this is pre enforce_scope = true16:48
lbragstadoh 16:48
lbragstadand enforce_new_defaults = True?16:48
johnthetubaguy[m]yeah16:48
johnthetubaguy[m]i.e. step 1 in the list16:48
lbragstadok16:49
johnthetubaguy[m]the only real change is that the project admin token now needs to match the project_id, for the regular operator16:49
johnthetubaguy[m]the bonus is, we get project reader and project member distinctions, which makes custom policy a whole heap easier16:50
lbragstadsure 16:50
lbragstadbut - you can't use a project-admin token to list all instances/volumes in the deployment, right16:50
lbragstadand you can't use system-admin either16:51
johnthetubaguy[m]that is the question I guess, and dansmith and I were chatting about that exact problem earlier16:51
johnthetubaguy[m]I think we just moved to checking for system admin to list all instances, but without checking the scope in rule16:51
johnthetubaguy[m]which means in step 1, any project admin can do it16:52
johnthetubaguy[m]this is clearly a bit broken, but its still a step forward (I think)16:52
dansmithjohnthetubaguy[m]: I just replied on that16:52
lbragstadmaybe i'm getting my wires crossed16:52
lbragstadi thought we didn't want to let system users do things on project-owned resources16:53
dansmithjohnthetubaguy[m]: unrelated are you seeing private messages with your weird irc client? I've pinged you a couple times privately without response, but see you active here16:53
lbragstadthat was framed as kinda like the point of no return16:53
dansmithjohnthetubaguy[m]: also fine if you're just ignoring me, but just let me know :P16:53
johnthetubaguy[m]just went to read that (my email filters are way broken, oops)16:54
johnthetubaguy[m]ah, doh, I see your messages now16:55
dansmithghosting me like a crazy online dating person... I get it :P16:55
johnthetubaguy[m]lol16:56
johnthetubaguy[m]I guess its a "feature" of this client16:56
dansmith"AI detected you probably don't want to hear from dansmith, he's creepy"16:56
johnthetubaguy[m]lbragstad: its probably me getting confused16:56
lbragstadwell - the migration plan in general isn't trivial :) 16:57
johnthetubaguy[m]I think I am slowing starting to agree with rosmaita 16:58
lbragstadbut i thought the intent was to keep system reserved for system-specific resources16:58
lbragstadmeaning we can't overload it for listing all instances in the deployment (something that operators can currently do today)16:58
lbragstadbased on the meetings we've been having - i thought we were going to try and solve that problem with domain role assignments16:59
lbragstadand then you would call nova with a domain-scoped token and it would filter the instances for you based on the domain id of the projects that own each instnace16:59
rosmaitayes, that is my understanding of what the plan is17:02
lbragstadso - in my mind, i think we have three options?17:09
lbragstad1. add the domain admin persona as a goal for phase 117:09
lbragstad2. add the domain admin persona as a goal for phase 217:10
lbragstad3. implement domain admin in the client for phase 117:10
lbragstad#1 increases the work each services needs to do in phase 117:10
lbragstad#2 means we have a gap between yoga and z where an operator can't list all instances in a deployment in a single request17:11
lbragstad#3 increases the work for phase 1, but the implementation is limited to the client17:11
rosmaitaso for #3, is the idea that the client will take a domain token, find all the projects in it, and then do a "list volumes" for all those projects as one response?17:15
lbragstadyeah - pretty much 17:15
lbragstadit also assumes the domain user has an inherited role assignment from the domain to each project within the domain17:16
rosmaitapaging will be a nightmare, but i guess it's ok (since i personally am not implementing it)17:17
rosmaitaactually, paging might not be too bad17:17
lbragstadi do think we already have a lot targeted for phase 117:20
lbragstadso #1 is my least favorite option because it does feel like scope creep, and we started rewriting this goal because it was already to big-bang-ish17:21
rosmaitai guess the impact of #2 is limited if (a) you are running yoga with enforce_scope=False and (b) the domain support is implemented early in Z17:29
gmannlbragstad: dansmith johnthetubaguy[m] rosmaita cannot we keep project admin to keep doing that until we have domain admin ? and say 'project admin can read all things for now which was case till now but not write on other project resource'17:30
gmannand once we have domain admin in Z or later then we extract this project admin doing everything within project only17:30
lbragstadso update 'detail:get_all_tenants': 'role:admin'17:31
gmannyeah17:31
gmannbut with project acope17:31
gmannscope17:31
lbragstadscope_types = ['project']17:31
gmannyes17:31
gmannso we are not changing anything what is working now17:31
lbragstadsure17:31
gmanneven with scope enable 17:31
lbragstadso - that's option #417:31
lbragstadand that would only be applicable to listing all instances and volumes, right?17:32
gmannyes17:32
rosmaitaand backups and snapshots and ...17:32
lbragstadlol 17:32
gmanneverything else like reboot, resize etc write operation will be within project only17:33
* lbragstad starts falling down the slippery slope17:33
gmannI mean  'list all project resources'. 17:33
gmannwhat all resource project admin can do today for all that they can continue doing until domain admin17:33
lbragstadyeah - so i think we need to know what that list would be17:33
rosmaitawe discussed this at the PTG (the cinder team, i mean) and we decided that it's better to not have the functionality than to hack it like this17:33
lbragstadand we could call it out in the goal 17:33
gmannbasically one polciuy 'all-tenant' one17:33
gmannrosmaita: but we are not changing anything on 'all-tenant' things so no hack right?17:34
gmannits just this new feature we will do in Z but we are not breaking you17:34
rosmaitawell, the persona is supposed to be project-specific and not cross project boundaries17:34
gmannyeah, but without 'all-tenant list' case which we can docuemnt17:35
rosmaitayeah, maybe i am being too inflexible17:36
gmannand honestly saying 'all_tenants' things are already bad UX so keeping it as it for one more cycle would not harm anything17:36
lbragstad5. remove --all-tenants17:36
gmannespecially when admin need to get other project resource with all_tenant=1 and tenant_id17:36
gmanndansmith: RE: meeting, yeah I am thinking to have if other 5 TC are available. may be short one. which seems yes by seeing 'Absence section ' in https://wiki.openstack.org/wiki/Meetings/TechnicalCommittee#Agenda_Suggestions17:40
jungleboyjgmann:  Thursday is Thanksgiving Holiday in the US so there probably won't be a lot of people in the US joining.17:44
johnthetubaguy[m]gmann: yeah, project admin seems OK for now, this is a cross-project case for project admin, but its not a system resource, so its the best step 1 case17:44
lbragstadok - so we'd have to do that for instance, volumes, snapshots, backups, and ....?17:45
gmannlbragstad: I hope those are all, not sure if neutron has any such policy (slaweq ?)17:46
johnthetubaguy[m]well today its a project admin, on the old defaults17:46
lbragstadi think it's admin or owner?17:46
lbragstadso it might just be checking role:admin17:46
lbragstadit might not even be checking if there is a project associated to that role17:47
lbragstador that it's a project-scoped token, rather17:47
johnthetubaguy[m]yeah, correct, role:admin check only17:47
fungiif i'm counting correctly, the tc can still achieve >50% attendance even if all usa-based members are absent17:47
johnthetubaguy[m]but it was a project token17:47
gmannjohnthetubaguy[m]: lbragstad yes, its admin only. project owner cannot get other project instance. we return only their instance without any error17:48
johnthetubaguy[m]I am mixing things up there, sorry, I was meaning a project scoped token (currently) with a check to see if it has role admin17:48
fungi"For a meeting to be actually held, at least half of the members need to be present" https://governance.openstack.org/tc/reference/charter.html#meeting17:50
fungiso that still seems achievable17:50
gmannjohnthetubaguy[m]: in current policy, it is system reader + deprecated policy admin17:50
johnthetubaguy[m]lbragstad: to your list above, I think I like option 2, but in the mean time let any project admin list all instances/volumes/project (rather than require system admin).17:50
gmannjohnthetubaguy[m]: so old one which are in use is admin (legacy one)17:51
johnthetubaguy[m]gmann: I am thinking post dan's patch, sorry, that is adding to the confusion17:51
gmannohk17:51
fungithough if all the current usa-based members and at least one other member don't attend, then there's insufficient quorum to hold the meeting (only 44% in attendance)17:51
lbragstadgmann https://review.opendev.org/c/openstack/nova/+/816206/7/nova/policies/servers.py#5517:52
gmannjohnthetubaguy[m]: and with option 2 , keep project admin list all tenant resource right?17:52
lbragstadoption 2 would remove the ability for a project-admin to list all instances17:53
gmannlbragstad: +1, that seems right to be and do domain-admin in Z. which is your option 217:53
gmannlbragstad: humm17:53
lbragstadif enforce_scope = True and if they're using the new defaults17:53
lbragstadi'm thinking about the people that have been wanting to use this stuff forever 17:53
lbragstadand if we can give them something useful in Yoga 17:53
lbragstadthey will deploy with enforce_scope = True and the new defaults17:54
rosmaitaoff topic, but could a domain-reader make this request?  (doesn't have to be admin)17:54
johnthetubaguy[m]well, the thing is, with no scope checking, we can put anything in that scope, we are just checking the role, so making it project seems the "simplest" approach, but I can see good arguments for domain and system also17:54
lbragstadrosmaita yes 17:54
rosmaitaok17:54
lbragstadusing domain seems more "correct" to me17:54
lbragstadremoving time lines and capacity constraints17:55
johnthetubaguy[m]although, if we allow no scope checking, if we are not careful, project reader can list all servers, so I think we need to avoid that17:55
lbragstadright17:55
lbragstadso - that's kinda why i'd advocate for domain-admin initially17:55
lbragstaduntil we can guarantee the old defaults are removed and enforce_scope = True17:56
gmannlbragstad: rosmaita I think we said domain admin as a special case where services not having domain scope. like nova does not map the projects under domains so domain admin is global admin for all-tenant case. domain reader might be confusing for whey domain reader list instance of other domain's project?17:56
lbragstadthen i think it's safe to relax the domain-admin to doman-member and domain-reader17:56
johnthetubaguy[m]yeah, that is attractive, going for domain scope, although with no scope checking its the same, any project admin will be able to list servers across all project17:56
lbragstadwhich is what happens today 17:56
lbragstadyeah17:56
johnthetubaguy[m]yeah, agreed17:56
lbragstadbut- if we try to do that with reader initially17:56
rosmaitaok, i guess we have a consensus (more or less)?17:56
lbragstadanyone with the reader role on a project will pass that check when using the old defaults17:57
lbragstadso - i think it's important to say that domain-admin functionality is getting the foot in the door17:57
gmannyeah17:57
lbragstadand then once we know we're not dealing with the old broken checks anymore, we can relax it to domain-member and domain-reader17:57
johnthetubaguy[m]yeah, that could work17:57
lbragstadwe have to do the same thing with system 17:57
gmannyeah, system case is same17:58
johnthetubaguy[m]yeah, anything system needs to be admin to start with, +117:58
gmannwe are not adding system reader/member now17:58
gmann*for now17:58
lbragstadbut - doesn't require us to add *all* the system and domain personas to get this into operators hands17:58
johnthetubaguy[m]... this means, step 1, project reader works, project member works, operators need to be in the correct project to do actions (until we do something fancy in the CLI with domain admin)17:59
gmanntrue and step by step things will make them easy to understand otherwise it can be 'hard to understand so i am not using it :)'17:59
johnthetubaguy[m]lbragstad: that is a crucial point, we need to not scope screep18:00
johnthetubaguy[m]s/screep/creep/18:00
gmannso we are going with 'project admin doing all tenant list until Z and Z will have domain admin or so to do that' ?18:02
johnthetubaguy[m]maybe we said its domain admin, but given scope_check = false, project admin will be able to do it anyways?18:03
lbragstadack - hoping into a meeting quick 18:04
lbragstadi'll circle back18:04
gmannso adding domain admin in Yoga then?18:04
johnthetubaguy[m]maybe... although I am not sure its required given scope checks will be off, we need to make it good before scope checks go on18:05
johnthetubaguy[m]OK, its time for dad ops, I have to run, but I think we agree on a lot of that, but not quite everything yet18:07
johnthetubaguy[m]for me, step 1 is the key, and with no scope checks, essentially we are saying any type of admin, including any project admin, can list all servers18:09
gmannyeah that is ok but with scope checks and doping domain admin in Yoga seems more things to do especially when we already passed the m-1 of Yoga18:13
gmannMy vote will be step 1 and for scope checks leave the all-tenant case for project admin and domain admin coming later..18:14
gmann* and we will implement domain admin later in Z..18:14
lbragstadok - i'll write up gmann's version in the goal 18:40
lbragstadand we can iterate on it there 18:40
gmannsounds good to me.19:51
opendevreviewLance Bragstad proposed openstack/governance master: Rework the yoga secure RBAC community goal  https://review.opendev.org/c/openstack/governance/+/81515820:03
lbragstadgmann dansmith rosmaita johnthetubaguy[m] ^ 20:04
lbragstadrough update20:04
lbragstadwith the four different solutions and direction for Phase 120:04
rosmaitalbragstad: ack20:05
dansmithgmann: ack, I was thinking maybe it was more than half out but I guess not20:06
dansmithlbragstad: will try to catch up... crazy busy morning while that convo was going on20:06
lbragstaddansmith ack - no worries20:49

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!