16:03:34 #startmeeting Networking Working Group 16:03:34 Meeting started Wed May 18 16:03:34 2016 UTC. The chair is privateip. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:03:34 Useful Commands: #action #agreed #halp #info #idea #link #topic. 16:03:34 The meeting name has been set to 'networking_working_group' 16:03:57 ok lets get started 16:04:05 i have the following topics for today's meeting 16:04:12 2.2 Roadmap 16:04:24 Network facts 16:04:40 SDN modules 16:04:51 any other topics for today? 16:05:03 * kei is good, as all the PRs are merged! :) 16:05:15 https://meetbot.fedoraproject.org/ansible-meeting/2016-05-04/networking_working_group.2016-05-04-16.03.html has the actions from the previous meeting 16:05:24 https://meetbot.fedoraproject.org/ansible-meeting/2016-05-04/networking_working_group.2016-05-04-16.03.log.html is the full chat log 16:05:25 there are other modules me and my team plan on contributing - most are for nxos devices - not sure if you want to track them ? 16:05:54 jedelman8: hi ... and yes hit that in 2.2 roadmap 16:06:02 hi 16:06:08 https://github.com/ansible/community/issues/99 mentionsansible/ansible#15911 16:06:08 probably a question that has an answer somewhere, but when does 2.1 get released as GA ? 16:06:16 Not sure if this got addressed, but it looked like an F5 GTM module got merged into the wrong directory. Let me double check to see if someone backed that out. 16:06:40 #topic 2.1 release 16:06:52 we are releasing 2.1 RC3 today !! 16:07:02 yay! 16:07:19 sweet...how many candidates are there again? :) 16:07:19 plan is to have a short RC cycle and get final out the door next week 16:07:28 cool 16:07:30 this will (hopefully) be the last RC 16:07:46 obviously everything is null and void if major bugs show up 16:07:58 * kei :) 16:08:08 if all goes well we expect a mid next week release 16:08:23 so (as i always ask) please hammer RC3 as much as your time allows 16:08:49 #topic 2.2 Roadmap 16:08:57 switching gears to 2.2 16:09:15 we want to start to lock in the 2.2 roadmap WRT to networking 16:09:34 the following items are what I know about so far 16:09:41 F5 move from extras to core 16:09:46 Existing roadmap https://github.com/ansible/ansible/blob/devel/ROADMAP.md 16:09:50 how long is each minor releases roadmap? 16:09:58 * kei yay F5 to the core! 16:10:10 four months 16:10:14 3-4 months 16:10:15 privateip: can you add me to the chairs please and then I can add stuffinto the minutes 16:10:19 so the working goal is mid sept 16:10:56 support for quagga 16:11:23 * kei yay quagga in 2.2! 16:11:40 this will be just the basics (zebra, conf files, etc) 16:12:02 move ovs from extras to core and add additional functionality 16:12:19 nice! 16:12:37 do we have someone from ovs here to take care of that? 16:12:50 gobgp support (stretch goal) 16:12:57 or we do it. :) 16:13:09 adding support for config diff and replace to EOS, IOS, IOSXR and JUNOS 16:13:17 kei: as of now we do it 16:13:23 but im looking for a maintainer 16:13:30 privateip: sounds good! :) 16:13:32 #chair gundalow 16:13:37 #chairs 16:13:39 #chair 16:13:43 :( 16:13:56 very cool regarding config diff & replace 16:14:23 we are also refactoring some of the common functions to harden them 16:14:31 taking advantage of ziploader 16:14:59 adding common network facts (will address in more detail in next topic) 16:15:12 jedleman8: anything you want to add (commit) to for 2.2? 16:15:41 for those of you who don't know...jedelman8 is the maintainer for the nxos modules currently in core 16:15:52 not just me..me and my team :) 16:15:59 i stand corrected 16:16:00 we are actively working a few more for nxos 16:16:02 you and your team :) 16:16:15 managing virtual port channels, ospf, bgp, vxlan, and evpn 16:16:22 our GOAL is by Sept 16:16:53 cool ... will get those added to the roadmap 16:16:57 there may be a few more smaller ones thrown in there too such as managing snmp and ntp 16:17:29 do we want to talk about getter modules, i.e. nxos_get_interface_counters, or it could be *_get_this or *_get_that :) 16:17:49 yes lets do that in the next topic around facts 16:17:53 k 16:18:05 kei: ops needs for 2.2? 16:18:23 privateip: i think we'll spend more on the roles 16:18:38 not the cores ansible 16:18:44 as far as i feel 16:19:09 ok sounds good ... as an aside check out the new docker modules, i think you will like them :) 16:19:26 mite: caphrim007: f5 roadmap items for 2.2? 16:19:30 besides migration to core 16:19:31 privateip: I will! :) 16:19:55 I think we'd like to get support for F5's REST API into the existing modules 16:20:12 yeah, our f5-sdk is quickly adding functionality 16:20:13 While not breaking it for those who are on older version of BIGIP software which don't do REST yet 16:20:35 * privateip likes that idea a lot 16:20:56 good to add REST API support for F5 to the roadmap then? 16:21:26 Yeah, I think the most challenging module to retrofit is actually the facts module. So I'd say the efforts may go beyond 2.2 16:21:38 But let's see what comes out of this facts discussion on the agenda 16:21:48 fair enough 16:21:58 ok any 2.2 stuff i missed? 16:22:13 i believe the plan is to publish the first draft next week of the 2.2 roadmap 16:22:31 privateip: cool, than answers my question :) 16:22:36 (when/where) 16:22:47 lol .. i knew at least one person had that question 16:22:57 * kei :) 16:23:08 it will be published at ansible/ansible on github 16:23:16 #topic Network facts 16:23:27 ok so this seems to be a hot one right now 16:23:48 * kei is a big fan of facts now! :) 16:23:58 i played around with some ideas last week while on vacation (amazing how clear my head gets when at the beach :) 16:24:12 +1 16:24:13 privateip: good for u! :) 16:24:32 i propose we develop a base set of facts for network devices to be implemented for each OS that mimics ansible_facts 16:24:51 nice! 16:25:02 i came up with three subsets: hardware, config, interfaces 16:25:09 well four: default 16:25:22 all prepended with ansible_net_ 16:25:38 all includes model, version, hostname, image, serialnum 16:25:49 as ansible_net_hardware? 16:25:54 hardware includes filesystems, memfree_mb, memtotal_mb 16:26:01 config: config 16:26:12 are these modules or something more integrated into ansible? 16:26:20 interfaces: all_ipv4_addresses, all_ipv4_addresses, interfaces, neighbors 16:26:27 just modules 16:26:47 kei: so facts would return ansible_net_hostname for instance 16:26:48 more higher layers, say bgp, will come into the picture? 16:27:01 yeah these are the base device facts 16:27:15 then i propose we develop more specific fact modules around network "applications" 16:27:19 ansible_net_bgp 16:27:23 ansible_net_ospf 16:27:25 etc 16:27:33 even for those 16:27:37 there is bgp configuration state 16:27:42 and operational state 16:27:45 yep 16:27:47 what is your thought there? 16:28:09 to do what makes sense :) 16:28:14 * kei :) 16:28:18 i think we need asnible_fact_plugin hostvar 16:28:26 i think we should break them up into subsets similar to base device facts 16:28:40 so gather_facts/setup invokes 'that' when gathering facts for certain hosts 16:28:59 yeah that would be ideal 16:29:42 * bcoca makes note 16:29:49 right now the bigip_facts can potentially collect an metric ton of data... the user specifies which portions of the taxonomy to retrieve. otherwise things could potentially take a long time. 16:30:03 it also already populates into ansible_facts 16:30:37 if a module set ansible_facts, is it compatible with the fact cache? 16:30:40 i just added my notes to the issue here: https://github.com/ansible/community/issues/99 16:30:54 i think it will help to visualize the fact tree better 16:31:35 my biggest worry is that facts doesn't become a statistics gathering mechanism ... there are far better tools around to do that 16:31:35 mhite: yes 16:31:51 bcoca: cool 16:32:19 does this mean, you'd prefer to work on config state first ? 16:32:19 facts should really be restricted to 'stuff i can make actions against or condition why i take action' 16:32:21 jedelman8: i know you have some thoughts here :) 16:32:28 I'd like to use ansible for pre and post change validation 16:32:29 privateip: regarding statistics -- definitely want to clearly articulate that for sure. because statistics are facts, just more ephemeral 16:32:34 which means we need stats 16:32:36 if facts are run with subsets, what would be wrong with using them for stats? 16:32:43 but they are NOT facts really 16:33:05 ephermeral facts seems off/odd whatever word you like better :) 16:33:11 granularity becomes a serious PITA 16:33:22 if you want stats, its easy enough to register them and save localy , i would not bunch them up with facts 16:33:37 right what he said ^^ 16:33:55 I'd agree with that @bcoca 16:34:19 fair enough. i still see this as argument of opinions though 16:34:41 that is a fact 16:34:48 is something like free space a fact, or a statistic? 16:34:48 :) 16:34:57 fact imho 16:34:58 or memory utilization? 16:35:03 they are ephemeral though 16:35:18 anyways, i won't rathole. just need to provide very clear guidance and examples of what is a fact and what is not 16:35:19 so what i hope to avoid are things like counters 16:35:23 in the world of big data, the thought is that anything can be a statistic 16:35:45 keep it all, analyze it later 16:36:00 ok lets start with the proposed network facts in the issue i ref above 16:36:06 and then we can go from there 16:36:12 from a statistics standpoint, cpu utilization, memory, and interface statistics are all changing yet one might be considered a fact while another not. 16:36:15 in an ideal world, I'd like to just run modules like *_get_bgp_neighbors and have it be returned as a key in ansible_facts 16:36:33 if register must be used, I will be able to move on and use it 16:36:42 or bgp_facts and gather_subset=neighbors 16:36:43 jedelman8: not a fan of that approach. module bloat 16:36:50 so is that just a request to create more subsets? 16:37:04 i'd more a fan of pruning instructions sent to the module itself 16:37:13 or inclusion 16:37:14 or whatever 16:37:27 wasn't that the intent anyway to have modules for each config/ object being collected? 16:38:30 #action privateip to capture all these notes and start discussion on ansible ML 16:38:48 lets start to document this so we all have a common reference point to draw from 16:38:54 not sure; from the standpoint of manipulating specific types of configuration are you asking? 16:38:55 i will take that action to get that started 16:39:19 privateip: sounds good! 16:39:27 #topic SDN modules 16:39:32 there is a balance between the 'one module that gathers all facts' and the module that gathers facts for odd numbered appliances 3rd network port on wednsdays 16:39:33 hello 16:39:33 like if there is a *_bgp module, there should also be a *_get_bgp? is that what you mean? 16:39:44 SDN modules - yes - ready to go 16:39:56 hi christx2 16:40:14 care to share your thoughts here? 16:40:20 okay 16:40:39 so as the github issue describes we have developed jointly with a customer a set of Ansible modules 16:41:33 https://github.com/ansible/community/issues/99#issuecomment-220039575 16:41:38 they are structured around coding to an SDN overlay using a Vendor SDK (python in this case). We would therefore ask that a.) a repo for SDN be created under the networking section and b.) additional SDN vendors have the space to participate 16:41:39 christx2: just in case 16:41:45 thanks kei 16:42:27 christx2: do you have a code already to share somewhere? 16:42:29 this would be a subdirectory in networking, having monitored the working group and the networking efforts this would not clash with any vendor work on the underlays that ansible work is being done, so this would be a new thing 16:42:42 kei: the code is undergoing a licensing review 16:42:46 here is how it works however 16:43:11 1. a set of core python modules (ansible 2.x compatible and tested) using the vendor sdk (apache 2.0) 16:43:26 1. is complete , the modules need the MIT license 16:43:45 the sdk is imported in regular fashion into python and not modified, no licensing issues 16:44:06 which modules are being discussed? for which SDN platform? 16:44:10 tasks and roles are mapped accordingly, as the description in my issue says - we create an entire network overlay topology 16:44:20 and do we really need to use the term SDN? :) 16:44:30 the Vendor here is Nuage Networks and the SDK calls Restful API to the Nuage Controller 16:44:35 * kei :) 16:44:38 roger that. awesome. 16:44:53 SDN is pretty awesome and its actually "real" 16:45:14 we have several customers in production now, so we would like to propose under networking the repo of "SDN" 16:45:17 or "sdn" 16:45:18 but note I really do like the nuage solution 16:45:24 privateip: so mdavis will write up proposal with ansible_facts_plugin vs 16:45:28 bar 16:45:30 var 16:45:34 ... needs food 16:45:39 bcocoa: thx 16:45:52 bcoca: damn my fingers get ahead of my brain 16:46:05 or i just really like to type o's 16:46:15 cristx2: is the code viewable somewhere? 16:46:16 thanks for the compliments 16:46:19 ^ not worse mispelling of my name 16:46:36 well, if we can have the repo, and the MIT license is clear, we wil post it 16:46:49 has to be GPLv3 16:46:50 i can also check in a README.md describing all of it for a starter 16:46:59 okay, got it, GPLv3 16:47:04 noted. 16:47:32 the modules are written quite elegantly, there is a superclass and subsuperclasses 16:47:32 are all the modules focused on one overlay platform? 16:47:45 yep 16:47:50 however... 16:48:00 there is a map that can be ported to anyone else 16:48:12 can that be extracted into a separate library? 16:48:17 yep 16:48:31 to create a clean separation between agnostic and specific code 16:48:41 so the idea is to widen the SDN eco system, from my perspective we would like to see others use the same methods 16:48:46 my gut says to start with extras 16:49:00 Back in a bit 16:49:05 until we get an uptake from the community 16:49:09 ^ yes, start with extras, we can always 'promote' 16:49:32 well, SDN is emerging, and we would like to be the first one, so if we have the SDN repo under 'networking' 16:49:33 so i would recommend starting with sending PRs to extras and we can go through the process from there 16:49:34 then we can promote it 16:49:41 sure 16:50:11 lets get the PRs submitted and that will get the ball rolling 16:50:16 there is currently no SDN vendor or modules from what i can tell, so we would be the first ones to innovate in this area - if you guys are comfortable with this - let me know 16:50:25 we have to start 'somewhere' 16:50:41 yep 16:50:44 additionally our SDK is currently open sourced, so that would enable people to swap us out fairl comfortably 16:51:09 'somewhere' is the PR process 16:51:11 christx2: nice! 16:51:14 the SDK for viewing pleasure is here : https://github.com/nuagenetworks/ 16:51:18 its VSPK 16:51:27 im excited about this 16:51:49 please be sure to review this: http://docs.ansible.com/ansible/developing_modules.html#getting-your-module-into-ansible 16:52:03 so structure is overlay_module.py —> vspk —> bambou (rest transport) —> Rest 16:52:03 good rule of thumb checklist prior to submitting the PRs 16:52:34 * kei browsing the code on github! :) 16:52:48 we would need your networking communities support to begin the inclusion of SDN into core, its a journey - agreed 16:52:54 someone has to do it though 16:52:56 I've done ACI modules that I'll eventually migrate...needs to be tested with newer version of ACI though. That said, I'd prefer to see a directory called "aci" in the networking modules vs. an "sdn" directory that has "aci" or "vsp" 16:53:31 again, just an opinion :) 16:53:41 my only caveat here is that sdn is separate from fabric management 16:53:53 we don't do that in our modules, i do know that cisco aci does that as well ;) 16:54:06 christx2: overlay_module.py under which repo? 16:54:08 its tied to the nexus 9000 gear, we are fully decoupled from hardware 16:54:16 i'm still here... https://github.com/nuagenetworks/vspk-examples 16:54:19 my answer would be the same if it were nsx or plumgrid 16:54:36 kei: proposal is for sdn under networking on your repo 16:54:49 kei: the examples show the workflows that are ported now into ansible 16:55:04 i think sdn is to generic ... we need to tie the modules to their functionality 16:55:16 kei: the generic create network python code has a good example 16:55:17 we can still promote a common set of "sdn" functions 16:55:22 privateip: okay, how about overlays 16:55:44 privateip: anything decoupled from hardware and pure software overlay is what we are proposing, naming convention is up to you guys 16:56:09 are your modules opened publicly yet? 16:56:11 is there a "hypervisor" directory in ansible today? 16:56:20 no 16:56:30 well .. we call it 'cloud' 16:56:34 its tied to platform 16:56:36 privateip: no i've not published the modules yet, hence i'm here to get that going :) 16:56:56 well cloud/vmware cloud/openstack, etc 16:57:03 privateip: all the underlying overlay / vspk bits are fully published and available, just not what we all worked on 16:57:10 docker/lxc 16:57:26 right ... what im trying to avoid is network/sdn 16:57:38 privateip: are you guys comfortable with the idea of including pure software overlays (sdn) ? 16:57:40 if the community was fine w/ that, think we'll be fine with whatever we come up with here... 16:57:44 might make sense to distinguish between 'virtualization as a service' and "local" virtualization 16:57:47 christx2: yes 16:57:48 privateip: i'm open to proposals 16:57:49 netvirt or overlays 16:58:00 network_virtualization 16:58:15 privateip: we would welcome community suggestions - team players here ! :) 16:58:28 separate into cloud/ and virtual/ 16:58:29 ? 16:58:41 sorry if I missed this, but does the modules in question communicate to physical hardware, i.e. VTEPs GWs ? 16:58:54 privateip: my only thing is that it's pure software based, i.e. no hardware dependence, that is not something we believe is qualified as SDN 16:59:17 sure im with you there 16:59:28 im just advocating we dont call it sdn 16:59:34 that term is overused enough as it is 16:59:43 privateip: thanks , otherwise we blur the lines with existing hardware device modules , and it would be confusing 16:59:52 yep 16:59:56 i like netvirt 17:00:11 privateip: okay, cool.. i'm easy guys, whatever stands out and has lasting meaning 17:00:22 but lets be real, SDN is the sexy thing at the moment 17:00:24 i like network_virtualization but im to lazy to type that all the time :) 17:00:28 ;) 17:00:35 netvirt 17:00:49 ok send us the PRs under that name to start 17:00:53 and we go from there 17:00:58 if you make netvirt, i will make repo and being the Readme markdown in it 17:01:08 just make the folder in your PR 17:01:19 * kei +1 for netvirt, as i'm also lazy too. :) 17:01:22 benefits of going first :) 17:01:26 okay, can you private email me the info, will ping you on irc directly 17:01:33 sounds good 17:01:45 this would be under the core modules - correct? 17:01:46 top of the hour ... any final comments? 17:01:51 extras for now 17:02:10 okay, fine, we would welcome the move to core - will talk separate about this 17:02:24 no comments from me, thanks for letting me participate 17:02:28 as always thanks all for joining .... see you next week 17:02:32 #endmeeting