16:02:11 #startmeeting Hierarchical Multitenancy 16:02:11 Meeting started Fri Mar 21 16:02:11 2014 UTC and is due to finish in 60 minutes. The chair is vishy. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:02:12 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:02:14 The meeting name has been set to 'hierarchical_multitenancy' 16:03:04 i too 16:03:06 i am 16:03:09 hi guys 16:03:16 hi 16:03:21 hi 16:04:20 i ges tellesnobrega is not here? 16:04:48 * guess 16:05:04 #topic actions from last week 16:05:07 vishy: no, he had to travel today, could not attend the meeting 16:05:14 so tellesnobrega put up his code 16:05:22 I reviewed it and it looks pretty ideal to me 16:05:43 i made one comment about dot separating the hierarchical ids 16:05:56 but other than that it seems pretty simple and effective 16:06:02 did anyone else look at it? 16:07:43 i also checked out VINOD's changes for quota management 16:07:46 vishy: I did, I also share your opinion, I think we have time to improve it but I have doubts on to where it should go 16:07:51 and it also seems pretty simple 16:08:01 vishy: ok 16:08:17 the advantage of this is the set of changes is actually pretty small 16:08:43 between my code telles code and VINOD I think we have a workable solution that is less than a few hundred lines of code 16:09:25 vishy: for quota management, i think not much changes are required..the only thing i guess is in quota tables, the project id should store the entire hierarchy like projA.projA1.projA2 instead of projA2 16:09:38 right 16:09:54 I do have some code for storing a cache of project names from ids 16:10:00 and looking stuff up in keystone 16:10:00 ok 16:10:05 but it is based on grizzly code 16:10:15 so i need to update it 16:11:12 vishy: But i guess one thing is still undecided is whether we should go with ids or names for project 16:11:32 i mean like projA.projA1 or . 16:11:45 VINOD_: based on the discussion on the ML I think we have to keep storing ids 16:12:04 VINOD_: we can however pass both names and ids in separate fields 16:12:29 vishy: I think its better to pass both.. 16:12:31 which would make the id/name cache avoid calls back to keystone in many cases 16:12:47 I'm worried about storing both 16:12:56 because that means db migrations to add extra fields 16:12:57 etc. 16:12:58 vishy: yes, exactly and also avoids the problem if in case some where we need ids and some where we need names 16:13:16 so i think the idea would be we store ids 16:13:23 but keep an in memory map to names 16:13:32 which we can update from the data passed 16:13:58 are project names immutable? 16:14:02 no 16:14:06 But why we need database migrations...keystone basing on the authentication scope can construct the names as well as ids by looking into its database and put them into the token 16:14:22 VINOD_: i mean in the other projects 16:14:29 i.e. in nova instances table 16:14:33 we just store ids 16:14:37 oh!!!ok 16:14:38 not both 16:14:42 i got it 16:14:51 i was slightly confused 16:15:05 vishy: that's seems ok for me 16:15:23 ok so I'm going to modify the wiki to explain the plan in more detail 16:15:33 with links to sample code 16:15:38 great 16:15:47 #topic next steps 16:15:56 #action vishy to update wiki with current plan 16:16:31 so the next thing is to figure out meetings for the summit 16:16:42 #topic summit sessions 16:17:06 i think we need one session on adding hierachical projects to keystone 16:17:36 http://summit.openstack.org/cfp/details/62 16:17:52 who of us is going there ? 16:18:00 which would include calcuating the inherited roles and passing two new fields to the clients: hierarchical_ids and hierarchical_Names 16:18:34 there is a session proposed already for this 16:19:50 there is also a session proposed to nova around domains and quotas 16:20:10 http://summit.openstack.org/cfp/details/58 16:20:22 if i am right tiago will represent for nova about domains and quotas..right? 16:20:26 personally i would suggest we do a combined session where we discuss domains an projects 16:20:44 I'm actualling not going to the summit - But Raildo and Telles will 16:21:02 tiamar: ok 16:21:04 i believe there was supposed to be a post about why we should keep domains and hierarchical projects? 16:21:31 i don't recall seeing that 16:21:46 vishy: I agree to discuss two subjects in the same session 16:21:49 i think raildo was going to put that together? 16:22:24 vishy: I'd send an email but I thought I discuss here 16:22:42 finally I think we need one session in common proposing the plan for all projects 16:23:04 #action vishy to propose a cross-project session about hierarchical multitenancy 16:23:23 #topic why keep domains if we have hierarchical projects 16:24:02 raildo: lets discuss then 16:25:06 vishy: I gathered some ideas about why keeping domains with hierarchical projects such as: In our case domains might be mapped to our big customers, and serve to group the tenants they own. In this case, the domain information would help determine whom to account for the used resources. 16:26:48 raildo: I don't see what advantage calling the big customer thing a "domain" vs just a "project" 16:26:57 raildo: Couldn't have phrased it any better 16:27:04 it's the same for us. 16:27:57 vishy: IMO This being 2 different concepts in OpenStack makes it easier to implement sophisticated algorithms of isolation and access control and delegation while maintaining backward compatibility. 16:29:31 vishy: Federation needs domains to be used as containers of users, ie, we need domains to obtain multi-tenancy with keystone federated. 16:29:37 raildo: I think the major issue is that both keystone and other projects are not in support of passing around the domain id 16:29:54 raildo: ok that one makes sense 16:30:06 raildo: that's what I've been thinking of domains as 16:30:10 containers of users 16:30:17 which would be a keystone only concept 16:30:22 vishy: sure 16:30:30 i.e. the other projects don't need to know about domains at all 16:30:36 which i think is way simpler 16:31:48 vishy: regarding other projects, it could store the domain id as the first domain in the hierarchy of the project id. I think they don't need a new database column just to store the domain id. 16:32:00 vishy: I do not think the concept of domains is complex, I believe it is even simpler than hierarchical projects. 16:32:01 * they could 16:34:23 gabriel-bezerra: they could but i don't like tying projects to domains if they are containers for users 16:34:50 gabriel-bezerra: that woudl stop cross-comptany projects for example 16:34:56 vishy: in keystone domains are also containers for projects 16:35:13 but aren't them also containers of projects? Can a project be shared among domains? 16:35:16 and i don't think it is any harder to just create a top level project matching the domain 16:35:24 gabriel-bezerra: my point is that they shouldn't 16:35:28 vishy: there are a BP for chross-domain integration based on trusts 16:35:42 gabriel-bezerra: but this is theoretical 16:35:55 I'm ok with them being the top-level and passed along 16:35:56 vishy: https://blueprints.launchpad.net/keystone/+spec/domain-trusts 16:36:22 honestly i think that is way more complicated but if that's how the keystone devs want to do it thats ok with me 16:36:58 having to walk up the hierarchy to get roles and then at the end of the chain check the domain 16:37:00 seems weird 16:37:19 although dolph proposed implementing domains as a top-level project 16:37:23 with just a different flag 16:37:28 which seems fine to me 16:37:45 great 16:38:17 vishy: I believe we can gain much more by keeping the two concepts together 16:41:36 ok I will update the wiki with options on domains 16:41:54 I have to head out 16:41:59 is there anything else to discuss 16:42:09 #topic open discussion 16:42:25 #action vishy to include domain options in wiki update 16:43:20 vishy: nothing more from our side 16:43:21 vishy: we could see on the roles in Telles code, what you think? 16:44:17 sure 16:45:10 vishy: ok, we will do this 16:48:08 #action tiamar to try to deal with role inheritance in telles code 16:48:15 ok thanks guys 16:48:19 #endmeeting