15:05:08 #startmeeting keystone 15:05:08 Meeting started Wed Oct 9 15:05:08 2024 UTC and is due to finish in 60 minutes. The chair is d34dh0r53. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:05:08 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:05:08 The meeting name has been set to 'keystone' 15:05:23 Reminder: This meeting takes place under the OpenInfra Foundation Code of Conduct 15:05:23 #link https://openinfra.dev/legal/code-of-conduct 15:05:38 #topic roll call 15:05:44 admiyo, bbobrov, crisloma, d34dh0r53, dpar, dstanek, hrybacki, lbragstad, lwanderley, kmalloc, rodrigods, samueldmq, ruan_he, wxy, sonuk, vishakha, Ajay, rafaelwe, xek, gmann, zaitcev, reqa, dmendiza[m], dmendiza, mharley, jph, gtema, cardoe 15:05:50 o/ 15:06:04 o/ 15:06:07 o/ 15:06:12 o/ 15:07:50 #topic review past meeting work items 15:08:01 #link https://meetings.opendev.org/meetings/keystone/2024/keystone.2024-10-02-15.00.html 15:08:09 o/ 15:08:12 only one 15:08:13 reviewathon discuss and hopefully perform the removal of passlib https://review.opendev.org/q/topic:%22passlib%22 15:08:41 we merged just about everything, gtema (Artem Goncharov) do you think we're good to pull the bandaid off or should we wait? 15:09:00 I do not have strong preference 15:09:17 maybe lets rip it off now to detect problems earlier 15:12:35 sounds good, I'll push the button after this meeting 15:12:46 perfect, thanks 15:12:53 #topic liaison updates 15:13:03 nothing from VMT or releases 15:13:33 #topic specification OAuth 2.0 (hiromu) 15:13:55 #link https://review.opendev.org/q/topic:bp%252Foauth2-client-credentials-ext 15:13:56 #link https://review.opendev.org/q/topic:bp%252Fenhance-oauth2-interoperability 15:13:58 External OAuth 2.0 Specification 15:13:59 #link https://review.opendev.org/c/openstack/keystone-specs/+/861554 (merged) 15:14:00 OAuth 2.0 Implementation 15:14:02 #link https://review.opendev.org/q/topic:bp%252Fsupport-oauth2-mtls 15:14:06 OAuth 2.0 Documentation 15:14:10 #link https://review.opendev.org/c/openstack/keystone/+/838108 (merged) 15:14:13 #link https://review.opendev.org/c/openstack/keystoneauth/+/838104 (merged) 15:15:00 no updates this week 15:15:09 #topic specification Secure RBAC (dmendiza[m]) 15:15:20 #link https://governance.openstack.org/tc/goals/selected/consistent-and-secure-rbac.html#z-release-timeline_ 15:15:23 2024.1 Release Timeline 15:15:26 Update oslo.policy in keystone to enforce_new_defaults=True 15:15:30 Update oslo.policy in keystone to enforce_scope=True 15:15:47 dmendiza: is on PTO for the rest of the week 15:15:49 next up 15:15:53 #topic specification OpenAPI support (gtema) 15:15:57 #link https://review.opendev.org/q/topic:%22openapi%22+project:openstack/keystone 15:16:01 https://review.opendev.org/c/openstack/keystone/+/925020 could now also land to ease api-ref work 15:16:08 gtema: api-ref work started 15:16:39 under api-ref work I mean start rendering generated openapi as api-ref 15:16:53 ahh, cool 15:17:11 there is series of dependency-hell issues that I currently stuck on (openstackdocstheme need first upgrade of bootstrap from 5years old version) 15:17:27 bootstrap upgrade breaks current os-api-ref 15:17:58 and my sphinx plugin also needs openapi first, so api-ref job would first need to generate openapi doc 15:18:19 anyway, with the fact that first openapi changes landed I now have a better overview what is there and what is missing 15:18:59 maybe my friday I will have some changes with depends-on (like 5-6 dependent changes ;-) to demo overall flow 15:19:07 s/my/by/ 15:19:25 okay, cool, ping me for reviews 15:20:03 sure, is somebody here also owning core reviewers in openstackdocstheme/os-api-ref projects? 15:20:37 I don't know 15:20:44 ok 15:21:31 that's it for now on openapi 15:22:49 thanks gtema (Artem Goncharov) 15:22:51 next up 15:22:55 #topic specification domain manager (mhen) 15:22:57 #link https://review.opendev.org/q/topic:%22domain-manager%22 15:23:01 tempest core lib patch has been merged, only keystone-tempest-plugin left 15:23:04 created a patchset for documentation: https://review.opendev.org/c/openstack/keystone/+/928135 15:24:59 mhen_: are you around? 15:26:22 ok, cores, please review the tempest plugin and docs patch for this 15:26:24 moving on 15:26:35 #topic specification Type annotations (stephenfin) 15:26:39 #link https://review.opendev.org/q/project:openstack/keystoneauth+topic:typing 15:26:46 This is just pending reviews now. I will push the remaining patches as soon as a sufficient quantity of the current ones land. 15:27:10 I reviewed some portion of those today 15:27:25 this is not trivial, so take your time 15:27:43 indeed, I need to spend some time reviewing them 15:28:05 Nothing to add. Per that note, just need reviews. The sooner we get them merged the better, so we can cut a release and iron out any kinks we see once it's in use 15:28:15 on the topic: we were discussing ruff-ing the keystone 15:28:24 ack, thanks stephenfin 15:28:28 today I pushed https://review.opendev.org/c/openstack/keystone/+/931959 - and as you see it's mega huge 15:28:29 I'm good with ruff-ing the keystone 15:28:58 sadly here reformatted stuff started immediately violating hackings 15:29:02 gtema: Don't forget to add a .git-blame-ignore-revs file once you're done 15:29:11 so I needed to give a lovely human touch to lots of files 15:29:19 yes, sure 15:30:04 sad that bandit coverage under ruff is not too configurable 15:30:08 gtema: I disabled much of the E class flake8 errors since they effectively duplicated what ruff was doing. ruff/black will do their best to respect line width 15:30:13 otherwise I would have switched to that as well 15:30:55 stephenfin - in the unreleased hacking or where? 15:31:33 https://github.com/openstack/openstacksdk/blob/master/tox.ini#L143-L151 15:31:54 The 'select' option is the important one 15:31:58 ah this way, ok 15:32:24 well, I anyway already touched plenty of files and addressed the E501, so it's bit too late ;-) 15:32:37 you know for next time :) 15:32:50 sure 15:32:53 * stephenfin goes back to lurking 15:34:03 thanks stephenfin 15:34:12 #topic open discussion 15:34:22 I have https://review.opendev.org/c/openstack/keystone/+/930589 to talk to 15:34:29 I don't have anything, we already talked about saying bye-bye to passlib 15:35:12 In terms that - it's an annoying issue to have, but I can justify time to work on units tests for it, given that keystone-manage is basically not covered in tests currently 15:35:19 * d34dh0r53 looking at noonedeadpunk 's patch 15:35:24 so scope looks quite big 15:35:34 (at least for me) 15:36:08 the issue was introduced with sqlalchemy 2 patches iirc 15:38:53 hmm, there are currently no unit tests with keystone-manage, but maybe a zuul job that checks this would suffice 15:39:19 arte there upgrade jobs existing? 15:39:35 I thought so, but I'm not seeing any 15:39:35 as I don't see anything like that either 15:39:54 I _think_ last time keystone had an upgrade job - it was an OSA job 15:40:07 That could be what I'm thinking about 15:40:19 ofc I can work on adding it again :) 15:40:35 https://github.com/openstack/keystone/blob/f7ffacb7ad2d09da01b00cf50192a5c2b2d899a1/.zuul.yaml#L68 15:40:35 Question around inherited permissions. I know that you can have sub-projects and give permissions on the parent project which can be inherited. But can I have a domain and have roles set on the domain and inherited to projects? Since a domain is really just a project now. 15:40:42 but I guess you might be in favor of grenade 15:41:07 I can revive that testing fwiw 15:41:43 noonedeadpunk: yeah, let's revive that testing, it should suffice for your keystone-manage patch. 15:42:08 but the problem with the patch, is that command now reports "ok" whenever you ask it if migrations needed 15:42:32 and upgrade job is jsut checking for the return code 15:42:34 because it's comparing the same thing 15:42:39 so it's not catching the issue 15:42:42 yeah 15:42:45 yeah 15:43:15 so this specific issue won't be catched by such job 15:43:32 ok, I'll review that patch and add the note that you're going to work on an upgrade job to ensure it's correct going forward 15:43:46 ++ 15:43:55 upgrade job is on me 15:44:16 to your question cardoe , I'm not 100% sure 15:44:50 that's a question for dmendiza or mhen_ but neither of them are around 15:45:37 okay I'll chase them down. It's not clear from the docs to me and the behavior is making me scratch my head using 2024.1 based on the domains. 15:45:48 the best answer - try it out. My guess - it will not work 15:46:26 point of concern is that domain is not returned in list_projects and neither the opposite 15:47:00 so for grant inheriting to work there must be explicit logic which I have never seen 15:47:12 My idea might be stupid anyway. Hooking ironic to be authenticated via keystone for users. All the projects are just different teams having hardware. So wanted to give the admins permission to all the projects with hardware. 15:47:28 I don't think it will work either.... 15:47:29 Without having to explicitly give them permission to each project. 15:47:58 you can add them to group? 15:48:39 I guess I could grant a group permission to each project. yeah that would be fine. 15:48:40 but also - giving admin permissions to the project will give a global admin to all projects 15:48:50 and all domains 15:49:18 well I said "admin" but wasn't referring to keystone admin role but humans. giving them "member" on the projects 15:49:18 ah, I guess I misread 15:49:26 ++ 15:49:27 noonedeadpunk - for that we have now domain manager - to not need granting admin for users 15:49:43 oh, yes, I already use them in one place 15:49:51 though Horizon still needs to be patched... 15:49:55 It's so they can do stuff like baremetal service to upgrade firmware and such on machines. 15:50:07 as it doesn;t like manager with domain only assignment 15:50:32 https://docs.openstack.org/api-ref/identity/v3/#assign-role-to-user-on-projects-owned-by-domain claims you grant to the use certain role on all projects owned by domain 15:50:45 user 15:51:08 `inherited_to_projects` - oh, nice 15:51:19 So it works when I make sub-projects and parent it to a project 15:51:27 then have that project be a domain 15:51:41 But maybe that call will work straight away. Thank you gtema. 15:52:10 it looks you do not need any other stuff, you grant directly on the domain 15:52:32 but - test whether it does what you need 15:52:42 yeah will do thank you. 15:52:55 moving on for time, let us know how it works cardoe 15:52:58 I wanted to also bring up OpenID Connect. Would proposing keystoneauth-websso for inclusion be something that would be workable? There's at least 3 operators now that are using it. I know that there's work on changing the integration in the pipeline. 15:53:21 yeah, I would be very interested in that car 15:53:25 oops cardoe 15:53:41 well, I'd say it's a bit weird one... 15:53:59 As basically it neglects all benefits of OIDC 15:54:25 since you can't re-use token issued by oidc provider, nor you can use 2fa in oidc 15:54:26 no it doesn't, but other issue is that without token caching it doesn't bring you anything 15:55:13 So today the upstream version caches the token on disk just like kubelogin does. 15:55:33 I think it does... As OIDC most usable is to have single interface and flow for authentication between different services 15:55:36 https://github.com/int128/kubelogin 15:55:46 if you explicitly enable caching in the config and it has so may cornercases 15:56:01 and what you do with keystoneauth-websso is hardly interoperable with other services, unless you just disable half of keycloack 15:56:04 dunno 15:56:47 this is a yet another case of half-knowledge on the complexity of federated logins :) 15:57:05 yeah, could be easily 15:57:08 that is why I placed topic on PTG for a much deeper discussion 15:57:43 actually.... 15:57:53 I think I'm mixing this up with some other repo 15:57:59 So I don't disagree it'd be nice to have deeper integration federation 15:58:06 https://github.com/vexxhost/keystone-keycloak-backend is the backend that Vexxhost uses. 15:58:24 oh, yes, I was all time talking about that ^ 15:58:25 lol 15:58:44 I'm not talking about the backend 15:58:48 I'm talking about https://github.com/vexxhost/keystoneauth-websso 15:58:48 ++ 15:58:53 ok, sure, sorry 15:58:58 right, and for that in 2024.2 we now have possibility to configure it dynamically without needing to restart keystone (or let's say partially) 15:59:00 * noonedeadpunk need to take some rest 15:59:25 Which causes my browser window to open and go to my OIDC provider 15:59:37 and then it redirects me back to http://localhost:9999 15:59:48 that's actualy nice 15:59:51 and websso is listening on that port and it gets the id_token back 16:00:03 yes cardoe, it works, works great, but it doesn't cover all crazy usecases of federation 16:00:04 It's called websso cause it's implemented how horizon works afaik. 16:00:17 gtema: agreed it's not perfect 16:00:37 but maybe it's possible to work on that collaboratively to make it better 16:01:04 it works only for keycloak, that's one of the structural issues 16:01:06 Just wondering if I could submit it for inclusion and if I'd get feedback on what to improve on it OR if it's -1 immediately. 16:01:19 gtema: nope. I use it with Azure and GitHub today. 16:01:38 cardoe - question for driver or the cliauth plugin? 16:01:48 ut also I can recall slightly different path in keystone code for okta vs keycloack 16:01:56 for the cliauth piece 16:02:02 so adding compatability is normal evolvment 16:02:12 ah ok. I meant that the backend is keycloak only 16:02:20 pip install python-openstackclient keystoneauth-websso locally on my machine 16:02:39 we're over time, I'll make sure that bugs are taken care of. I'm going to end the meeting here, but please continue the conversation, this seems like a really good topic for the PTG. 16:02:47 #endmeeting