16:00:25 #startmeeting Octavia 16:00:25 Meeting started Wed Mar 23 16:00:25 2022 UTC and is due to finish in 60 minutes. The chair is gthiemonge. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:00:25 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:00:25 The meeting name has been set to 'octavia' 16:00:32 Hi Folks 16:00:33 o/ 16:00:37 o/ 16:00:42 hi 16:02:21 #topic Announcements 16:02:27 * Yoga release schedule - Final RC 16:03:30 FYI This week is the Final RCs (we don't have any additional RCs after RC1), next week is the Yoga Release! 16:04:07 Wahoo 16:05:14 Do you have any other announcements? 16:05:31 Just a reminder: Zed PTG - Octavia 16:05:38 #link https://etherpad.opendev.org/p/zed-ptg-octavia 16:05:47 I need to work on the proposed topics/schedule 16:07:12 #topic Brief progress reports / bugs needing review 16:07:35 I have updated the huge "Fix plugging member subnets"/"Multi-VIP" patchchain 16:07:59 I still need to sort out the dependencies between octavia and octavia-tempest-plugin 16:08:18 (I still don't know if the octavia patch should depend on the tempest tests, any thoughts?) 16:09:03 Ha, the old chicken and egg issue. I think tests should depend on the code that implements. IMO 16:09:12 anyway, I have removed the WIP from the Multi-VIP patch because I've completed the last concerns I had with it (improved coverage in the unit tests) 16:09:22 #link https://review.opendev.org/c/openstack/octavia/+/660239/ 16:09:46 I think I've mixed both approaches in the patch chain :D 16:10:17 It happens 16:10:36 oh no I need to update the 2 main patches to reverse the depends-on 16:11:53 (Hopefully I'm not out of turn) I was hoping to discuss "Add rpc notification for load balancers" 16:11:54 https://review.opendev.org/c/openstack/octavia/+/831051 16:12:22 spharmon`: hi! and welcome! 16:13:01 Hi! Thanks! Nice to meet you :) 16:13:37 Yall keep going, but lmk when it's my turn to go. I have a specific question related to one comment. 16:14:09 spharmon`: please, go ahead 16:14:35 Awesome. The comment is this one: 16:14:36 https://review.opendev.org/c/openstack/octavia/+/831051 16:14:41 oops 16:14:51 This one: https://review.opendev.org/c/openstack/octavia/+/831051/6..10/octavia/common/rpc.py#b46 16:16:28 Essentially, I'm wondering whether anyone has concerns with raising here rather than rerunning init(). Other projects raise in a similar fashion which is why I've done that here (My main concern is opening additional rpc connections and running out of file descriptors). 16:16:54 "they specifically asked"... johnsom, was it you? 16:17:13 No, it looks like Erik 16:17:57 I have not reviewed this patch 16:18:26 It was Erik who raised the concern because of some historical knowledge, but he also clarified that he thinks it's appropriate to raise here. I think I'd like to resolve if no one has concerns with raising. In another channel, we discussed possibly changing these to assertions. 16:19:56 IMO adding an assert seems more pythonic than raising an equivalent AssertionError directly 16:20:23 I think the advantage of raising the assertion is to use the translation library, right? 16:21:22 I guess my concern would be do we assume that get_client will init the transport no matter what. Ugh, I don' t know this code very well. 16:21:41 I'm not sure that translating "'TRANSPORT' must not be None" would help the user ;-) 16:21:55 assert TRANSPORT is None, _("'TRANSPORT' must not be None") should be equivalent 16:22:05 I don't know it either 16:22:08 I don't need an answer now. My assumption is no: TRANSPORT should be set elsewhere and never be None in get_client, but I'd conceed if that's not right. 16:22:42 Ah yeah ok. I can refactor for the assersion. I agree it's more pythonic. 16:24:43 As far as running init(), I think there's a risk if you don't cleanup the prior connections, right? Then, if you do run cleanup, like Erik mentions, there's a risk of race conditions with calls to the prior TRANSPORT, NOTIFIER, et c.. 16:25:43 I think their intent was to create a singleton for those 16:25:51 With lazy init 16:27:23 Ok, I see. I'll look more into create_transport to see if there's a safe way I can figure to do that. 16:27:29 Anyway, that's all. Thanks for the insight. If yall get some cycles to drop a comment, I'd appreciate it. I'll be hanging around in here as well, so reach out any time. 16:28:45 spharmon`: BTW Have you seen the other proposed commit for notification support in Octavia? https://review.opendev.org/c/openstack/octavia/+/784628 16:30:55 Yes, I have. I started off testing that one and landed here, in an effort to fix especially the non-singleton problem of reinitializing the rpc stuff here. There were also issues with placing the logic in with the database_tasks. 16:32:55 spharmon`: how is your patch now (WIP? almost ready?)? can I test it in my env? 16:33:06 I also like having separate tasks for notifications. In my case, I'm testing with a third-party driver. This way, I can import these tasks in the flows in the third party driver. 16:33:32 I'd say almost ready. We're running this in our dev environment. It's been in the lab for some time as well. 16:33:58 cool, I would like to test it ;-) 16:34:13 Awesome! I'd love any feedback! :) 16:35:54 I started continuing the work on the failover stop threshold patch here: https://review.opendev.org/c/openstack/octavia/+/656811 16:37:01 tweining: cool, I replied to your comment in the patch 16:37:06 I added a new provisioning state FAILOVER_STOPPED for the amp, but get "foreign key constraint fails" errors. not sure why yet. 16:37:48 There are relational protections in the database for those states. Modifying the state machine is a big deal really. 16:37:57 :/ 16:38:05 Is there a description of why we need a new state? 16:38:16 I.e. the commit message or spec? 16:38:35 #link https://review.opendev.org/c/openstack/octavia/+/656811/13/octavia/db/repositories.py#1680 16:38:38 johnsom: ^ 16:39:05 I don't think we must have a new state. I just thought it would help. 16:39:48 It's certainly possible to do, but some work. I will have to read through these comments and code to understand. 16:40:42 tweining: when you said you "added a new provisioning state FAILOVER_STOPPED", do you mean in the code? because the states are also defined in the DB 16:41:02 Oh, if this is amp state, that is less risky to change. I was talking about provisioning status which has wide implications. 16:42:00 I added a new constant for that. I thought no DB schema change would be needed as it is an existing string field. 16:43:02 so a constant in octavia-lib which gets used in octavia.common.constants. 16:43:32 there's a provisioning_status table: https://opendev.org/openstack/octavia/src/branch/master/octavia/db/models.py#L45 16:43:55 The states have a database relational constraint to make sure they are consistent. 16:43:57 https://opendev.org/openstack/octavia/src/branch/master/octavia/db/models.py#L620-L623 16:45:59 I also have a topic for open discussion when we get there. 16:46:21 ok, I will try to make it work with that new state then if there are no objections or we can talk later about it. 16:46:40 no objections from me ;-) 16:47:35 tweining: I can explain offline how to update an existing table in Octavia (add a migration script) 16:48:02 thanks 16:48:14 #topic Open Discussion 16:48:19 johnsom: o/ 16:48:27 I wanted to raise that we have a new bug: 16:48:29 #link https://storyboard.openstack.org/#!/story/2009942 16:48:51 yeah I've just received the notification email 16:49:15 CentOS 9 Stream recently updated OpenSSL and removed a number of features. SHA1 for sure, but it also looks like TLSv1. 16:49:47 We have tests that cover the various TLS versions (because we have code that allows you to allow/deny them). 16:50:08 johnsom: so the bug is in the test? 16:50:20 So, we need to think about how to handle tests that will no longer pass on certain platforms. 16:51:10 johnsom: can we set the minimum_tls_version for this job and check what the API returns? 16:51:14 In this case, yes it's a test issue. 16:52:37 Yeah, I'm not sure how the controller/amp side is going to work on CentOS 9 Stream if the user selects TLSv1. Obviously the operator can block TLSv1 if they know it's broken in CentOS 9 STream, but... Maybe we need to come up with a strategy for dealing with this 16:53:03 It's not like an API version will tell you, etc. It's purely trying the OS and see if it works I guess. 16:53:37 could the work query the capabalities of an amphora? 16:53:47 We could also just change the defaults to remove TLSv1 from the default available list and make the assumptions it's dead 16:54:49 Hmm, yeah, via a DIB image build time something... I guess 16:54:55 I'm adding a topic to the agenda of the PTG ;-) 16:55:03 +1 16:55:15 Just wanted to raise awareness on this. It's a tricky one 16:55:24 2 topics: TLS default settings, and amphora capabilities 16:55:52 In theory they are going to want a fix back to wallaby too. sigh 16:56:02 hmm 16:56:03 yeah 16:56:43 Ok, that was all I had today 16:56:57 thanks for raising it 16:57:26 any other topics folks? 16:57:49 no 16:58:22 Nothing from me 16:58:28 ok 16:58:35 thank you Folks! 16:58:41 #endmeeting