22:01:21 #startmeeting neutron_drivers 22:01:21 Meeting started Thu Jun 8 22:01:21 2017 UTC and is due to finish in 60 minutes. The chair is kevinbenton. Information about MeetBot at http://wiki.debian.org/MeetBot. 22:01:22 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 22:01:25 The meeting name has been set to 'neutron_drivers' 22:01:32 o/ 22:01:44 armax, amotoki_away: ping 22:01:54 presumably amotoki is indeed away :) 22:02:03 indeed.... LOL 22:02:25 armax told me he might not be able to make it today 22:02:40 heh 22:02:43 3/5? 22:03:02 yeah, i suppose we can go through a few things 22:03:11 one i want to talk about is the l2 extension manager 22:03:55 what's there? people showed up and drive the work? 22:04:07 so it sounds like Thomas is willing to be approver 22:04:08 I lost the context since all fire drills that never end 22:04:20 and David is willing to write the code 22:04:42 i'm looking for spec now 22:04:48 davidsha? 22:05:03 https://review.openstack.org/#/c/320439/ 22:05:07 ok then let them? I believe the initial implementation doesn't imply that everything should switch to the new way in one go, so we can consider it experimental and play with it. 22:05:08 mlavalle: yep 22:05:59 mlavalle: can you take a look through that spec so you're familiar with it? 22:06:09 mlavalle: and give +2 if it looks good 22:06:13 i' 22:06:17 will go through it as well 22:06:25 and that will give us enough to approve 22:06:30 and let them go on their way 22:06:30 I was about to propose to review it 22:06:42 yes, I will look at it tomorrow 22:06:54 ok 22:06:56 is that ok? 22:07:20 yep 22:07:29 added to my pile 22:08:15 ok 22:08:33 shall we take a look at a few RFE's? 22:08:49 yeah 22:09:00 #link https://bugs.launchpad.net/neutron/+bugs?field.status%3Alist=Triaged&field.tag=rfe 22:09:06 #link https://bugs.launchpad.net/neutron/+bug/1649417 22:09:07 Launchpad bug 1649417 in neutron "RFE: Security group rule using address set" [Wishlist,Triaged] - Assigned to Dongcan Ye (hellochosen) 22:09:48 I thought it is a sensible use case 22:09:57 I *think* it was once proposed in the past 22:10:02 I think ~Barcelona 22:10:20 i was thinking we might not even need to change the SG API itself 22:10:21 there was a guy (I don't remember the name) who pitched the idea 22:10:30 we can overload remote_group_id 22:10:39 to reference either a new set thingyt 22:10:43 or security group 22:11:07 so it becomes only adapting the pipes 22:11:22 yeah 22:11:36 and a separate api to create AddressSets 22:11:40 so remote group will point to a new compound resource and the latter will point to set of SGs? 22:12:14 I mean, set of addresses 22:12:40 so remote_group will either be an AddressSet or a SecurityGroup 22:12:44 is what i was thinking 22:13:06 so consider this: a user not knowing about overloading fetches SG, looks at remote group, fetches it via SG API and gets 404 22:13:10 yeah 22:13:13 that's the downside 22:13:41 that's a blocker I would say no? 22:13:52 Another option may be to allow address sets to associate with a security group 22:14:08 then for remote_group_id they still reference a security group 22:14:17 and that includes all of the sets associated with that group 22:15:12 I want to avoid adding a new thing to the rules themselves 22:15:34 that may ofc raise some eyebrows like - I have my SG rules blocking all but X and Y, but I can access Z too 22:15:42 but that's a downside of any new api 22:15:56 there is something else here 22:16:03 this already sort of works with allowed address pairs 22:16:18 a little unknown feature is that security groups allows all addresses in members allowed address pairs 22:16:52 that may actually solve this use case 22:16:59 create a dummy port for your external stuff 22:17:07 add each IP into the allowed_address_pairs entries 22:18:19 let's propose that to the submitter in the RFE, let's see his feedback 22:19:14 + 22:19:14 i will do that right now 22:19:32 kevinbenton: do you mind going out of order for one RFE? 22:20:57 mlavalle: sure 22:21:00 mlavalle: link it now 22:21:04 https://bugs.launchpad.net/neutron/+bug/1682775 22:21:05 Launchpad bug 1682775 in neutron "[RFE] Tag mechanism supports all resouces with standard attribute." [Wishlist,Triaged] - Assigned to Hirofumi Ichihara (ichihara-hirofumi) 22:21:18 hichihara already has a patchset in gerrit 22:21:29 which I reviewed earlier today 22:21:44 so I thought we migh as well look at the RFE 22:21:47 yeah 22:21:54 ihrachys: did you have a concern here? 22:22:17 looking 22:22:28 IIUC after briefly looking at the patches this is just extending to include all standard attr resources 22:22:37 correct? 22:22:47 my concern was about how we define 'all' resources 22:22:59 mlavalle: do you have a patch link handy 22:23:12 maybe i'll just update the title to all standard attribute resources if that's the case 22:23:15 we don't have this concept of overarching api extensions covering 'everything' 22:23:24 https://review.openstack.org/#/c/460391/ 22:23:42 yeah, this is just standard attr resources 22:23:47 so i'll update rfe title to reflect that 22:23:52 ihrachys: will that address your concerns? 22:23:56 it's not like we have a stable list of those resources either 22:24:07 at least not discoverable 22:24:20 ihrachys: if those resources change then there will be a separate extension that indicates that 22:24:27 ihrachys: he tries to address that, hang on 22:25:07 https://review.openstack.org/#/c/460391/5/neutron/extensions/tagging.py@42 22:25:07 so what the RFE proposes is to add tags to all resources that atm support stdattrs, and to NOT cover for any resources that may add support for stdattr in the future? 22:25:24 ihrachys: they would automatically get them in the future 22:25:25 then I am good, no controvercy from api discoverability pov 22:25:26 yeah, that's what it is doing now 22:25:32 ihrachys: similar to revision_number and timestamp 22:26:03 kevinbenton, and how does api user determine if it's going to be present on resourceA? 22:26:26 it would somehow need to know the server version to relate, but we don't have versions. 22:26:30 ihrachys: resourceA is a new extension, right? 22:26:45 i mean a new resource introduced by an extension 22:27:30 let's say ports have stdattrs, but qos don't. you add 'all-tags' extension that indicates that ports have tags; then in next release, you add support for qos. will you add a new extension called 'qos-tags'? 22:27:41 no 22:27:56 then it's not discoverable 22:28:02 i don't understand your question 22:28:08 this patch introduces a new extension 22:28:16 that covers all standard attr stuff that exists now 22:28:28 so the only two options left are completely new standard attr resources 22:28:36 and resources that weren't standard attr before 22:28:43 both of those will have a new extension 22:28:49 which is the case before this patch as well 22:29:13 ok, then the proposal doesn't cover 'all stdattr enabled resources' but 'all stdattr resources from Pike' 22:29:38 all standard attr resources that didn't have tags yet 22:30:04 that makes sense. it's not open end, which is not controvercial. 22:30:26 well say we add AddressSets and they are standard attr 22:30:31 they will automatically get tags 22:30:54 new resources are easy 22:30:59 but the address-set extension or whatever we would call it would automatically include tags 22:31:02 ok 22:31:21 so your concern is things that aren't standard attr now that already exist? 22:31:33 kevinbenton, so to understand, it won't be possible to implement address-sets without tags? 22:32:00 ihrachys: if they are standard attr, they automatically get tags 22:32:04 if it has standard attributes, no 22:32:07 kevinbenton, yes, that's my concern, resourceX that is not there yet. 22:32:52 ihrachys: so converting resourceX to standard attr should have an extension regardless of this because of revision numbers, timestamps, and descriptions 22:33:03 kevinbenton, that's implementation. I am talking more about api semantics. from neutron api model, you don't get anything automatically, you get it by virtue of attr map loaded into neutron-server. 22:33:30 kevinbenton, I think we can discuss those details in review. RFE is fine. maybe wording is not ideal for me, but that's ok 22:33:45 ihrachys: attr map is derived from standard attr inheritors 22:33:52 ihrachys: automatically 22:34:13 attr map is supposed to be static, it doesn't depend on implementation 22:34:17 ihrachys: https://review.openstack.org/#/c/460391/5/neutron/extensions/tagging.py@44 22:34:24 you commit it to neutron-lib and don't touch it 22:34:58 kevinbenton, I know the code; remember I was eagerly against it when you pushed it into tree late Newton? 22:35:11 ihrachys: so why are you suggesting that's not how it works? :) 22:35:27 I am saying that's not how it *should* work 22:35:43 api doesn't depend on server code, it's contract. 22:35:50 *should not* depend 22:36:14 that ship sailed long ago with extensions defined out of tree in code 22:36:18 but i get your point 22:36:26 you can suggest that he statically enumerate them 22:36:41 let's approve RFE and you can provide that feedback in the review 22:37:00 kevinbenton, enumerate is what I support; hence my comments on difference between open ended 'all' and closed list. anyhoo, I think we can move. 22:37:05 ++ 22:38:55 ok, left a comment 22:40:02 nicely worded, thanks 22:40:43 mlavalle: so patch is good in current approach, basically the only line that needs to change is that one you linked 22:40:54 cool 22:40:56 mlavalle: instead of making that function call for getting all standard attrs 22:41:02 ihrachys: just manually list each resource 22:41:10 + 22:41:25 #link https://bugs.launchpad.net/neutron/+bug/1652071 22:41:26 Launchpad bug 1652071 in neutron "[RFE] Implement migration from iptables-based security groups to ovsfw" [Wishlist,Triaged] 22:41:49 I looked at the abandoned patch, I don't think it's the way to go 22:41:57 I suggest we don't explore further in-place switch 22:42:03 instead expand on live migration 22:42:16 which ofc requires multiple port bindings and nova work 22:42:38 but it's a complete solution for all backends, not a hack 22:42:52 yep 22:43:01 the only downside is that i'm not sure we can switch default 22:43:14 or suggest a default switch 22:43:34 because it's a non-standard upgrade that requires rolling migration 22:43:46 I don't think it matters if live migration works. let the market (users) choose where they want to migrate to. maybe it's ovs to linuxbridge ;) 22:43:47 (we have no default, but deployment tools do) 22:44:08 well i was hoping we would have a path to actually dump the hybrid iptables driver 22:44:14 at some point 22:44:36 you can always do it. follow deprecation process and remove/push code out of tree 22:44:46 I don't think anything stops us if we document the process 22:45:01 a release note will ofc be needed 22:45:04 would be the first time we had a breaking upgrade for a node, no? 22:45:24 why no 22:45:34 let's say a config option changes name 22:45:40 we are going to break in 2 cycles 22:45:49 1st cycle we warn, 2nd we remove 22:45:50 they just update the config in response to warnings 22:46:01 there is nothing they can do here to avoid dataplane disruption 22:46:02 mitigation will be more involving ofc 22:46:17 in theory live migration is not disruptive 22:46:22 from instance pov 22:47:04 do all deployments support live migration? Is that something other project upgrades depend on? 22:47:35 well from product pov, RH-OSP upgrade implies live migration of all instances from compute to another node before upgrade. 22:47:39 so it should work :) 22:48:06 ok, so you don't even upgrade components with VMs running on them? 22:48:07 not to say I want to drag RH into the formula, just saying it works 22:48:17 kevinbenton, not for compute 22:48:35 for agents procedures should actually be similar but I am not sure we document it that way 22:48:51 well yeah it works, but I'm wondering if other projects force live migration on upgrade 22:49:00 e.g. cinder 22:49:04 the reason why we do it this way is because we usually need a reboot for kernel and stuff 22:49:14 makes sense 22:49:40 so the proposed patch i was definitely against 22:49:44 well I don't say neutron *forces* it. we can recommend. 22:49:55 well we will force if we deprecate 22:49:58 worst case is they just stick to the old driver indefinitely 22:49:59 which i was hoping to do 22:50:07 but for now that doesn't seem feasible 22:50:35 the other option for migration is to leave iptables bridge behind and clear all of it's iptables rules 22:51:21 ok, let's say it this way - mainstream path is live migration, but we can explore in-place if we have time and will after we close the first path. 22:51:32 yeah, i'm for marking this deferred 22:51:38 then revisit next cycle as people start to move 22:51:41 in place should be a thing you pick knowingly, can live out of stadium 22:52:11 ihrachys: well it could be the new hybriddriver eventually 22:52:15 not to mention there are still major issues with the firewall, so it's not time to discuss how we will move everyone to greener pastures ;p 22:52:29 true 22:52:30 :) 22:53:03 + for defer/postpone/whatever it's called 22:53:11 + 22:54:02 let's try one more 22:54:04 #link https://bugs.launchpad.net/neutron/+bug/1653932 22:54:05 Launchpad bug 1653932 in neutron "[rfe] network router:external field not exported" [Wishlist,Triaged] - Assigned to Kevin Benton (kevinbenton) 22:54:58 basically the issue here is that subnets aren't visible on external networks 22:55:10 beyond their IDs in the network body 22:56:00 well that's as designed. unless we introduce shared field for subnets, or a new rbac action for network. is it what's proposed? 22:56:24 I think the latter 22:56:30 so subnets has a shared field that is derived from the network's shared field 22:57:01 so we could do the same thing 22:57:25 have a 'router:external' field that derives from parent network 22:57:25 inherit access_as_external from network? 22:57:58 let's revisit this 22:58:06 policy engine can do parent lookups 22:58:16 so i need to see if it's possible without adding more fields 22:58:47 like policy.json rule change? 22:58:50 https://github.com/openstack/neutron/blob/d26b96b7a27c8fcd5e99a6494de406436a48339e/etc/policy.json#L6 22:59:02 so that triggers policy engine to lookup parent network 22:59:31 if we can just make this possible for this guy to write a rule that says (network:router_external=True) or something on get_subnet 22:59:35 then we should be good 23:00:08 + 23:00:09 time 23:00:27 thanks 23:00:30 o/ 23:00:32 bye 23:00:35 #endmeeting