14:01:52 #startmeeting neutron lbaas 14:01:53 Meeting started Thu Mar 6 14:01:52 2014 UTC and is due to finish in 60 minutes. The chair is enikanorov. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:01:54 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:01:56 The meeting name has been set to 'neutron_lbaas' 14:02:04 hi, who is online for lbaas meeting? 14:04:23 jorgem: hi 14:04:30 hi there 14:05:00 looks like we don't have a quorum for the meeting yet 14:05:11 jorgem: do you have any questions on lbaas? 14:05:26 Well, first I wanted to introduce myself 14:05:53 I am Jorge Miramontes, Team Lead of Software Development for LBaaS at Rackspace. 14:06:28 Some of the devs on my team have been in the IRC channel asking questions as we are looking to get involved with you guys! 14:06:29 hi 14:06:37 hello 14:07:14 jorgem: cool, good to see you here 14:07:15 enikanorov: What do you think is the best way to start participating with Neutron LBaaS? 14:07:41 An email may suffice 14:07:43 jorgem: get familiar with the current state of the code, participate in ML discussions and meetings 14:08:13 sounds good. I'll mostly be listening in on the meeting but just wanted to make you aware of our intenetions 14:08:18 intentions* 14:08:32 o/ 14:08:40 o/ 14:08:43 ok. so I was expecting some folks to discuss object model proposal 14:08:53 e.g. continue the discussion from the mailing list 14:09:27 have you folks read those proposals? do you have any questions or concerns about them? 14:09:29 hi enikanorov 14:09:35 hi vjay 14:09:39 hi blogan 14:09:46 hi enikanorv 14:09:58 and enikanorov 14:10:42 ok, so let me then once again introduce everyone to the problem that we have been discussing recently 14:11:16 right now we have such object model and public API that your loadbalancer can have one pool (group of nodes) and one VIP 14:11:34 we need to extend the model and the API to support 2 important use cases: 14:11:58 1) ability for 1 pool to have several endpoints with the same IP address 14:12:26 2) ability for one VIP to balancer traffic to different pools using L7 protocol rules 14:13:38 To clarify, endpoint = node address? If so, the distinction would be on the node port? 14:13:58 endpoint is synonym of VIP 14:14:16 thanks 14:14:26 i intentionally didn't use the word VIP because right now the VIP references neutron port, e.g. IP address 14:14:57 endpoint seems like a better name, since will extend the VIP model to include port and hostname information and have the address reused across multiple VIPs. 14:14:58 and just saying the we want multiple VIPs for one pool needs clarification that in fact we want to be able to share 1 port 14:15:08 and create VIPs with different tcp ports and protocols 14:15:32 thurloat: the proposed name for that is 'Listener' 14:15:54 thanks for making it clear on the usecase and terminologies. if you dont mind could you elaborate on the proposals. 14:15:58 basically we have 2 models (object models and corresponding API) to address usecases #1 and #2 14:16:11 Is the current proposal at https://wiki.openstack.org/wiki/LBaaS/CoreResourceModel/proposal ? That's what I'm looking at now for reference. 14:16:34 thurloat: no, it's existing model 14:16:41 let me give a link 14:17:06 #link https://wiki.openstack.org/wiki/Neutron/LBaaS/LoadbalancerInstance/Discussion 14:17:30 * thurloat looks now 14:17:52 one proposal is model in 3 or 4.1 (diagrams are similar, cluster and loadbalancer objects on 4.1 are not related to the discussion) 14:18:10 so picture 4.1 would be more accurate 14:18:28 another proposal is in the following document: 14:18:43 #link https://docs.google.com/a/mirantis.com/document/d/1D-1n8nCEFurYzvEBxIRfXfffnImcIPwWSctAG-NXonY/edit#heading=h.3rvy5drl5b5r 14:19:15 the object model is a kind of overloaded with auxiliary objects, but we're mostly interested in VIPs/Pools/members 14:19:27 others could be skipped from the discussion 14:19:58 hello 14:20:03 hi Sam 14:20:10 Is the object model for the API side as well as the internal domain or just for the internal domain of Neturon LBaaS? 14:20:25 this contains only 2 proposals - loadbalancer instance and vip centric (listener) to solve the problem. If I understand right Sam also made a proposal which does change the current model much 14:20:54 jorgem: it overlaps with public API 14:21:02 enikanorov: thanks 14:21:21 vjay: I think you mean to say does not change the current model much 14:21:22 vjay: Sam's proposal doesn't add Listener resource 14:21:50 vjay: existing model changed in the sense that pools and vips relation is changed to m:n instead of being 1:1 14:22:12 enikanorov: why has the LB instance model been disregarded? or has it? 14:22:45 sam: yes, *does not 14:22:49 swat30: community prefer to work in the scope of vips and pools mostly, as I understand it 14:23:12 basically, VIP-centric proposal is very similar to LB instance 14:23:13 enikanorov, is there a proposal for the api? 14:23:37 edhall: the API is implied, actually. 14:24:09 I'm used to working from user stories to api to object model and not the other way around... 14:24:16 so right now we have to chose between the VIP-centric proposal (Vips/listeners/pools), and Sam's proposal (Vips/pools) 14:24:19 i think a load balancer instance is more clear to a user though 14:24:31 I agree 14:24:49 and maintains backwards compat 14:24:56 which is nice 14:25:27 samuelbercovici: what do you think about working with lb instance? 14:25:52 samuelbercovici: btc, the code that introduces the instance is already on review and went through a number of iterations 14:25:59 and it will preserve VIP/pools resources 14:26:18 and everything you've planned (L7 stuff bound to Vips) 14:27:02 the chalenge was that lb instance adhers to some notion of implied backend 14:27:16 no neccessarily 14:27:18 *not 14:27:21 also, could the listener not be introduced into the lb instance solution, which would be attached to a VIP? 14:27:22 both Mark McClain and Salvatore oppused this 14:27:27 that's purely a logical concept 14:27:30 *opposed 14:27:41 no, I believe salv-orlando didn't opposed this 14:28:05 we don't expose any mapping or any notion of the backend 14:28:38 we can restart this all over again and see if Mark or anyone else is now more open to this 14:28:59 so from API perspective when you want to reuse port, instead of providing vip_id, you provide lb_id 14:29:11 not much of a difference 14:29:15 to me, tenant, specificaly specifying to which lb-instance a vip belongs is a constarint 14:29:39 tenant only needs it if he want to reuse the port 14:29:46 that's exactly the same as in your proposal 14:30:01 if he don't care about the port - no need to provide lb_id 14:30:47 enikanorov: so can two different IPs be associated to the same lb-insatnce. For example, can 1.1.1.1:80 and 2.2.2.2.80 be associated to the same lb-instance? 14:31:01 If it helps, I was heavily involved in the Atlas API spec with Youcef (Citrix). So, if you have questions for the notion of lb instance I'd be happy to help out. As of right now I need to get a better understanding of the proposals though 14:31:25 samuelbercovici: i think that could be a limitation of the driver. from API perspective - yes, they can 14:31:42 enikanorov, i am a little bit confused here.. which port is this? 14:31:52 port is neutron port, not tcp 14:32:08 why are we talking about neutron port? 14:32:15 is it created automatically? 14:32:25 because we need neutron port to plug vip into the network 14:32:40 enikanorov: so this leads to tenants using lb instances as scheduling 14:32:41 I think that the VIP should be similar to the notion of a floating IP, easier to understand from a tenant's perspective IMO 14:32:46 if we want same IP, but different tcp port, we need to work with the same neutron port 14:32:49 can come and go 14:33:03 samuelbercovici: what do you mean? 14:33:26 swat30: not sure I get the idea, please explain 14:33:57 If as a tenant I can say 1.1.1.1:80 and 2.2.2.2.80 are on the same lb-instance (note: those are two different VIPs and Services) yjam this means I expec them both on the same place 14:34:14 this is somthing a tenant should not be exposed to 14:34:28 what you, as a tenant think of as a 'same place'? 14:34:39 what does lb-instance mean? 14:35:03 In my mind an lb-instance is a virtual lb. 14:35:08 Like a virtual box 14:35:18 it means you unit of logical configuration. that, for instance, offers particular SLA, connected to particular router 14:35:40 enikanorov: I think that the VIP solution puts too much emphasis on the IP itself. As a tenant, I want to think of it as a LB that I can change IPs as easily as I can change pool members etc 14:36:16 jorgem: my thoughts exactly 14:36:17 swat30: you can change it 14:36:42 enikanorov: currently the IP can't be changed after VIP creation 14:36:42 jorgem: well, yes, we need more specific definition in neutron terms 14:37:02 samuelbercovici: that could be implemented 14:37:06 swat30: So from an object model perspective though should there be an 'lb-instance' object? 14:37:18 but you're right, looks like it's not there right now 14:37:35 jorgem: the notion of a virtual lb is an implementation specific 14:37:49 samuelbercovici: so I'm trying to understand, what kind of information we need to 'hide' from the tenant 14:37:55 jorgem: just like in the LB instance solution, yes 14:38:02 samuelbercovici: lb instance is for grouping resources 14:38:06 as a tenat why should I care if 1.1.1.1:80 and 2.2.2.2:80 reside on the same virtual instance? 14:38:08 samuelbercovici: you use vip_id for that 14:38:15 i'm going to use lb_id for that 14:38:27 samuelbercovici: you should not 14:38:39 and if you don't - don't group them 14:39:17 so why should i be able to say that 1.1.1.1:80 and 2.2.2.2:80 are associate to the same lb-instance if as jorgem implies this represent a virtual applaince? 14:40:08 samuelbercovici: maybe as a tenant I have multiple clients/apps that need LBs for different parts. Each client/app will belong to a lb-instance 14:40:10 as an example 14:40:12 why should not you be able? If you care. I don't see why we need to limit that 14:40:34 i understand why 1.1.1.1:80 and 1.1.1.1:443 will be in most common cases served on the same back-end 14:40:45 yes, in that case you will care 14:40:50 and you'll group 14:40:57 in other case - that doesn't matter 14:41:17 every driver may limit that on driver level, prohibiting to add vips on 2.2.2.2 14:41:34 but from API perspective - let user decide if he cares 14:41:42 enikanorov agreed. 14:42:21 so is it allowed to have the same ip 1.1.1.1:9999 as part of another lb instance? 14:42:24 enikanorov: I agree with that too. API should just abstract the backend. (i.e. simplify it for the API user) 14:42:25 enikanorov: so again, I think tghis is not what a tenant should control. 14:42:50 samuelbercovici: why not? 14:42:53 samuelbercovici: but in your proposal tenant controls it as well 14:42:54 instead of specifying the backend, what I would like to see is the ability to specify capacity (e.g. peak bandwidth) and have the appropriate backend choosen 14:43:13 in swat30's example, is a perfect one for why a user would want to control that 14:43:25 enikanorov: in my proposal they only allow specifying IP reuse not grouping of different IPs 14:43:31 samuelbercovici: don't you see providing vip_id of existing VIP for the new VIP does the same? 14:43:57 samuelbercovici: API of your proposal doesn't limit that 14:44:06 but that could be limited on driver level 14:44:26 enikanorov: yes it does, passing the vip_id_1 to a new vip means reusing th IP, a new IP will not be allowed 14:44:56 well, if you insist, i don't see why we can't do exectly the same limitation for the lb instance 14:45:28 could be done via policy maybe? 14:45:49 the use case of grouping different IPs is not important so i don't care much about that 14:45:59 enikanorov: in that case what is the difference between lb-instance-->vip and vip-->listener ? 14:46:14 besides naming convention? 14:46:29 exactly, there's none. except names of resources 14:46:47 with lb instance bw compatibility is even simpler than VIP+listener 14:48:13 enikanorov: I could see the grouping being important for certain use cases as well. I think that it logically makes sense for users that need it, and users that don't won't use it 14:48:37 enikanorov: can one IP be used in many lb instances? 14:48:43 swat30: that's my opinion too, I don't quite understand why we can't be flexible here 14:48:53 vjay: i don't think so 14:49:06 i mean, within 1 subnet - no 14:49:18 that seems to tie some physical aspect to it then 14:49:29 jorgem: how was in atlas? 14:49:37 vjay: atlas allowed shared ips 14:49:44 vjay: but different port 14:50:14 jorgem: different tcp port you mean? 14:50:21 correct 14:50:24 ok 14:50:25 ok. so the notion of VIP remained as Virtual IP (without any tcp port). 14:50:40 and whenever an endpoint is created 14:50:46 you specify the Virtual IP. 14:50:49 right now it is both. 14:51:05 ip+tcp port 14:51:32 yes so port was tied to the lb-instance object while vip was able to be shared amongst instances 14:52:04 lb 1: 1.2.3.4:80 vs lb 2 :1.2.3.4:443 for example 14:52:23 or whatever port the user chose 14:52:35 it's something we may want to explore, but from impl perspective, I don't see much sense in splitting those between to lbs 14:52:51 jorgem: I think that can be accomplished with multiple pools, no? 14:52:55 correct for http/ssl it makes sense to group them 14:53:15 i agree 14:53:36 I need to wrap my head on the new definition of terms because atlas had slightly different definitions for vip, pool. node, etc. 14:54:05 jorgem: are you referencing this at all? https://wiki.openstack.org/wiki/Neutron/LBaaS/LoadbalancerInstance/Discussion 14:54:24 yes, but I think I need a day to get up to speed on things 14:54:31 sorry for the ignorance! 14:54:38 :) 14:55:07 hopefully then I can bring in my atlas experience in a more fruitful manner 14:55:43 enikanorov: For right now though the two proposals are 3 and 4.1 correct? 14:56:12 jorgem we're talking the Loadbalancer instance solution vs. the VIP centric right now 14:56:27 well, looking at the discussion above, I think we may also consider #2 14:56:27 so 2 vs 3 then 14:56:47 2,3,and 4.1 lol 14:56:47 so it creates 3 options 14:57:05 3 and 4.1 are same (except for HA stuff that we're not discussing) 14:57:17 well 3 and 4.1 revolve around the same vip core 14:57:20 sounds good. I'll make sure to look at all 3 then 14:57:26 also 1.1 14:57:35 yep, 1.1 14:58:01 jorgem: please also review my proposal unde 1.1 14:58:06 will do 14:58:09 samuelbercovici: so if we att the same limitations to lb instance API as you are planning for 1.1 - that, I think, could address both your and mine concerns 14:59:08 enikanorov: can you please update your proposal on the wiki as it currently does not reflecet this? I would also 14:59:20 think on a differen anme than lb-instance 14:59:23 ok, I will 14:59:25 enikanorov: sorry about ignorance. one quick question, do you want some aspect of neutron port represented in the lbinstance.vip? will that solve the problem? 14:59:40 samuelbercovici: right now it is 'loadbalancer' 14:59:41 the problem of placing the VIP? 15:00:23 vjay: neutron port probably goes from VIP to instance 15:00:37 ok folks, thanks everyone for attending 15:00:40 #endmeeting