14:00:43 #startmeeting neutron lbaas 14:00:44 Meeting started Thu Mar 13 14:00:43 2014 UTC and is due to finish in 60 minutes. The chair is enikanorov_. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:45 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:00:47 The meeting name has been set to 'neutron_lbaas' 14:00:57 hi 14:00:59 hi 14:01:02 hello 14:01:04 hello 14:01:06 hello everyone 14:01:09 hi 14:01:09 hi 14:01:36 let's start with some announcements 14:01:47 #topic announcements 14:02:10 we've got new driver in our tree - netscaler from citrix 14:02:27 which is backed by their 3rd party CI 14:02:37 congrats to the authors 14:03:01 thanks enikanorov! 14:03:12 embrane driver is close to merge too 14:03:16 another driver can possibly make it to Icehouse: embrane 14:03:20 did it get FFE? 14:03:24 yes 14:03:27 good 14:03:43 so all that is a good indication that community is interested 14:04:06 at the same time each new driver increases the cost of object model and API change that we're discussing 14:04:38 anyway... we also have radware drive the still doesn't have working and voting CI 14:05:07 I saw tempest patch was merged that resolves some problems with integration testing of radware driver 14:05:17 so I hope to see their CI voting soon 14:05:42 i think we'll not be glad if core team desides to remove the driver from the tree 14:06:07 #action Sam to update on progress with radware CI 14:06:59 that's it on announcements 14:07:07 lets get back to the object model discussion 14:07:34 the diagrams and proposals are on the wiki, I think most of you are already familiar with them 14:08:08 Sam Bercovici could not attend 14:08:16 does anyone have any questions/suggestions on the object model proposals? 14:08:47 after looking at them more carefully i believe proposal #2 is the best 14:09:19 given that new drivers are merged I thiink one of the main requirements to the new model should be backward compatibility 14:09:39 Proposal 2 is backwards compatible no? 14:09:49 yes, it is 14:09:51 it is 14:10:22 so as #3 14:10:24 what were the cons of proposal 2? 14:10:29 however after recent discussions I realized that code on review should be improved in order to coply with recent design decisions 14:10:47 shouldn't we discuss at API level first? 14:10:58 blogan: some folks argue the the 'loadbalancer' object is redundant 14:11:03 Proposal 3 doesn't allow multiple vips in an intuitive manner which is a big detractor for me. 14:11:24 enikanorov_: could you explain how it is redundant? 14:11:26 iwamoto: API maps very closesy to object model, so it's kind of joined discussion 14:11:52 enikanorov: Doesn't it make sense though that Load Balancer as a Service have a load balancer object? 14:11:58 blogan: well, some folks think that all user cares is Vips and Pools 14:12:04 it's in the name of the service 14:12:16 jorgem: that's a weak argument :) 14:12:18 and most people speak in terms of a loadbalancer object 14:12:26 :) just saying 14:12:41 I agree, but I also want to make sure concerns and objections are addressed 14:13:06 I think for a user perspective, "listener" is more familiar for those that had used AWS ELB 14:13:10 fair enough, all objections should be addressed and not dismissed 14:13:11 enikanorov: Should we talk about it proposal one by one then? 14:13:14 each* 14:13:23 so basically proposals #2 and #3 address the same problem of reusing same ip address by several vips 14:13:32 in #3 vips are called 'listeners' 14:14:19 so to me #2 and #3 are basically the same, except of object names 14:14:43 that's why I'd prefer #2 because bw compatibility is achieved more easily 14:15:16 s3wong: yes, I stole 'listener' from aws api 14:15:24 and the fact that #3 is not backward-compatible 14:15:41 why? 14:15:42 youcef: it can be made bw compatible 14:15:46 how can #3 be backward compatible? 14:16:05 s3wong: when you create VIP, you also create first listener 14:16:10 how? 14:16:14 so 1 call will result in 2 objects created 14:16:48 ok 14:16:53 hmm... I see 14:17:17 in proposal #2 a user would have to create a pool, member, vip and load balancer correct? 14:17:40 loadbalancer is also created automatically (for the VIP) 14:17:53 because we want to preserve existing workflows 14:17:54 From the docs: "However this approach doesn't address multiple VIPs in one configuration. For this purpose another entity 'Listener' is introduced." It seems like 2 simplifies this 14:18:21 jorgem: yes, but that's mostly about resource names (from API perspective) 14:18:42 from implementation perspective it's easier to add another simple object like loadbalancer than to do renaming 14:18:49 enikanorov: Correct, but if 2 and 3 perform the same thing I'd be in favor of simplifying it 14:18:57 me too 14:19:21 enikanorov: So I agree with you that 2 is better. 14:20:06 To clarify the L7VipPoolAssoc is for L7 switching right? 14:20:16 jorgem: yes 14:20:24 thanks 14:20:37 jorgem: that's the way of specifying several pools that are chosen based on L7 traffic processing 14:21:05 markmcclain: hi 14:21:55 enikanorov: With proposal 2 then, do multiple vips point to the same pools? For example, I want to have both and IPv4 vip and an IPv6 vip point to the same pool 14:22:24 jorgem: that's a good question 14:22:44 I believe it can be made to do that but the UML needs to be updated 14:22:55 initially main use case for multiple vips in one instance was Ip address sharing 14:23:18 so I'm not sure about Vips having different addresses 14:23:56 and yes, if we want to support it - the diagram needs to be updated 14:24:20 enikanorov: Okay, just wondering because IPv6 compatibility would be nice 14:24:31 yes, I think we should support it, it's a common use case, especially with ipv4/ipv6 addresses. 14:24:46 well, from api/obj model perspective it is ipv6-compatible 14:25:00 jorgem: good to know. 14:25:02 I mean having both for the same pool 14:25:09 btw 14:25:21 we also decided to make pool pure logical object 14:25:30 e.g. it can be shared between balancers 14:25:49 which means that you can have ipv4 and ipv6 vips pointing to the same pool, but on different loadbalancers 14:26:28 I thought that loadbalancer is now the root object, which means it decides the provider chosen? 14:26:41 i discussed the ability of having several vips with different ip addresses and Sam was against that 14:26:45 with that though, having to have two load balancer instances to get two vips pointed to the same pool would be confusing to a user 14:26:54 youcef: yes, loadbalancer is the root object 14:27:26 if we use 2 loadbalancers, there is a change that the providers will be different. 14:27:37 right... 14:27:47 I mean for the 2 addresses of the same pool. 14:27:50 which i think is fine, it'd be a different flavor load balancing the same pool 14:28:33 i think there will be practical difficulty in implementing this 14:28:37 for ex. statistics 14:28:39 of the pool 14:28:44 vjay: you're right 14:28:50 we're also discussed that with Sam 14:29:00 but what if the flavors correspond to different drivers? how could this be implemented? 14:29:07 statistics should be seriously refactored 14:29:12 vjay: stats are measured from the vip perspective that's why right? 14:29:54 youcef: that's why loadbalancer object could drive the resource to the existing configuration 14:30:12 but there are now 2 loadbalancers :) 14:30:33 jorgem: today it is totally based on pool. inorder to understand the traffic sent to the pool members. 14:30:38 youcef: you mean ipv4 and ipv6? 14:30:46 yes 14:31:26 we need to consider allowing such vips under one balancer, but in that case it would not be different from multiple ipv4 addresses within a loadbalancer 14:31:54 and in that case I suppose it makes sense to allow that, and each driver will decide if it supports it 14:32:15 enikanorov: I agree 14:32:16 on the other hand it could also be confusing to the user if certain driver doesn't support that 14:32:33 because you don't know the driver, you only provide flavor 14:32:42 (we're talking about our bright future) 14:34:04 yes, if we add it, multiple vips per pool will need to be supported by all drivers. 14:34:36 that's I'd say could be limitation of flavor mechanism 14:34:44 or a requirement... 14:35:09 enikanorov: Is the goal for the meeting to decide on proposal or to discuss the merits of each one? (I just want to understand what the process is since I'm relatively new to this) 14:35:13 i mean that flavor should contain a requirement for the driver to support multiple vips per loadbalancer 14:35:39 jorgem: in general we all need to agree on a certain design. 14:36:05 It's also important to get the opinion of some core team mebmers who participate in code reviews 14:36:29 enikanorov: Perhaps we can come up with what requirements we all need in order to guide our decision? 14:36:38 enikanorov: Let me know if there is a place already for this. 14:36:48 markmcclain was generally interested in that discussion and he has objections to #2, but it seems he's busy right now to explain detail of his objections. 14:37:05 jorgem: it's mailing list mostly 14:38:46 so basically we're meeting here to discuss details and form a decision, but we also need some other folks who should agree 14:38:49 enikanorov: Gotcha, would you be opposed to have a requirements page? I think that might bring some clarity as to why we will have a certain object model. 14:39:11 sure I would not 14:39:49 enikanorov: For example, the IPv4/IPv6 requirement. 14:40:04 I think we'd be glad to see such page which will help us and any newcomers to understand the problems that we're trying to solve 14:41:09 by the way, I don't think we should limit the use case of multiple vips per pool to the ipv4/ipv6 use case, it could be internal/external vip or any other use case. 14:41:41 youcef: correct. I would consider that another requirement. 14:42:12 ok, no objections on this one 14:42:31 what's a "requirement page"? 14:42:52 iwamoto: i think it's some wiki page that jorgem is willing to create :) 14:43:10 iwamoto: My idea is that we capture what functionality everyone wants. 14:43:51 Then, as we look at the proposals we see which ones satisfy those requirements (conceptually speaking as of right now) 14:44:29 I'm just suggesting this because we all have different use cases and it will help communicate everyone's intentions of using Neutron LBaaS 14:44:52 listing required functionalities sounds great 14:45:00 enikanorov: Could I email you offline for suggestions on how to create such a page? 14:45:08 yes, i totally support this idea 14:45:16 jorgem: sounds good. An action item for you then :-) ? 14:45:28 yes 14:45:48 jorgem: well... it's wiki, if you have launchpad id, you can log in and create the page. sure you can email me, we acn also discuss the requirements 14:45:48 #action Jorge to start a requirements wiki page 14:47:24 ok, anything else to discuss? 14:47:37 enikanorov_: are there core reviewers for neutron lbaas? or is it neutron core reviewers that review the plugins as well? 14:48:11 anyone can review the code, we have obondarev who is neutron core and is lbaas key contributor 14:48:22 enikanorov: will proposal 2 need to be changed so the diagram to allow a n:m relationship between vip and pool? 14:49:09 youcef: it already has m:n actually. it may not be obvious, because 1:1 is from vip to default pool, but through l7 you can have vip-> many pools 14:49:56 enikanorov: I mean the opposte, many vips -> 1 pool 14:50:27 that's achievedby multiple vips within loadbalancer 14:50:38 each vip can have same default pool 14:50:47 of multiple pools via l7 rules 14:51:10 so it's not a direct relationship, but though loadbalancer/l7 rules instead 14:51:11 ok, it wasn't obvious to me :) may be then add some text to this effect. 14:53:08 if option 2 is introduced, can pool exist independently? pool will be always be in scope of a loadbalancer right? 14:53:36 vjay: currently the idea is to have pool as a logical object, e.g. it's not bound to the loadbalancer 14:53:43 so it can exist out of scope of loadbalancer 14:54:02 just like health monitor as it is now 14:55:46 obviously we won't be able to capture every requirement. However, we can prioritize them and work that way 14:55:46 How does everyone think we should scope the requirements? Overall functionality or specific to the object model discussion? 14:55:57 Does that mean you can have loadbalancers that have been created with different flavors (and therefore potentially using different drivers) use the same pool? 14:56:17 jorgem: i think it makes sense to prioritize them 14:56:44 main requirements lay around basic functionality of multiple vips, multiple pools and ip address reuse 14:57:05 youcef: yes 14:57:29 youcef: that redefines some aspects of existing workflows, that is understood 14:58:02 youcef: also i'm thinking about limiting this ability at first step 14:58:09 so, is the pool reimplemented on each driver? what would be the statistics/status of the pool in this case? 14:58:41 enikanorov: yes I agree, I think we shouldn't allow this, it can be confusing. 14:58:45 youcef: yes, that's the question that comes first. It gets complicated. 14:59:13 we have discussed these aspects with Sam, it is solvable, but requires quite a bit of work 14:59:35 youcef: are you familar with Sam's proposal? He tried to address that statistics concerns there 14:59:57 I also don't see a valid use case for wanting to do this (using different flavors for same pool). 14:59:57 i think limiting it at first is the right approach and if it ever becomes something that users want then we can do it 15:00:53 obondarev: I looked at it, but can't say I'm familiar with it :) 15:02:02 ok we need to wrap up 15:02:09 thanks everyone for attending 15:02:11 #endmeeting