16:01:00 #startmeeting Network Working Group 16:01:00 Meeting started Wed Oct 11 16:01:00 2017 UTC. The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:01:00 Useful Commands: #action #agreed #halp #info #idea #link #topic. 16:01:00 The meeting name has been set to 'network_working_group' 16:01:03 * skg-net waves 16:01:25 * ganeshrn waves 16:01:28 #info Agenda https://github.com/ansible/community/labels/network 16:01:30 👋 16:03:23 * privateip is right on time 3 minutes late 16:05:04 #chair Qalthos st8less funzo trishnag andriusb skg-net kedarX privateip dt-arista Anil 16:05:04 Current chairs: Anil Qalthos andriusb dt-arista funzo gundalow kedarX privateip skg-net st8less trishnag 16:05:42 privateip: Which bit shall we start with, feel free to #topic 16:05:43 heya 16:05:48 #chair ricky_laptop jmcgill298 16:05:48 Current chairs: Anil Qalthos andriusb dt-arista funzo gundalow jmcgill298 kedarX privateip ricky_laptop skg-net st8less trishnag 16:07:05 hello 16:07:18 Is there a list we can go thru which proposals are finalized? 16:07:29 epicdean: Hi, welcome :) 16:08:15 #topic Aggregates 16:09:10 #link https://github.com/ansible/proposals/issues/71 16:09:20 So this is down to: 16:10:10 o/ 16:10:19 1) bcoca added `loop_*` keyword in 2.5. In Ansible *2.6* we can move to using that format for aggregates 16:10:56 (reminder, originally we were talking about using `with_` (as apt, yum, etc), though that's now deprecated and replaced with the above 16:11:30 @gundalow, is there a formal doc on the proposed solution? 16:11:34 2) Don't use the new loop_* and stick with what we've got (bike sheding name aside) 16:11:46 err solutions 16:12:13 #chair caphrim007 epicdean 16:12:13 Current chairs: Anil Qalthos andriusb caphrim007 dt-arista epicdean funzo gundalow jmcgill298 kedarX privateip ricky_laptop skg-net st8less trishnag 16:12:27 'loop' ... no _ 16:12:28 A proposal for the loop_ will be created shortly 16:12:35 bcoca: um? 16:12:46 the whole point of loop is removing the _ magic with lookups 16:13:40 gundalow: "loop" not "loop_*" 16:13:51 Qalthos: ah, thanks 16:13:51 all: there is a lot of thought that needs to go into this and its to late in the 2.5 cycle. i propose we put together a proposal for implementation of optimzied (or whatever we call it) loops and condsier for 2.6 implementation 16:14:07 in the mean time everything else around aggregates stands still until that work is done 16:14:09 Last week the consus was that the loop proposal and how it solves all our problems was not clear, and that we would have a fuller description of what that looks like this week 16:14:43 jmcgill298: as i started looking into it, its turns out to be a bit bigger than can be done in a week 16:14:57 hence my comments about how to move forward at this point above 16:15:13 so do we want to table the conversation here until that is available? 16:15:26 yes thats what im basically saying 16:15:38 once the proposal is done we can iterate on it 16:16:00 point being is this is now a 2.6 feature at the earliest 16:16:17 and in the meantime i dont want to bikeshed the aggregates name 16:16:32 it is what it is at the moment and we will need to work through it post proposal 16:17:05 #chair ktbyers itdependsnetwork 16:17:05 Current chairs: Anil Qalthos andriusb caphrim007 dt-arista epicdean funzo gundalow itdependsnetwork jmcgill298 kedarX ktbyers privateip ricky_laptop skg-net st8less trishnag 16:17:08 So 16:17:13 For the purpose of this meeting 16:17:41 * Give an update that we will get a proposal created for loop 16:17:58 * State that this will be a *2.6* Network feature 16:18:10 at the earliest ^^ 16:18:18 privateip++ 16:18:34 * Stop Aggregate name bikeshed 16:19:30 Can you clarify what that means? I assume that means you are going to keep moving forward with aggregates in the current form (apologize for arriving late)? 16:20:10 correct .... with that said, there are no new modules slated to be written for 2.5 per the core team's roadmap 16:20:30 so its status quo as we figure out the correct looping mechanism 16:20:54 Okay, as of now it will stay in current form, but not be expanded on? 16:20:59 correct 16:21:14 Okay, thanks. 16:21:18 np 16:21:44 this will also give everyone a change to digest and provide input to this critical feature 16:21:52 privately: we are waiting for the proposal agreement, we already have modules written for open switch 16:21:53 s/change/chance 16:22:13 with current format 16:23:14 One option is to remove the aggregate alone from current module and submit them for 2.5 16:23:31 thats probably the best course of action 16:23:54 okay 16:28:46 Everyone else happy with the above approach? 16:28:48 +1 16:29:19 +1 16:29:26 +1 16:29:29 +1 16:29:35 +1 16:29:36 +1 16:29:38 +1 16:29:44 #cahir 16:29:46 #chair 16:29:46 Current chairs: Anil Qalthos andriusb caphrim007 dt-arista epicdean funzo gundalow itdependsnetwork jmcgill298 kedarX ktbyers privateip ricky_laptop skg-net st8less trishnag 16:29:50 +1 16:29:50 ^ voting time 16:29:53 +1 16:29:57 +1 16:30:05 not much to vote on :) 16:30:12 but sure +1 16:30:14 +1 16:30:36 itdependsnetwork: Sure, though want to make sure people are in sync with where we are upto 16:31:05 #agreed If we go down the loop route that will be done in 2.6 (earliest) 16:31:17 #agreed Proposal will be created for this 16:31:31 #agreed bikesheading of aggregate will be put on hold 16:31:34 cool 16:31:37 privateip: DI next? 16:31:44 sure 16:31:48 Is there a list we can go thru which proposals are finalized? 16:31:53 #topic Declaritive Intent 16:33:33 +1 16:34:07 privateip: Am I correct in saying we have decided against adding a keyword for this so the way forward is 16:34:44 a) Keep it as it is (maybe move under (bikeshed)asserts: sub option in the module 16:34:50 b) move to roles 16:35:11 bah 16:35:21 ignore b 16:35:28 yes we are proposing to move forward with bcoca: suggestion 16:35:50 no new DI modules, built roles instead with assert statements 16:36:16 this should 1) address the use case and 2) remove the confusion 16:36:22 around state vs config arguments 16:36:37 and (i hope) give us better info before starting imlementing the keyword 16:36:59 so modules will provide stateful configuration (in the role) and assert statementss will be used in the role to validate state 16:37:30 As the user I need to adhere to ansible data model? 16:37:33 we will solidify the current modules and take appropriate action through the project deprecation policies 16:37:38 no 16:38:01 Meaning asserts in the role, presume data is places as role creator intended? 16:38:14 yes but anyone can write a role 16:38:21 as opposed to filling out dict in a meaningful (to me) task 16:38:23 so lets be more specific on your question 16:38:30 to use the role do you need to adhere to the data model 16:38:33 in that case yes 16:38:55 however you can still use playbooks to translate from one data model to another prior to implementing the role 16:39:13 or expand on the role to include other asserts, config functions, etc 16:39:27 does that make sense? 16:39:28 There is no method to manage roles between versions, the distro for them is less known, not specified in the module doc 16:39:45 @privateip: it does make sense 16:40:03 So that pretty much means the end of DI as a separate feature--correct? 16:40:11 Just trying to make sure I understand this. 16:40:11 In my use cases I would be hard pressed to make use of it 16:40:19 agreed with your points on versoin, distro, docs, etc ... those are anciallary issues to be tackled 16:40:31 ktbyers: effectively yes 16:40:39 at least as modules 16:40:42 the concept is the same 16:40:52 just transferred to roles instead 16:41:29 Those ancillary issues to me make it pointless to invest time in using the roles (just one man's opinion of course) 16:41:38 ok thats fine 16:41:45 i understand why 16:41:46 in the future will DI check state against the routing table 16:42:09 epicdean: as we put together the list of roles we can have those discusssions 16:42:22 With the proposed solution, if you add it to the role, then sure 16:42:23 ah ok 16:42:26 there is definitely no reason it couldn't do that 16:42:35 Can we setup a betting line on this? 16:43:02 let me call vegas 16:43:56 What is the general interest in including state checks? Is there any polling done from users? 16:44:22 i would like to see that 16:44:47 role tasks also happen after or before the actual change with no rollback ability, correct? 16:45:02 depends how you write the role 16:45:15 based on routing table, ospf neighbours etc 16:51:18 Any other topics for today? 16:51:53 I would like to add one if ok 16:52:25 sure 16:52:38 itdependsnetwork: #topic it please 16:52:43 My vote on DI is if it is in roles, that is fine, does not effect me. If in the module, would like to know the actual verict is 16:52:54 PR 28446 16:54:08 +1 16:54:52 As @privateip: indicated before "you can still use playbooks to translate from one data model to another prior " 16:55:16 * privateip still reading 16:55:19 variable translations our a common occurrence, this would help in some of those cases 16:56:32 s/our/are/g 16:56:33 #topic Type manipulation #28446 16:56:39 #link https://github.com/ansible/ansible/pull/28446 16:56:45 I think that PR is useful (names should change, but that type of data transformation is pretty common pattern). 16:57:12 names I'm with it, just need a better name 16:57:28 This is common with napalm-ansible data structures where we frequently return a list of dicts and really you only want some part of the returned data structure. 16:57:41 I know I owe some more examples 16:58:11 itdependsnetwork: :) 16:58:27 Helps explain the issue to non-networking people 16:59:22 ok i am going to need to digest this some more .... i see both sides here 16:59:26 pros and cons 16:59:52 without holding everyone up, i will comment in the issue on github and we can continue the discussion 17:00:10 but its not just up to me as well 17:00:11 yes, did not expect to get settled here, just wanted to raise it 17:00:19 understood 17:00:20 Sounds good. 17:00:23 thanks for bring it up 17:00:23 I would say, I see this as generic 17:01:02 as you said changing between data models from one api to yours, or whatever seems like it should be common and well understood 17:01:35 ironically in a way you are exposing the same problem i see with optimizing loops 17:01:43 not identical but similiar 17:01:47 lol 17:01:56 hence why i really need to think through this some 17:02:03 It can be done with a lot of Jinja hacking, but it's cumbersome and often nontrivial. 17:02:28 the good news is 17:02:38 by transitioning to roles, you can distribute your filter plugins with a role 17:02:41 :) 17:03:21 * gundalow has to go now 17:03:28 Is that good news? 17:03:35 :-) 17:03:42 ha you disagree? 17:04:12 Distributing via roles probably means I won't use it. 17:04:21 ^^ agreed 17:04:32 I haven't found that pattern useful. Usually I rip out the role and start again. 17:04:50 also seems odd that entry into getting a new module seems easier than filter 17:05:20 40 filters, and 2K modules (numbers were made up in the interest in time) 17:05:24 ktbyers: would love to hear more about why that is but i need to drop for now 17:05:41 Sounds good...me too. 17:05:42 will try to catch up with you later 17:05:50 any final business? 17:06:30 fin 17:06:36 lol 17:06:45 thanks all ... see you next time 17:06:49 #endmeeting