15:00:06 #startmeeting puppet-openstack 15:00:07 Meeting started Tue Sep 22 15:00:06 2015 UTC and is due to finish in 60 minutes. The chair is EmilienM. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:00:08 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:00:10 The meeting name has been set to 'puppet_openstack' 15:00:12 hey! 15:00:19 o/ 15:00:22 hi 15:00:24 #link agenda https://etherpad.openstack.org/p/puppet-openstack-weekly-meeting-20150922 15:00:27 o/ 15:00:30 <_ody_> o/ 15:00:31 hello here 15:00:36 hey o/ 15:00:41 hey 15:00:43 o/ 15:01:17 hi 15:01:23 \o 15:01:40 hello 15:01:51 #topic Release schedule 15:02:03 there is no schedule yet, so we are kind of free 15:02:30 I would propose to wait for stable packages on both ubuntu/uca & centos/rdo 15:02:39 +1 15:02:43 and then think about stable/liberty 15:02:56 +1 15:03:01 I think it would let us ~one month or so 15:03:22 <_ody_> +1 15:03:39 please make sure stable/kilo & stable/juno have useful backports 15:04:49 #link releases https://wiki.openstack.org/wiki/Puppet/releases 15:05:20 #topic Summit 15:05:29 #link summit etherpad https://etherpad.openstack.org/p/HND-puppet 15:05:47 I hope our group will submit more topics 15:05:54 for now, only spredzy and I did 15:06:31 don't be shy :) and bring your ideas 15:07:21 we need topics to define what's next, I hope people will contribute to the etherpad during the following days 15:08:08 #topic service_default() and is_service_default() usage 15:08:21 mwhahaha: hello 15:08:24 hey 15:09:02 * EmilienM looking for links 15:09:02 so last week we talked about the best way to check for the '' strings and I proposed a function to check for it 15:09:05 #link https://review.openstack.org/#/c/223672/ 15:09:29 I liked Hunner & _ody_ feedbacks 15:09:33 when doing this, I also thought about the other side where we could use a function in place of '' 15:09:35 #link https://review.openstack.org/#/c/224187/ 15:09:57 _ody_: can you summarize it again please? 15:10:30 <_ody_> I was a solid +0 on it until EmilienM sparked me to look at it again yesterday, then I transitioned into a -1. 15:10:58 for which? for both? 15:11:07 <_ody_> Yeah. 15:11:08 <_ody_> It might be a little easier on the eyes but not nearly as obvious to people reading the manifest for the first or even second time and I don't think it actually solves a problem. Plus it has to run code to return a string, which is going to have overhead over parsing a simple string. To obtain the same goal of abstracting the value away from the implementation, the params pattern has been use 15:11:15 <_ody_> d for that until now. 15:11:16 _ody_: I don't see your review on Gerrit :( 15:11:34 <_ody_> EmilienM: I didn't submit it because it was long winded...I actually just pated it into IRC. 15:11:53 <_ody_> We could set a "default" string across all our modules by having a "openstacklib::params::servicedefault" variable and inherit "openstacklib::params" is every params class, e.g. "nova::params inherits openstacklib::params". 15:12:10 <_ody_> I am just generally not a fan of having ruby do work the puppet language can "generally" do. 15:12:18 premature optimization is root of all evil 15:12:38 fair enough, i think i had mentioned switching to the params as an alternative 15:12:42 in irc 15:13:18 I would like to see an example of _ody_'s proposal with openstacklib::params::servicedefault 15:13:32 <_ody_> Sure. 15:13:45 so i think the is_service_default is still valid 15:13:49 we all agree we want this feature 15:13:55 we just don't know yet how to make it 15:13:56 but service_default is not the best way 15:14:34 <_ody_> mwhahaha: I am no sure. That unsubmitted review I just pasted was the review I had prepared for service_default. 15:14:45 mwhahaha: for now, yes, becayse you rely on SERVICE_DEFAULT pattern 15:14:52 <_ody_> I was kinda treating them the same but I'll leave that for after I try out a few other options. 15:15:09 for me is_service_default is like a stdlib function such as validate_string() 15:15:16 that is not a weird pattern 15:15:23 mwhahaha: does it work for you, if we wait for _ody_'s proposal and see how it behaves? 15:15:37 <_ody_> mwhahaha: Ok. I'll read through that one again. 15:15:38 the using service_default() as a param is odd, so i can see that not being so great 15:15:44 I think we should get the original plan, which just uses the string, in place and working and then we can optimize/clean up later 15:16:56 crinkle: yeah, we could convert puppet-cinder (the module where we initiated the work) and see how it works. Later optimize/stabilize and then convert all modules once we have final design 15:17:39 mwhahaha: yes, your function seems still valid if we go that way 15:17:45 <_ody_> I find running ruby to return a static to be my issue. We've ween expirementing with puppetdbquery functions as parameter defaults lately. 15:18:02 I'm ok abandoning the service_default() function 15:18:14 i would like to keep is_service_default() 15:18:20 mwhahaha: don't abandon it, it's too early I think 15:18:27 yes, we might need to keep it 15:18:34 the is_service_default 15:18:41 k 15:18:42 <_ody_> yeah. Please no abandoning things yet. 15:19:25 #action _ody_ to propose another default pattern solution (in puppet-openstacklib) 15:20:02 _ody_: once you have something please use the ML thread, so we can move forward 15:20:57 mwhahaha, spredzy: maybe we can start converting puppet-cinder to use is_service_default and see how it behaves 15:21:08 do you like the plan? or? 15:21:41 we've got that one review that has been converted but fails CI because we haven't merged is_service_default yet 15:22:45 unfortunatly, our CI does not handle Zuul cloner for unit tests 15:22:52 <_ody_> EmilienM: Yep will do after breakfast. 15:22:55 but anyoen is free to make it happen 15:23:18 https://review.openstack.org/#/c/219275/ 15:23:24 crinkle wrote the tool in puppet-openstack-integration for beaker jobs 15:23:27 we could re-use it 15:23:57 this is a separated topic, but if anyone is interested to work on it, raise your hand 15:24:21 mwhahaha: I think we can merge your function is openstacklib in the meantime 15:24:35 mwhahaha: you don't break anything, and if we decide to go back, we can revert your patch 15:24:41 k 15:24:43 <_ody_> Yep. 15:24:50 +2 +A 15:25:14 mwhahaha: so in a few, you'll be able to do the recheck on the cinder patch and see unit test behavior 15:25:19 k 15:25:25 mwhahaha: thanks 15:25:44 spredzy is afk but I'll check with him if you guys are willing to use puppet-cinder to test the feature 15:26:13 anything else about this topic? 15:26:54 doesn't look like it 15:26:57 mwhahaha: maybe you can WIP https://review.openstack.org/#/c/224187 to avoid accidental merge 15:27:02 sure 15:27:15 #topic Rewrite puppet-nova providers based on Openstacklib and Openstack client 15:27:22 degorenko, sbog: o/ 15:27:27 EmilienM, hey o/ 15:27:34 hi 15:27:36 my suggestion is to rewrite nova resource/providers authorization based on Openstacklib and openstack client 15:27:42 like it done for keystone 15:27:48 also adapt current providers and add some new providers (flavors, secgroups, e.g) 15:27:52 what do you think? 15:28:07 well, this is where we try to go in keystone, glance & neutron so yeah nova makes sense 15:28:18 great 15:28:24 i've found next blueprint: #link https://blueprints.launchpad.net/puppet-openstacklib/+spec/use-openstackclient-in-module-resources 15:28:27 until now, nobody had time to make it so we're happy if anyone can make it 15:28:34 can i use it? 15:28:35 just need to make sure openstackclient has support for what we're doing in those providers 15:28:43 of course 15:28:45 <_ody_> If someone is ready to put in the effort, it only seems natural. 15:28:46 yeah, we need feature parity at least 15:28:46 I think it would be nice. I have done such work for old openstack client, but it unusable now. 15:29:05 awesome! 15:29:15 Btw, all modules depend on openstacklib, so, we can use one common way for authorization 15:29:21 degorenko: look at puppet-glance, the implementation is pretty stable now 15:29:38 yep, i will look 15:29:45 the Glance_image resource is a good example 15:30:09 probably we need use this for all modules? 15:30:09 degorenko, sbog: anything else about this topic? 15:30:19 this ? 15:30:20 I think that's all 15:30:29 this feature :) 15:30:36 i mean auth via openstack client 15:30:38 it's a "nice to have" 15:30:46 since osclient is being the reference 15:30:57 ok, got it 15:31:01 and since we decided to rely on osclient for our providers, yeah 15:31:21 we can discuss in summit this topic 15:31:36 degorenko: cool, feel free to adjust etherpad 15:31:44 #topic Keystone v3 - implement providers using composite namevar 15:31:45 great! i'll add a new topic 15:31:47 chem: o/ 15:31:55 yes, chem 15:32:03 yep ? 15:32:10 ah 15:32:18 so chem has figured out that you have to use isnamevar with _properties_, not _parameters_ 15:32:24 * EmilienM wakes up chem 15:32:40 <_ody_> Ugh...yeah parameters are not syncable. 15:32:44 the puppet docs say that "properties" are the actual properties of the actual object being modeled 15:32:56 <_ody_> I mean other way around. 15:33:07 while parameters are just things passed from manifests into the provider code 15:33:23 running the spec using newparam make them fail 15:33:32 chem: how so? 15:33:45 didn't dig into it, but it falis 15:33:58 means you have to change some other code 15:34:01 <_ody_> I am happy to take a crack at it. 15:34:09 ok - so we still need to investigate this approach some more to see if it is viable 15:34:42 well I could finish the job to see what is failing 15:34:44 My suspicion is that it is not viable - if we have to use parameters instead of properties, that means that somewhere, somehow, puppet is not going to like it and barf 15:35:05 but, let's investigate some more 15:35:15 parameter == stuff that puppet cannot guess from the environment 15:35:29 or from the object being modeled 15:35:50 hum, oki. 15:35:54 chem: Can you investigate some more and follow up/reply to your email to the os-dev list? 15:36:15 oki, I look why it's failing and post the result 15:36:19 chem: Thanks 15:36:32 richm: np 15:37:04 <_ody> If someone has a link to a branch, I'll also hack on it. 15:37:12 * _ody didn't see one in the thread 15:37:26 _ody: no branch, just local modification 15:38:08 _ody: it was just exploration ... I may be able to make a gerrit review in wip that I'll destroy later no ? 15:38:27 is it something that people do ? 15:38:36 I think the sooner you release your patch, the better it is 15:38:40 all the time 15:38:55 using Gerrit enforces collaboration, don't keep your code locally 15:39:32 but is it in merge conflit with what gilhub is working on ? 15:39:50 sorry : "isn't it" 15:40:05 you can do Gerrit dependencies or patchs on top of master, whatever 15:40:24 EmilienM: oki 15:40:29 right - just rebase your patch on top of whatever you want as you base 15:40:29 chem: you can do a PoC on top of his patch 15:40:46 EmilienM: richm: I'll do that 15:40:53 chem: Thanks! 15:41:13 #action chem to propose PoC on top of gilles's patch 15:41:19 thanks, anything else chem ? 15:41:29 EmilienM: no. 15:41:47 #topic open discussion 15:41:47 i'm good 15:42:12 can we talk about mlnx vs cisco a bit? 15:42:33 angdraug: sure, what's up? 15:42:36 #link https://review.openstack.org/209997 15:43:06 I'm not particularly for or against vendor drivers code in puppet-neutron, but the discussion there seems to be applying double standards 15:43:20 neutron itself has drivers for both cisco and mlnx 15:43:32 puppet-neutron has cisco specific code 15:43:44 why is it that mlnx specific code is undesirable? 15:43:57 I reviewed the code and I don't think we should manage external repositories, but it's my opinion 15:44:19 mlnx code is 100% desirable, I just disagree to install third party software 15:44:20 EmilienM: n1kv driver does that 15:44:39 yes and if you read my review, you'll see I'm not happy with that. 15:44:55 how do you propose to fix that? 15:45:30 angdraug: I'm curious to know what others think here 15:45:45 I did not -2, I just -1 to raise something we never wanted to do initially 15:45:53 even though cisco did it 15:45:59 i don't think we should include it 15:46:07 I'm not a fan how installing external packages 15:46:18 people have their own composition layer 15:46:23 is there a way to make that manifest work without external repos? 15:46:33 if you install mellanox, create a puppet-mellanox module and install repo + packages 15:46:41 puppet-neutron aims to manage neutron packages & config files only 15:47:05 as I said, that's fine by me, but following the same standards the cisco code should be removed 15:47:27 angdraug: submit a patch, I'll +2 15:47:35 ok 15:47:47 but before I would like to see consencus 15:48:14 I'm sure there will be -1's on the removal patch :) 15:48:28 crinkle: do you have thoughts on this? 15:48:33 but if anyone here has an opinion, it would be nice to know 15:48:56 angdraug: yes - and again I have nothing against mlx or cisco or whatever you know - I personally don't care. 15:49:13 it's just the "how far should we manage plugins" question 15:49:51 yeah 15:50:12 I haven't digested the patch, no opinion really 15:50:25 if anyone is good with that and I'm the only one who -1, I think we should allow external repos - I just want it documented somewhere. It's not clear to me atm 15:50:28 if its consistent with other plguins then why not? 15:50:32 crinkle: https://review.openstack.org/#/c/209997/9/manifests/agents/ml2/mlnx.pp,cm 15:51:04 EmilienM: I've never taken the time to look at any plugins besides ovs and linuxbridge, why is this one different from the other vendored plugins? 15:51:10 crinkle: the problem is that: did we do well by accepting external repos? 15:51:25 because their packages are not in distros repos 15:51:40 crinkle: the difference is that cisco and mlnx drivers need packages from external repos to function 15:51:42 but in third party repos, which might conflict with distros, etc 15:51:46 I see 15:51:55 it does have a parameter to turn it on and off though 15:51:57 not to mention that those repos may disappear at a moment's notice 15:51:59 so i don't really see the problem 15:52:05 and are likely to contain non-free software 15:52:26 angdraug: this is *exactly* my concern, thank you 15:52:46 so we don't want to support a valid neutron configuration because it might use non-free software? 15:53:11 crinkle: no, we do want to support the neutron config 15:53:18 I tend to agree with EmilienM about the puppet-mellanox, puppet-cisco, puppet-XXX relative to puppet-neutron which should just take care of configuration. But legacy being what it is, it's going to be an hard montain to climb. 15:53:20 it's just the external packages that you need 15:53:53 why split the packages and config? that seems confusing 15:53:56 on the other hand, you have neutron's decision to accept these drivers in-tree 15:54:04 Juniper has puppet-opencontrail 15:54:10 it takes care of everything about opencontrail 15:54:16 and puppet-neutron just feed neutron config 15:54:25 it works well! I think we should follow this pattern 15:54:31 yes, exactly 15:54:52 crinkle: we don't split packages & config, you still need neutron plugin package 15:55:09 crinkle: you're mixing third party & openstack packages 15:55:21 1/ is in external repos 2/ is in distros 15:55:41 okay, I don't have any strong opinions 15:55:58 but maybe, for the time being a switch in the module parameter would be enough. Later on we can re-ask ourself if we have the resource to do the split on existing package and force it for new package. 15:56:17 (switch like configure the external resource) 15:56:23 chem: like in https://review.openstack.org/#/c/209997/9/manifests/agents/ml2/mlnx.pp,cm ? 15:56:29 with use_mellanox_repository ? 15:57:08 EmilienM: I think that It can be considered like a valid compromise for the time being 15:57:15 yes 15:57:33 that would work for me, too 15:57:45 ok, so proposal: use opencontrail way if we can, otherwise mlnx - but not cisco n1kv 15:58:22 #action EmilienM send proposal to ML about neutron plugin mngt, gather feedback + write doc 15:58:32 not cisco n1kv == use of external repo is tolerated only if optional? 15:58:56 before closing the meeting, iurygregory is asking for reviews, maybe richm & chem you can have a loot? I'll review them this week for sure. 15:59:04 angdraug: yes 15:59:11 thanks o/ 15:59:13 angdraug: we need to make sure it's optional 15:59:31 thanks angdraug for this topic, very productive 15:59:40 EmilienM, one more review is needed :) https://review.openstack.org/#/c/211043 15:59:44 a few seconds left 15:59:47 angdraug: yes, with the better option being : make a separate module for the installation of the package itself 15:59:58 thanks everyone, have a great day! 16:00:04 #endmeeting