19:00:02 <gundalow> #startmeeting Ansible Molecule Working Group 19:00:02 <zodbot> Meeting started Wed Mar 13 19:00:02 2019 UTC. 19:00:02 <zodbot> This meeting is logged and archived in a public location. 19:00:02 <zodbot> The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:02 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 19:00:02 <zodbot> The meeting name has been set to 'ansible_molecule_working_group' 19:00:18 <gundalow> Hey everybody, who's around? 19:00:29 * themroc waves 19:00:33 <fabianvf> Hi 19:00:34 <smyers> <- 19:01:01 <zbr> hi! 19:01:46 <gundalow> #topic Ansible Collections and Molecule 19:02:11 <gundalow> #info agenda https://github.com/ansible/community/issues/427 19:02:57 <gundalow> #chair themroc thaumos fabianvf zbr smyers tima 19:02:57 <zodbot> Current chairs: fabianvf gundalow smyers thaumos themroc tima zbr 19:04:04 <gundalow> We have thaumos (Dylan) with us today the Product Manager for Ansible Core 19:04:26 <thaumos> Hi all, pleasure to speak with you! 19:04:29 <smyers> o/ 19:04:35 <thaumos> I want to talk about some of our high level plans related to the Collection Content format you may have heard of, and how we want Molecule a big part of this story. 19:04:35 <zbr> o/ 19:04:49 <themroc> o/ 19:04:54 <thaumos> So to forewarn, a lot of this story is still a BIG BIG BIG WIP 19:05:00 <gundalow> #chair themroc 19:05:00 <zodbot> Current chairs: fabianvf gundalow smyers thaumos themroc tima zbr 19:05:15 <thaumos> so one thing to say up front, that the 2.8 release this will all be very experimental, and may change. 19:05:26 <thaumos> So feedback is more than welcome in the next 6-9 months. 19:05:37 <thaumos> Anyhow, back to how this relates to Molecule. 19:06:43 <thaumos> So the overall goal is to make Molecule a main part of the Ansible story. We have two personas that we work with. There is the content creator (developer, playbook authour, etc.) and there is the content consumer (operator, Noc admin, sysadmin, etc). 19:07:13 <thaumos> The story that molecule fits into is the creator. We want molecule to become the defacto standard tool, or sdk if you will, for content creators. 19:07:31 <gundalow> (feel free to ask questions at any point) 19:08:02 <thaumos> So in the future, the goal is to have collections be created, tested, built, and published all via molecule. ansible-galaxy/mazer will be the content consumers' tool/path. 19:08:27 <themroc> waw cool, and makes sense 19:09:01 <thaumos> IMHO, this adds a lot of weight to the molecule story, and makes it a larger part of the Ansible ecosystem. It always has done a great job of testing content created. However, it was disjointed because it was never considered a part of the main cadence. 19:09:30 <thaumos> Now that it has been adopted, we want to put more into it to make it a first class citizen of the overall story for our community. 19:09:42 <gundalow> #chair decentral1se 19:09:42 <zodbot> Current chairs: decentral1se fabianvf gundalow smyers thaumos themroc tima zbr 19:09:49 <decentral1se> o/ 19:09:53 <thaumos> Obviously to get there will take time and modifications. By no mean is any of this going to be perfect out of the gate. 19:09:57 <zbr> no story about molecule being the testing platform for ansible playbooks/roles? regardless if they are published or not to galaxy? 19:10:16 <thaumos> However, what I want to start achieving is the ability to iterate a lot better than we have in the past with updates that we make to Ansible. 19:10:24 <thaumos> @zbr is definitely is. 19:10:49 <thaumos> So for those that don't know. A collection really is just a formalised repo format/ project if you will. It is also the delivery method for content. 19:11:03 <themroc> some changes coming to `molecule create` then ? 19:11:07 <thaumos> So a role or playbook can be contained within a collection, and will be tested as such. 19:11:28 <thaumos> Yes, @themroc. molecule create | init will create a collection skeleton in the future. 19:11:30 <thaumos> instead of just a role 19:12:12 <bwatson> where can we find more about this collection skeleton to stay ahead of this? 19:12:19 <thaumos> Great question! 19:12:20 <smyers> it can create roles and scenarios at the moment, `molecule init collection` doesn't seem like a strech provided a collection is well-defined 19:12:20 <gundalow> #chair bwatson 19:12:20 <zodbot> Current chairs: bwatson decentral1se fabianvf gundalow smyers thaumos themroc tima zbr 19:12:43 <thaumos> @bwatson, formal messaging for this is still being crafted atm. We plan on publishing all of this early May. 19:12:46 <zbr> the use case I have on openstack is bit more complex: multiple repositories hosting each multie roles and playbooks: interdependent. 19:13:24 <zbr> so role foo could import role bar from another repository, quite common. 19:13:33 <thaumos> I plan on working with the Ansible community leadership, marketing, and others to start writing blogs and possibly a couple of webinars to start talking about it 19:13:35 <bwatson> @thaumos: understood. will be on the lookout. I love, love, love Molecule and use it daily as a content creator. Would like to see it expand to playbooks 19:14:14 <smyers> I think the key word there is "expanded". So far I see nothing that will take behaviors away from molecule, this all seems additive 19:14:17 <thaumos> @zbr, yes. there are some use cases that may be complex, but all can be handled with the format of itself. I'd be happy to converse with you offline about that. 19:14:18 <zbr> bwatson: out of curiosity, I do not see anything in molecule that would prevent you to use it to test playbooks too. 19:14:23 <themroc> awx has a nice use case also: installation playbook is a in a subdirectory, and only gilt can import it properly: mazer could learn from gilt in that case 19:14:50 <thaumos> @smyers exactly! There is no intention to take anything away. That's the beauty of the format. It formalises the approach to a repo/project. 19:15:14 <bwatson> zbr: you're probably correct, I just haven't played around with it to make it do that. I could be structuring my playbooks wrong as well 19:15:58 <gundalow> gilt = A GIT layering tool. https://gilt.readthedocs.io/ 19:16:02 <thaumos> @themroc, I cannot speak to awx as I am not the PM for that, but overall yes there will be usage of collections there too. 19:16:25 <zbr> bwatson: thaumos check https://github.com/ansible/molecule/issues/1801 when you have time, it describes the missing link. 19:16:46 <thaumos> great, thanks for that link @zbr 19:16:56 <zbr> so far gilt was very close to doing things right, so we can learn from it. 19:16:58 <bwatson> zbr: will do 19:17:33 <thaumos> So in short all, there is a lot in store for the near future. I would love your involvement in fleshing out this story, and am happy to speak to whomever is curious to hear more. 19:17:55 <thaumos> I am a lurker in irc, so I am always here, but tend not to directly interact due to being on damned calls all day long. 19:18:19 <thaumos> If you do @ me in channel or DM me, I always do my best to respond. 19:18:31 <thaumos> It may be delayed but I will respond. 19:18:36 <gundalow> So I know there is a lot here, and not everything is fully detailed. Though thaumos and I thought it was important to give you an overview of what we want to achieve is, hope you found it useful 19:18:55 <bwatson> I certainly think it is headed in the right direction 19:19:06 <themroc> bwatson, +1 19:19:29 <fabianvf> Definitely! Are there pages/repos we should watch to follow development of this effort? 19:20:05 <smyers> like themroc said, makes sense. a lot of the pieces are already in place for this, the major question is "what is a collection?", so yeah, any links to docs or discussions on that would be most helpful 19:20:12 <gundalow> We are working on some bits, I'll send out links once we have bits published 19:20:14 <gundalow> hehe, yup 19:20:15 <themroc> So first define the format, then implement it in molecule create, in ansible to be able to consume it, in mazer/galaxy to be able to store/download 19:20:40 <gundalow> We are working on a FAQ that should cover all the "What is X", "How is it different to Y" type questions 19:21:25 <thaumos> right, so we're a little ahead of the formal messaging. but gundalow and i wanted to chat sooner rather than later. 19:21:33 <thaumos> in due time you will see all the infos. 19:21:59 <themroc> I guess define the format is thigltly related to how it is possible to implement it in ansible, as it will multiply the place to load libraries etc ? 19:22:29 <zbr> one remark related to galaxy and mazer: galaxy bugs are current auto-closed as is deprecated but at the same time mazer docs states *experimental*, * *tech-preview*, *caution*... which works very well as an adoption deterrent. maybe patching the doc would not be a bad idea? 19:22:38 <thaumos> if interested, here is the PR in question that changes the behaviours of how ansible handles a collection 19:22:38 <decentral1se> thanks for the heads up! 19:22:38 <thaumos> https://github.com/ansible/ansible/pull/52194 19:23:13 <gundalow> #info [WIP] Collection content loading https://github.com/ansible/ansible/pull/52194 19:23:25 <thaumos> @zbr great feedback. I will work with docs and our processes to figure out how best to communicate that. 19:23:46 <thaumos> to note, this PR I mentioned will be merged before 2.8 ships. 19:24:21 <gundalow> There is a demo script that shows how to use ^, I'll see if it can be put somewhere public so you can take a look at it 19:25:09 <gundalow> Any other questions, or shall we move onto next #topic? 19:26:10 <smyers> no questions, eager to see more details and dig through that PR. Thanks for bringing it up :) 19:26:27 <gundalow> Most welcome, it's exciting times 19:26:43 <gundalow> #topic Molecule v2.20 release 19:27:16 <themroc> #info 4 issues pending https://github.com/ansible/molecule/projects/2 19:28:43 <decentral1se> shall we try to resolve the tags issue? 19:28:48 <themroc> # info https://github.com/ansible/molecule/issues/1818 19:29:03 <themroc> #info https://github.com/ansible/molecule/issues/1818 19:29:23 <gundalow> #chair 19:29:23 <zodbot> Current chairs: bwatson decentral1se fabianvf gundalow smyers thaumos themroc tima zbr 19:29:51 <themroc> there is a long discussion ongoing about which tags should be added to the docker image 19:30:08 <decentral1se> yes, but let's close it off :) 19:30:12 <gundalow> :) 19:30:32 <decentral1se> what is the bare minimum we need to decide on here? 19:30:34 <smyers> Just throwing it out there, but does that discussion need to block the 2.20 release, or can it be settled after? 19:30:39 <decentral1se> "nice to have" tag listings can come later 19:30:50 <themroc> agree 19:30:54 <decentral1se> oh even better 19:31:03 <decentral1se> chuck it out! 19:31:47 <gundalow> smyers: valid question 19:31:49 <smyers> I'm all for solving stuff now, but if we can decouple these issues from the actual release and kick it out the door, I'm in favor of doing that. :) 19:32:17 <gundalow> I guess I wanted to know as 19:32:17 <gundalow> Going from Dockerhub (2.19) to Quay.io (2.20) we've changed the defn of `latest` 19:32:36 <gundalow> so it's sort of a regression (or feature if you like new/possibly broken things) 19:34:44 <themroc> yep before there were docker images only for released versions of molecule 19:35:02 <gundalow> I could set quay.io to only build tags 19:35:12 <smyers> So three choices, if I'm reading this right: 1) latest == latest release (stable), 2) latest == latest build (master) 3) don't use a latest tag at all 19:35:25 <gundalow> 4) Only build tags 19:35:44 <smyers> does it handle pointing latest at the latest tag? 19:35:51 <zbr> i vote for 1) latest = latest stable 19:36:38 <smyers> I think that aiming the latest tag at only releases would be the least astonishing choice to someone looking to run molecule this way 19:36:41 <zbr> if we are planning to publish pre-releases, we could use "devel" or "master" tags. 19:36:59 <tima> +1 to latest (stable) 19:37:20 <tima> "devel" is the convention used by ansible. 19:37:22 <fabianvf> Latest should definitely be latest stable, it's the default tag to pull and it seems like a bad idea to make the default be bleeding edge 19:37:36 <decentral1se> great, +1 to latest = latest stable 19:37:39 <zbr> and latest would a mobile tag, as opposed to a versioned one. which means a container cannot ever have only latest tag, without having a v1.2.3 tag also. 19:37:41 <themroc> i have difficulties to choose one church one that topic, i find both possibilities as logical 19:37:58 <tima> apparently dehaan has an issue with "master" and banished it way back when ¯\_(ツ)_/¯ 19:38:23 <decentral1se> let's keep "least astonishing" as our reasoning then for this tags discussion 19:38:59 <tima> +1 "least astonishing" 19:39:00 <smyers> yeah, I kind of agree with all sides here. latest is ambiguous, and could reasonably point to the latest release or latest commit. But yeah, I think the principle of least astonishment gives good guidance here 19:39:12 <gundalow> "principal of least suprise" is a goodone 19:39:24 <zbr> if i find: latest, devel, v2.20,... I would not need to ask questions or read the docs. 19:39:37 <smyers> exactly 19:39:54 <decentral1se> yep, agreed and that works for pre-release (v2.20.a ...) 19:40:16 <smyers> latest is latest release, devel is latest devel build, tagged (in git) releases and prereleases get tags 19:40:28 <decentral1se> grand job 19:40:32 <smyers> (in $containerrepo) 19:40:32 <fabianvf> +1 19:40:33 <themroc> seems there is a consensus here 19:41:04 <themroc> webknjaz not here to defend the other option 19:41:18 <zbr> ....which is a surprise, as we all know naming is one of the most controversial issues in computer science ;) 19:41:27 <decentral1se> hehe, he'll be fine, I'm sure 19:41:30 <decentral1se> moving on! :) 19:41:42 <gundalow> someone want to #agreed ... that 19:41:52 <decentral1se> #agreed latest is latest release, devel is latest devel build, tagged (in git) releases and prereleases get tags 19:41:54 <smyers> his caveat should be noted, as it's a good one: "Whatever we choose we should clearly state that it's recommended to point to a numeric version whenever using the image for anything other than experimenting." 19:42:07 <decentral1se> I'll pick up the docs fix since I raised the issue 19:42:47 <gundalow> decentral1se: Thanks 19:43:17 <decentral1se> ok, two more then 19:43:32 <decentral1se> #1809 just needed a fix or review zbr? 19:43:39 <decentral1se> #info https://github.com/ansible/molecule/pull/1809 19:43:55 <zbr> i observed a change in naming, on 2.20 we do have the "v" prefix, but older versions are only numeric. 19:44:35 <gundalow> oh, interesting 19:44:38 <gundalow> I did `git push --tags ansible v2.20a2` 19:44:40 <zbr> decentral1se: i am afraid it may need a fix on testing. easies it to remove the tests. 19:44:41 * gundalow looks at the docs 19:45:21 <gundalow> oh, I did the wrong thing, https://molecule.readthedocs.io/en/latest/development.html states without leading `v` 19:45:28 <gundalow> zbr: good spot, thanks 19:45:43 <zbr> glad to help, and good that we found it before the release. 19:45:52 <decentral1se> #info https://github.com/ansible/molecule/issues/1724 19:46:02 <decentral1se> this was put onto the v2.20 release, it still needs to be there? 19:46:08 <smyers> Also glad to see the convention is documented :) 19:46:27 <gundalow> #info Git tag should be without leading `v` as per https://molecule.readthedocs.io/en/latest/development.html 19:47:20 <gundalow> What's the scope of Aborting, target uses selinux but python bindings (libselinux-python) aren't installed! #1724 19:48:20 <gundalow> > This problem is not limited to Fedora, is happening with CentOS too. I think it may prove to be a good enough reason to delay release of 2.20. 19:49:12 <zbr> there is an easy way to avoid it with tox: enable sitepackages. 19:49:34 <themroc> zbr, that is the proposed fix in https://github.com/ansible/molecule/pull/1823/files 19:50:58 <zbr> there are other workarounds but very ugly: cp the two files after virtualenv is created. but it needs some extra bash to do this. 19:51:13 <zbr> i personally do not see a problem on using sitepackages 19:51:40 <decentral1se> but sitepackages fix is for the tox setup? And the original issue is for running `molecule test`? 19:51:50 <decentral1se> mass confusion 19:52:12 <decentral1se> also, just using molecule from our docker image could be a work around? 19:53:52 <fabianvf> Does that work well with the docker driver? 19:54:35 <decentral1se> user in https://github.com/ansible/molecule/issues/1813#issue-418809646 uses it 19:55:06 <themroc> decentral1se, or tell daniel-wtd and the documentation, when installing molecule in a virtualenv we should create it with sitepackages = true 19:55:38 <zbr> decentral1se: as long we do install selinux extensions in the image it should work. is very easy to test: template module chokes if you do not have it. 19:55:39 <themroc> but sitepackages = true will still be needed to run tox on selinux enabled host 19:55:51 <themroc> so the fix makes sense, still 19:56:39 <zbr> yeah, it fixes tox use-case. 19:56:47 <decentral1se> right but the fix is for "us" (dev people on molecule) and the issue is resolved by doing sitepackages=True on a pip install 19:57:42 <decentral1se> so it doesn't seem to be a 2.20 blocker 19:57:57 <decentral1se> just #1809 AFAICT 19:57:59 <zbr> in the end, is an ansible issue, not a molecule one. 19:59:02 <decentral1se> ok, we're running out of time then 19:59:06 <decentral1se> do we have a release date? 19:59:23 <decentral1se> shall we push #1724 off for now? 19:59:34 <zbr> it makes sense to fix only 1809 before the release. we can always have another release later. 19:59:52 <zbr> or we will never release because we will always find important bugs to fix 20:00:10 <decentral1se> cool 20:00:18 <themroc> oh i am sorry i moved #1809 back to todo 1 hour ago, it was probably an automous trackpad issue 20:00:19 <gundalow> zbr: yup 20:00:27 <gundalow> themroc: nps 20:00:57 <decentral1se> ok, then #1809 green and we're good to go 20:01:02 <zbr> i removed the tests from 1809 so now is only the fix. that is because adding tests in this area is quite problematic. i plan to do so in followup change. 20:01:04 <fabianvf> +1, unless it's absolutely critical I think we should just try to get the release out 20:01:25 <gundalow> OK, so from https://github.com/ansible/molecule/projects/2 20:01:25 <gundalow> What's critical 20:01:27 <decentral1se> well #1809 without a test is a bit hairy unless someone can manually test it (logs will do it) 20:02:18 <Not-e6c6> [molecule] gundalow commented on pull request #1809: Fix custom dockerfile usage - https://git.io/fje3x 20:02:26 <gundalow> hehe 20:02:44 <gundalow> added comment to say "2019-03-13 IRC Meeting. We need someone to test this before we can merge" 20:02:51 <decentral1se> cool 20:03:06 <decentral1se> then the tags issue is done and we're pushing #1724 and #1823 off 20:03:22 <themroc> to 2.21 20:03:28 <zbr> yeah. 20:03:43 <decentral1se> #agreed push #1724 and #1823 off to following release 20:03:46 <gundalow> decentral1se: hum, I've not changed anything on quay.io, so 1818 still needs doing 20:04:02 <decentral1se> "done" 20:04:04 <decentral1se> :) 20:04:27 <zbr> one more problem... see https://github.com/ansible/molecule/pull/1823/checks?check_run_id=77528824 20:04:49 <zbr> mainly deploy fails when it should not even attempt to perform an upload on a CR. 20:05:00 <zbr> this build should have passed 20:05:10 <decentral1se> oh that is a bit flaky, not to worry 20:05:15 <Not-e6c6> [molecule] gundalow commented on issue #1724: Aborting, target uses selinux but python bindings (libselinux-python) aren't installed! - https://git.io/fje3j 20:05:19 <Not-e6c6> [molecule] gundalow commented on pull request #1823: Avoid python libselinux bindings being hidded by tox - https://git.io/fjese 20:05:22 <zbr> decentral1se: is not flakiness 20:05:23 <fabianvf> gundalow: generally to me it means a) the release won't build or b) existing workflows are broken (which should ideally trigger a but ¯\_(ツ)_/¯) 20:05:26 <gundalow> ^ `2019-03-13 IRC Meeting. Agreed this isn't 2.20 blocking` comment added on both 20:05:29 <zbr> is design issue 20:06:03 <decentral1se> zbr: the entire build is green, it's just the test.pypi release? 20:06:10 <zbr> pypi server never allow overriding an already uploaded file, even test test.pypi.com one. if you upload a PR, the next one will fial. 20:06:19 <themroc> i just relauched the deploy 20:07:02 <themroc> zbr is there a workaround for that ? 20:07:04 <zbr> deploy should be skipped on PR changes. 20:07:04 <gundalow> zbr: yup, that makes sense 20:07:24 <zbr> yes, i know it. small change to travis file, i done it on jira project. 20:07:56 <zbr> alternative is to use the sha inside the version to make it unique. 20:08:07 <gundalow> I'd want to understand the pros/cons of `--whatever-option-means-override-file` is. Is their a danger of updating a PyPi 20:08:20 <gundalow> hum, maybe only push to PyPi on merge, not PR/commit? 20:08:23 <zbr> ... until pypi bans us from DDOS-ing them with useless packages ;) 20:08:59 <gundalow> ie, does anyone actually need PyPi packages for PRs, or just for @master? 20:09:02 <zbr> gundalow: that is the idea, it must run only on merge. 20:09:26 <zbr> gundalow: nope, we do not need. doing a "twine check" should be more than enough. 20:10:31 <gundalow> yup, that's what I was wondering 20:11:46 <decentral1se> it is skipped on PR changes: https://github.com/ansible/molecule/blob/master/.travis.yml#L445 ? 20:12:42 <decentral1se> overall, it's a "nice to have" and it's unfortunately been "not nice to have" since it breaks a lot ;) 20:14:14 <decentral1se> gotta jump, later all 20:14:16 <themroc> btw what's new on the zuul path ? 20:15:01 <gundalow> thaumos: nothing yet, though will be discussing it a bit in #ansible-meeting tomorrow 20:15:06 <gundalow> bah 20:15:08 <gundalow> themroc: ^ 20:15:12 <gundalow> thaumos: (sorry) 20:15:48 <gundalow> #action look at why PyPi uploads are being run for PRs given https://github.com/ansible/molecule/blob/master/.travis.yml#L445 20:15:52 <gundalow> OK, bit over time 20:15:59 <gundalow> Thank you everybody as always for your time 20:16:01 <gundalow> #endmeeting