18:03:14 #startmeeting keystone 18:03:15 Meeting started Tue Mar 22 18:03:14 2016 UTC and is due to finish in 60 minutes. The chair is stevemar. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:03:17 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:03:20 The meeting name has been set to 'keystone' 18:03:27 #topic keystone RC status 18:03:48 #link https://launchpad.net/keystone/+milestone/mitaka-rc1 18:04:00 we cut RC1 last week and created the stable/mitaka branch 18:04:08 whoop 18:04:09 that is where mitaka proper will be released from 18:04:24 if you have any fixes that should be backported, propose them to stable/mitaka 18:05:10 i think the only one that may be included is bug 1558670, but it's definitely not a show stopper 18:05:11 bug 1558670 in OpenStack Identity (keystone) "Internal server error when updating an identity provider" [Medium,In progress] https://launchpad.net/bugs/1558670 - Assigned to Rodrigo Duarte (rodrigodsousa) 18:05:21 ++ 18:05:44 any other issues with the current RC ? 18:05:49 is there a tag like rc-potential? 18:05:56 bknudson: yep 18:06:19 just tagged 1558670 with it 18:06:37 no other bugs should have it 18:07:19 if no other questions here, we can move on 18:07:30 #topic Docs and DocImpact 18:07:44 i thought we covered this last meeting... 18:07:48 maybe not 18:07:55 DOC DOC MOOSE! 18:07:55 * morgan still dislikes docimpact opening a bug against keystone. 18:08:05 i think it's kindof absurd. 18:08:15 Keystone is absurd, so it fits 18:08:20 theater of the absurd 18:08:30 so if a patch is going to impact the openstack manuals create a DocImpact tag in the commit message 18:08:53 stevemar, shouldn't it open a bug in openstack manuals? 18:09:08 it'll open a bug against keystone, and we can use that to create keystone dev docs + it's up to us to also open it against the openstack-manuals team 18:09:28 that sounds like not good 18:09:30 release notes are not changed, we should keep doing what we've been doing there 18:09:33 back to the stone age with manual processes! 18:09:42 yeah, can we just do the right thing here? 18:09:55 this is why i think docimpact is absurd to open a bug against keystone 18:09:55 it's part of an effort to reduce the amount of bugs the docs team has to deal with 18:09:59 they can't keep up 18:10:06 I think they want us to fill in whatever more info we can and then transfer it 18:10:13 assign the bug to the committer 18:10:16 or just close it 18:10:19 but don't put it in the keystone db 18:10:55 stevemar: so... shove more bugs on the projects and then make us manually move it over -mwhich doesn't really reduce their bug count. just adds manual steps that will make the bugs / updates more likely to get lost 18:11:12 stevemar: the thing i don't like is that since we push our patches to include dev docs the only time i expect a docimpart is a manuals bug 18:11:34 dstanek: yep, which is why i wasn't enforcing the DocImpact tag 18:11:51 and it was just 2 weeks ago that the docs team learned about keystone-manage bootstrap :( 18:11:57 yeah, let's can this one 18:12:34 we can chat about it with the docs team in person at the summit 18:12:42 but for now, this was just a PSA 18:12:51 and let's open the bugs where they belong. IN the docs repo, but assign them to the keystone user that commited the patch, or to a default keystone contact if that is all we can do 18:12:57 ok...move on? 18:13:03 yep 18:13:10 happily 18:13:13 #topic Define driver interface 18:13:16 bknudson: ^ 18:13:31 so today we essentially define the driver interface by test_backends 18:13:41 and test_backends is actually mostly testing the managers, not the drivers 18:13:50 so the proposal is to have component tests for the drviers 18:14:13 which also means updating the docstrings for the drivers to actually specify how they're supposed to work 18:14:25 for example, the docstring for create_user should say that it returns the user 18:14:26 bknudson: do you have an example / first patch that we can look at ? 18:14:27 bknudson, so mock the driver responses? 18:14:31 because otherwise keystone isn't going to work. 18:14:33 wait found it 18:14:35 #link https://review.openstack.org/#/c/291950/ 18:14:52 bknudson, i mean, for the manager tests 18:15:14 rodrigods: for the manager tests what I plan to do is run them with sqlite. 18:15:19 can't imagine how driver unit test may look like 18:15:27 so no sense do have driver tests? 18:15:31 sqlite only, and the driver tests will run against all the drivers we support. 18:15:33 since they are being tested with the manager 18:15:43 bknudson, hmm 18:15:44 got it 18:15:48 maybe revive functional testing idea? 18:16:01 amakarov, we are going to get there :) 18:16:18 in today's meeting 18:16:18 so for example we will have driver tests that test against real sql 18:16:22 and hopefully real ldap. 18:16:29 WOO! 18:16:42 bknudson, great, so it is aligned with the tempest plugin bp 18:16:52 bknudson: sounds good to me 18:17:01 functional tests are different. They test from the REST API in 18:17:04 bknudson: i'd love to see a fake driver that acts exactly as a real driver would to test the managers 18:17:17 the driver tests will be calling the driver methods directly 18:17:40 bknudson, meaningless without a real back end though 18:17:53 functional tests need to be there to set up LDAP and SQL 18:17:59 otherwise it is a finger drill 18:18:00 for SQL a real backend should be pretty easy. 18:18:05 same for LDAP 18:18:11 devstack supports now 18:18:12 this is the next topic 18:18:18 ayoung: we can do that without having functional tests 18:18:33 LDAP will be a little harder I'll have to convince infra to have LDAP in the unit test image like they do with mysql and postgresql 18:18:46 dstanek, now we are arguing over the semantics of functional tests. So, yes, sure 18:18:51 bknudson, long term is a great effort 18:19:30 bknudson: why is ldap harder than two sql packages? 18:19:51 shaleh_, cuz only Keystone needs it, and thus only we understand it. 18:19:52 shaleh_, imagine loading fixtures there )) 18:19:54 shaleh_: i imagine some push back since we're the only project that'll use ldap and those images are for every project 18:19:56 shaleh_: it's harder because the sql packages are already there whereas for openldap I'll have to find out if they can do it. 18:20:29 bknudson, can we install post image build? 18:20:36 looks like we have a lot of different testing strategies to pick from 18:20:59 it means that the Keystone process will take a little longer , but, so what... 18:21:01 ayoung: I think there's a way to do the install ourselves. 18:21:23 bknudson, OK. We can link that in with the LDAP cleanup effort, then. 18:21:32 Worst case, we battle to get it in to the base effort 18:21:38 bknudson: mind if we jump to the next topic? 18:21:39 yes, part of this was to help with the LDAP cleanup effort 18:21:48 bknudson, one tricky thing about LDAP: enterprises use everything besides OpenLDAP :) 18:21:54 ok, only question is if others wanted to work on a driver. 18:22:02 if so, get in touch. 18:22:19 ++ 18:22:20 enterprise ldap isn't going to be installed by infra since it's not open source 18:22:25 amakarov: true, but how many of our problems are really due to different LDAP impls? 18:22:34 guys, bknudson is asking for help, it must be hard 18:22:36 you'll need to provide external CI for that. 18:22:38 shaleh_, some... 18:22:49 not much, though 18:22:58 amakarov, I am well aware...especially active directory, but testing that is non-free 18:23:14 shaleh_, which is also the answer to your question 18:23:34 #topic Opportunistic DB tests 18:23:40 bknudson: ^ you're up again 18:23:44 this is awesome btw 18:23:47 so this is somewhat related to the prev discussion 18:23:55 turns out infra installs mysql and postgresql 18:24:03 with a known username and password 18:24:04 ayoung, can we provide some way to configure functional test to run against come configurable LDAP backend? 18:24:20 and oslo.db has test_db which supports these databases 18:24:27 and runs with them if they're available 18:24:39 I think that can be handy for deployers 18:24:43 amakarov, yes, and we should also treat it like another database 18:24:44 so the work here is to get our migration tests working with mysql and postgresql, too. 18:25:00 anyways, I'm making good progress 18:25:11 and I'll try to add some docs so that devs can set up their env to run them, too. 18:25:13 we probably should focus on LDAP via domain specific backends, as that is the easiest: if it is there, mount it.... 18:25:27 which would be great, since we find bugs very often related to non-sqlite backends 18:25:44 ++ 18:25:44 stevemar: no doubt 18:25:47 the migrations are not working now with mysql 18:25:51 and postgresql 18:26:00 bknudson: ? 18:26:01 but there's not too many failures. I'll post the changes. 18:26:08 bknudson, neat 18:26:10 the migration tests, not the migrations themselvs. 18:26:13 bknudson: the tests or the 18:26:14 oh good 18:26:22 scared me for a sec 18:26:53 that was it, just wanted others to know that this is available. 18:27:15 I think the infra team is changing things up a bit so that the dbs are only available on a periodic job. 18:27:19 bknudson: what will toggle between sqlite and the others? 18:27:31 there are 3 test classes, they all try to run 18:27:54 oh, what toggles is there's a fixture that sets the connection string so sqlalchemy picks the right driver 18:27:55 shaleh_: oslo.db magic to figure out whats installed 18:28:03 shaleh_, foreign keys cascading operations for sure 18:28:22 bknudson: nice 18:28:43 rodrigods: ready for next topic? 18:28:46 yep! 18:28:49 should be quick 18:28:57 bknudson: i am really looking forward to the different sql tests 18:29:05 bknudson: let me know if i can help 18:29:17 #topic Specless bp for tempest plugin interface tests 18:29:21 rodrigods: ^ 18:29:31 so... tempest won't accept negative tests anymore 18:29:35 that are component specific 18:29:41 dstanek was in the meeting as well 18:29:53 the idea is to have tests in keystone using the tempest plugin interface 18:30:02 this tests will run only against keystone 18:30:24 this sounds cool 18:30:28 since are tests, don't need a spec, right? 18:30:44 does it replace the functional testing we've been discussing? e.g., federation tests? 18:30:45 this stemmed from QA wanting to get rid of certain types of tests from tempest and push them back into the projects 18:30:47 is this the keystone meeting or the QA meeting, it's all tests! 18:30:50 no spec is needed. 18:31:00 stevemar, lol 18:31:04 ++ no spec 18:31:11 bknudson: i've been toying with a plugin to do the functional testing 18:31:13 should be sending a patch this week 18:31:16 dstanek, ++ 18:31:28 how many tests are they getting rid of? 18:31:33 bknudson: it looks like it could, but we'd still need to carry all the devstack things that i wrote 18:31:38 bknudson, none 18:31:44 but new ones won't be accepted 18:31:46 I've always found tempest's keystone tests to be pretty wacky, e.g., they have a v3.admin package??? 18:31:54 they even denied a test where a found the idp update bug 18:32:09 bknudson, yes 18:32:39 so are the plugin tests only for negative tests or any tests we want? 18:32:45 bknudson: rodrigods: right, they decided to keep them all (they were primarily talking about negative tests) 18:32:47 bknudson, any tests we want 18:33:13 when would we choose our plugin vs tempest proper? 18:33:33 i think the answer is: whenever we communicate with other components -> tempest 18:33:34 maybe we should have all these tests in it's own repo, i think ayoung mentioned this 18:33:41 only keystone -> keystone 18:33:53 bknudson: it sounds like most things we want to test would be in our plugin since we don't use may other services 18:33:59 stevemar, makes sense... but is a bit more work to enable them in this case 18:34:12 rodrigods: also i imagine tests of defcore? 18:34:41 do we plan to pull tests in from Tempest once the infrastructure is in place to accept them? 18:34:58 shaleh_, maybe? 18:35:00 makes sense to me 18:35:06 we could 18:35:22 rodrigods: at least on the negative/positive side right? 18:35:29 shaleh_, yes 18:35:34 Tempest validates it works, we look for where it does not. 18:36:29 i really hope this talk continues up to and at the summit 18:36:33 so even though each project will carry these tests they will still be executed by a Tempest run? 18:36:56 what's a negative test? 18:37:19 breton, the tests an error, for example 18:37:24 breton: a negative test is one that shows what happens when you do something wrong 18:37:43 e.g., try to specify an ID when you create a user 18:38:34 breton: the most valuable tests! 18:39:22 stevemar, the rationale for its own repo was to be able to to double book entry accounting 18:39:39 any change that affects tests has to be done in 3 commits 18:39:43 1. change the tests 18:39:47 2. change the main code 18:39:54 3. change the tests to validate the new code 18:40:12 usually step 1 is "disable old tests that are checking the wrong thing" 18:40:27 hmm 18:40:27 true 18:40:48 But...the other issue I had with tempest is that their test infrastructure essentially has its own client implementation 18:40:51 it should be easy to split out the plugin later since it's self-contained. 18:40:56 ayoung: yep, it's got merit, but we can probably just add to our own projects for now and when it gets too big we can toss them in their own repo 18:41:13 I'd much rather we focused on functional testing in the keystone client project most of all 18:41:17 the tests are not public interfaces, so we can rip them out whenever 18:41:23 client->server->real backends 18:41:29 ayoung, ++ 18:41:53 ayoung, it's an option, but we need to test keystone directly 18:42:08 ayoung, the problem is that such tests are hard to investigate on their failure 18:42:26 and tempest has a really great infrastructure in its plugins 18:42:30 to write the tests 18:42:41 rodrigods, the KC is such a think wrapper , I disagree 18:42:56 in order to break something, it would take a change to both Keystone and client in sync 18:43:05 ayoung, we need both 18:43:07 rodrigods: help them make it available to all now that they are asking each project to carry tests? 18:43:18 ok, my vote is no spec is required. Might help but not a big deal. 18:43:31 we can review the code. 18:43:45 will put the docs in the commit message too 18:43:51 it should be enough 18:44:03 bknudson: i don't think we need a spec either 18:44:08 docs in the commit msg? 18:44:15 stevemar, link :P 18:44:25 ahhh 18:44:30 rodrigods: i see 18:44:39 rodrigods: keep the docs in the docs folder :P 18:44:50 stevemar, tempest plugin interface docs 18:44:51 #topic TLS Gate 18:44:57 thanks o/ 18:44:58 OK, so Rob can't make it 18:45:01 anyone know rcritten ? 18:45:06 ayoung does 18:45:09 stevemar, he's from my team 18:45:11 we've all met rcritten 18:45:16 we are trying to get TLS everywhere to work 18:45:21 and this is part of that effort. 18:45:30 So, the question here is, can Keystone run with this setup 18:45:31 my only complaint about this is I don't think keystone needs a TLS proxy 18:45:41 we run in httpd, so just configure httpd with TLS 18:45:43 yeah, but do we set up Keystone with TLS at all? 18:46:09 bknudson: ++ 18:46:17 I figure the setup would be roughly the same...and many sites do front things with a proxy 18:46:19 so I'd really like to see this, but I think we'd be better off waiting until we get rid of eventlet and uwsgi 18:46:20 HTTPD can handle the TLS layer just fine. 18:46:27 and then just set httpd to TLS and skip the proxy 18:46:29 right morgan ? HA Proxy as a TLS terminator is common 18:46:31 how does devstack setup keystone with tls now if we run under httpd? 18:47:06 ayoung: it's all the same really - but i don't see a big benefit to adding a proxy for the sake of proxy 18:47:08 if someone wants to propose haproxy in devstack that would be interesting, too. 18:47:09 does it even support that? stevemar ? 18:47:09 in gate 18:47:15 bknudson, ++ 18:47:30 but haproxy is better than generic tls proxy 18:48:06 bknudson, we use it already 18:48:13 morgan, so in this case it is more acase of validating the approach so that we can get the other services to use it, too 18:48:18 we use haproxy as ssl terminator. does the load balancing and active-active for us very nicely 18:48:37 browne, ++ 18:48:44 browne: how do you run keystone? eventlet? 18:48:50 I can answer back that we think HAProxy would be the better approach. I think that is not a bad answer 18:48:53 browne: is haproxy running on each node? 18:48:54 would we then use it? 18:48:59 bknudson: yes today (kilo based) 18:49:23 dstanek: haproxy runs on its own vm separate from the controller. 18:49:29 browne: so traffic from haproxy -> keystone isn't over TLS 18:49:36 bknudson, we run haproxy + apache mod_wsgi (looking towards uwsgi) 18:49:48 dstanek: no, its just http on private network 18:49:55 dstanek, it can be, but that is a different (but important) thing to test 18:50:22 and we use keepalived for virtual IPs 18:50:30 ayoung: that's why i was asking :-) i like TLS everywhere, not just between users and services 18:51:36 10 minute warning 18:51:36 OK...that is all I have. 18:51:37 I think we should start with (for keystone) configuring apache for TLS. 18:51:45 bknudson, ++ 18:51:47 bknudson: ++ 18:51:48 https://httpd.apache.org/docs/2.4/ssl/ 18:51:49 ignore eventlet case since that's dead 18:52:49 bknudson: if they want to shoot themselves in the foot with eventlet then they can use haproxy/stud/whatever to terminate 18:52:52 letsencrypt? 18:53:07 but actually, what about the Keystone gate jobas 18:53:21 this is where we setup the different keystone deployment methods: https://github.com/openstack-dev/devstack/blob/master/lib/keystone#L283-L323 18:53:21 we're getting rid of keystone-all, so there won't be eventlet 18:53:21 shouldn't we be running with the other services behind tls proxy or comparable? 18:53:48 other services will have to use tls proxy unless they can run in apache 18:54:12 right, so can we enble that gate job for Keystone? 18:54:17 https://review.openstack.org/#/c/293090/ 18:54:47 we can modify it to not do proxy for Apache based services. Is that the feedback? 18:54:49 does it work? 18:54:52 the gate job? 18:55:24 I'd prefer it if the devstack config for tls "proxy" was configuring apache to do TLS directly 18:55:36 ++ 18:55:37 and of course running keystone in apache and not eventlet 18:55:40 bknudson, according to Rob (who is far more thorough than I am on most things) yes it does 18:56:10 So, to be honest, I would have to look at what he means by "most services" 18:56:35 is rcrit going to be around so we can ask him questions? I'm trying to change things in this area and might have questions or might ask him to do stuff. 18:57:01 bknudson, yeah, I asked him to be here, but too late for him to change another appointment. I'll drag him in next week 18:57:12 he'll be back later on today, too 18:57:25 have him ping me when he's on 18:57:40 bknudson, will do. He's got two accoutns active in #freeipa right now 18:57:51 just I know he's OOTO ATM 18:57:59 all I have 18:58:25 bknudson follow up with rcritten and see if you have overlap i guess 18:58:39 last topic ... 18:58:41 #topic Apply for stable:follows-policy tag 18:58:48 i will submit a patch for this 18:58:53 end topic :) 18:58:54 bknudson, waht does that tag give us? 18:58:56 I don't have any info here, it was just asked this morning in the mtg. 18:59:11 bknudson: someone was looking for people to talk about it last week 18:59:18 ayoung: it just asserts that we will follow the stable policy 18:59:29 stevemar, no way! 18:59:32 I guess stevemar will fill us in next week. 18:59:33 times up 18:59:33 so we won't backport features or nonsense 18:59:47 yep 18:59:50 #endmeeting