19:00:01 <gundalow> #startmeeting Ansible Molecule Working Group
19:00:01 <zodbot> Meeting started Wed Jan 23 19:00:01 2019 UTC.
19:00:01 <zodbot> This meeting is logged and archived in a public location.
19:00:01 <zodbot> The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot.
19:00:01 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
19:00:01 <zodbot> The meeting name has been set to 'ansible_molecule_working_group'
19:00:25 <gundalow> Hello! Who's joining us today?
19:00:50 <fabianvf> do I raise my hand or state my name or something?
19:00:51 <ericsysmin> me
19:00:52 <loomsen> hi folks
19:00:57 <themroc> hello
19:01:00 <alongchamps> I'm here
19:01:40 <gundalow> Oh, if people want to themselfs and state their interest in Molecule that would be cool
19:02:35 * gundalow is gundalow (though a few people call me John  Barker). I look after the Ansible Community and I'm here to help y'all continue to do great stuff with Molecule
19:02:49 <gundalow> I'm part of the Ansible Team
19:02:53 <loomsen> i'm an operations engineer at a german lottery company, we're using ansible and molecule throughout our dev and CI process
19:03:41 <bcoca> im a bot that trolls random irc channels
19:03:48 <loomsen> :D
19:04:04 * themroc maintain playbooks at work and life is easier since molecule exists. contribute sometimes, would like to do more in that direction, but actual employer is not pushing in that direction.
19:04:38 <sdoran> o/
19:05:00 * ericsysmin I'm a sr devops/sre at Avi Networks, and manage a ton of open sources roles released by our company, as well as person roles in the galaxy, some people know me, some don't
19:05:00 <sdoran> Sorry, I was in the wrong channel. Do we have a topic we're discussing?
19:05:07 <gundalow> sdoran: just intros
19:05:14 <sdoran> Roger.
19:05:32 <fabianvf> I'm Fabian von Feilitzsch, a software engineer working on Ansible Operator (also maintaining the kubernetes ansible modules and openshift python client). We're using molecule for testing Ansible Operator projects
19:05:37 <gundalow> FYI, this meeting is logged, thanks to zodbot
19:05:48 <sdoran> I'm Sam Doran, a Senior Software Engineer at Red Hat working an Ansible Core.
19:05:55 <sdoran> *on
19:06:05 <fabianvf> oh yeah I'm at red hat too
19:06:31 <gundalow> #chair fabianvf ericsysmin loomsen themroc alongchamps bcoca sdoran
19:06:31 <zodbot> Current chairs: alongchamps bcoca ericsysmin fabianvf gundalow loomsen sdoran themroc
19:06:41 <gundalow> Cool, thanks
19:07:24 <gundalow> #info Firstly, thank you. I've been really impressed to see the continued level of discussion and helping in here, the PRs and mailing lists, etc
19:07:28 <alongchamps> I'm just interested in getting involved with ansible and getting started on module
19:07:40 <alongchamps> s/module/molecule/
19:07:46 <gundalow> #info House Keeping
19:08:03 <gundalow> #info agenda https://github.com/ansible/community/issues/427 Feel free to add things as you see fit
19:08:19 <gundalow> #info This is meant to be informal and interactive, though we try and keep on one topic at a time to make it easier for people to follow
19:08:19 <gundalow> Meeting logs will be recorded, feel free to assign yourself actions by doing `#action gundalow to review PR1234`
19:08:26 <tima> I’m a Product Manager on the Ansible team and arranged for us to adopt Molecule as an official project here.
19:08:43 <gundalow> tima: Great work :)
19:08:46 <fabianvf> nice, good call it's awesome
19:08:53 <tima> Thanks.
19:09:07 <ericsysmin> tima: does that mean official support will also come with use of molecule and with it a documentation team?
19:09:34 <gundalow> tima: Also got `ansible-lint`
19:09:39 <gundalow> #info As some of you maybe new to the Ansible Community, I invite you to read the Code of Conduct https://docs.ansible.com/ansible/devel/community/code_of_conduct.html This community only works because you people. It's easy in text for things to come across in a way they were not intended. Go above and beyond to promote a collaborative and respectful community.
19:09:41 <tima> Define official. ;)
19:09:46 <gundalow> #info for example on a review saying `Would this be clearer if...` - invites discussion
19:09:52 <gundalow> #info For guidance on how to give good code reviews, I personally really like http://sage.thesharps.us/2014/09/01/the-gentle-art-of-patch-review/
19:10:01 <gundalow> ^ some background reading for you :)
19:10:21 <gundalow> #chair tima
19:10:21 <zodbot> Current chairs: alongchamps bcoca ericsysmin fabianvf gundalow loomsen sdoran themroc tima
19:10:38 <tima> Was working on a docs team from day one. That’s been sidetracked.
19:10:51 <tima> Unfortunately. :/
19:11:09 <ericsysmin> themroc:
19:11:18 <ericsysmin> themroc: you mentioned about the molecule docker image
19:11:23 <themroc> yes
19:11:34 <ericsysmin> couldn't we just jenkins or use travis-ci to build it?
19:11:39 <gundalow> ericsysmin: The Ansible Docs Team will be helping on Docs. We know they need some love, in particular the "Getting Started" bits. Though we will be looking to the Community (yup, that's you) for help with the technical bit of that
19:12:25 <themroc> ericsysmin, there is a new image published there https://quay.io/repository/ansible/molecule?tab=info
19:12:40 <themroc> which is the new official one
19:12:43 <gundalow> #info I know some people have been (previously) using Molecule as the unofficial Ansible Docker Image. We are having some discussions internally at the moment about how we want to do this, and move that out of Molecule
19:14:28 <ericsysmin> got it, thanks themroc
19:14:29 <themroc> gundalow, so maybe an offical ansible image including ansible-lint and molecule ?
19:14:30 <gundalow> * First meeting, so lots to discuss, though from reviewing the agenda there seems to be agreement around:
19:14:30 <gundalow> 1) What's left before we can release the next version of Molecule
19:14:30 <gundalow> 2) How do we keep on top of the backlog
19:14:30 <gundalow> 3) Getting started docs
19:14:30 <gundalow> 4) Steps needed to improve CI testing
19:14:30 <gundalow> Does that sound OK?
19:15:17 <loomsen> sounds good to me
19:15:22 <themroc> +1
19:15:32 <gundalow> #topic Molecule Releases
19:16:06 <fabianvf> yeah, though I'd like to tackle some of the feature discussions on the agenda if we have time after those core subjects
19:16:50 <gundalow> fabianvf: hum, how about we drop docs (as Docs Team is in another meeting currently) and we can look at features as part of backlog?
19:17:02 <fabianvf> +1
19:17:11 <loomsen> yup
19:17:21 <gundalow> What I'm hoping is we can a) Achieve some things now b) know what we want to achieve by next week
19:17:55 <bcoca> when is 'next release' aimed at
19:17:58 <bcoca> ?
19:18:07 <gundalow> #info I know we haven't done a Molecule release since Red Hat became the maintainer. Lots of work has gone into adding CI and tidying up things
19:18:30 <gundalow> #info There isn't a date say for the next Molecule Release, though we are using https://github.com/ansible/molecule/milestones to track what's needed
19:18:38 <bcoca> mainly asking for 1671 since it is intro of 'collection' support and we might want to have that for 2.8
19:18:40 <themroc> nice CI btw!
19:18:56 <gundalow> #action If people think their are unmerged PRs/Issues that should be included in that release please let me know
19:19:10 <bcoca> ^ just did?
19:19:27 <bcoca> its wip still, but should def aim to next release
19:19:30 <gundalow> bcoca: thanks added
19:19:35 <themroc> https://github.com/ansible/molecule/pull/1698 -- could fix recurrent travis fail due to timeout on python 2 builds
19:19:42 <gundalow> If it's not ready by next release, can move into n+1
19:20:21 <loomsen> i've got one open for review, which is more of a feature request, and i'm going to open another one on the state of docker networks tomorrow. currently, you can add an instance to a precreated network, and molecule will destroy that network. i don't think that's too desirable
19:20:30 <tima> That may need to be the case @gundalow. Adding collection support is a big ticket item.
19:20:48 <loomsen> also, there is no way to create docker networks first, so that should be addressed i think
19:21:06 <gundalow> tima: yup, good point
19:21:39 <tima> For instance molecule will need to port and integrate some part of Ansible-test
19:21:53 <gundalow> #info We may get back to ~monthly releases. So it's a balance between what's blocking/adds a lot of value vs keep on pushing back the release
19:21:55 <tima> And probably lay the foundation for the rest.
19:22:36 <fabianvf> There is one fix unreleased currently (#1615) that our project relies on. We aren't looking at a GA release for a little while longer but a release sooner than later would be preferable from our perspective. Obviously our release schedule doesn't drive this project but just wanted to make the need known
19:22:38 <gundalow> themroc: Thanks, I've added 1698( shard travis) to the v2.20 and webknja will review when he's back from holiday
19:23:09 <gundalow> fabianvf: cool so 1615 is merged so will be in the next release
19:23:34 <gundalow> #info Every merge into `master` is available via PyPi (I just can't remember the syntax)
19:23:38 <bcoca> confused: repo has tags for and up to 'stable-1.25' but latest stable release is 2.19 ?
19:23:58 <bcoca> gundalow: you can also just use pip against repo directly
19:24:15 <gundalow> yup, though we have named as well
19:24:23 <bcoca> pip2 install git+git://github.com/ansible/molecule@master
19:24:30 <fabianvf> yeah we're currently pip installing the repo directly, it's not blocking our development efforts
19:24:30 <bcoca> ^ what i'm currenetly using
19:24:35 <themroc> https://github.com/ansible/molecule/pull/1695 -- fix the actual lint errors
19:24:55 <loomsen> mine depends on that ↑
19:25:30 <gundalow> loomsen: Could you please add a comment on your PR saying it depends on ^
19:25:37 <gundalow> Makes it easier when looking at CI failures
19:25:44 <loomsen> sure
19:25:47 <gundalow> Thanks :)
19:25:56 <gundalow> themroc: thanks, added 1695 to v2.20 as well
19:26:36 <gundalow> So assuming we are happy with https://github.com/ansible/molecule/milestone/1 `v2.20` then we need to get that reviewed
19:27:19 <themroc> https://github.com/ansible/molecule/pull/1691/files -- nice to have
19:28:31 <gundalow> themroc: Thanks, added to v2.20
19:28:44 <gundalow> sdoran: You like to discuss 1659?
19:28:52 <sdoran> Yup.
19:29:16 <gundalow> #info https://github.com/ansible/molecule/pull/1659
19:29:17 <gundalow> Disable YAML lint truthy rule by default
19:29:20 <gundalow> #undo
19:29:20 <zodbot> Removing item from minutes: INFO by gundalow at 19:29:16 : https://github.com/ansible/molecule/pull/1659
19:29:24 <gundalow> #info https://github.com/ansible/molecule/pull/1659  Disable YAML lint truthy rule by default
19:29:27 <gundalow> sdoran: all yours
19:29:37 <themroc> https://github.com/ansible/molecule/pull/1683 -- documentation
19:30:15 <sdoran> I essentially want the default molecule settings to match what we agreed in the docs meeting to standardize on for bools.
19:30:36 <tima> Sorry I need to drop for something else. Nice work all.
19:31:04 <gundalow> tima: Thanks for your time, I'll ping out the meeting long after
19:31:30 <sdoran> Otherwise we could have docs that give `yes`/`no` examples and they would fail `molecule lint` out of the box.
19:32:46 <sdoran> The best long term solution would be the `yamllint` feature request linked in the PR that would allow setting a list of acceptable bools.
19:32:58 <sdoran> But that’s not implemented yet.
19:32:59 <themroc> i understand, converting all yes/no to true false was an unexpected step when embracing molecule
19:33:33 <bcoca> linters have 'opinions' in many cases, not always correct ones
19:33:37 <sdoran> So when/if that is added to `yamllint` we could adjust the default Molecule settings to take advantage of it.
19:33:56 <themroc> the real value of the test is if it refuses quoted "yes","no","true","false" which are not booleans
19:34:41 <bcoca> depends, only 'sure' way to not booleanize those is via !!str or similar
19:35:04 <sdoran> Many in the Ansible community interpreted this default setting in Molecule as the YAML 1.2 spec forcing them to use `true`/`false` only.
19:35:09 <bcoca> and that is only at yaml level, Ansible's jinja2 templating also recognizes yes/no as booleans
19:35:39 <ericsysmin> doesn't galaxy also mention this and warns on it?
19:35:43 <bcoca> sdoran: yet 1.2 requires a) lib that supports it (pyyaml currently doesnt) b) a specific pragma at the start of yaml doc
19:35:55 <bcoca> %YAML 1.2 , iirc
19:36:07 <sdoran> And since Ansible plans to support flexible Boolean values, there’s no reason to have the recommended Ansible testing tool complaining about it (without modifying the `yamllint` config).
19:36:11 <bcoca> so defaulting to that would be wrong for not only our case, but most cases
19:36:27 <sdoran> Exactly.
19:36:56 <sdoran> So even more reasons we should disable this rule by default.
19:37:10 <loomsen> +1
19:37:15 <loomsen> we disabled it
19:37:20 * bcoca queues office space 'printer beating' scene for this rule
19:37:25 <ericsysmin> +1 for disable it
19:37:37 <gundalow> #chair newswangerd
19:37:37 <zodbot> Current chairs: alongchamps bcoca ericsysmin fabianvf gundalow loomsen newswangerd sdoran themroc tima
19:37:45 <gundalow> What do others thing?
19:37:52 <fabianvf> +1 first thing I disabled when I started using molecule
19:37:55 <bcoca> +1 for nixing rule
19:38:13 <bcoca> quesiton is rule in molecule or in lint?
19:38:16 <sdoran> I also wanted to make sure it’s the correct way to do it. I’m not very familiar with the molecule code base.
19:38:36 <sdoran> It’s the default yamllint config that ships with Molecule.
19:38:45 <themroc> bcoca, it is yamllint configuration file generated by molecule init
19:38:51 <sdoran> So it’s molecule’s invocation of yamllint.
19:38:54 <bcoca> gtk
19:39:35 <sdoran> That’s all for me.
19:39:40 <bcoca> also, we should have install guide for certain OSs .. it was easy for me to install on gentoo, but ironically it was realy hard in RHEL
19:39:58 <ericsysmin> you mean for molecule install?
19:40:02 <bcoca> yep
19:40:18 <ericsysmin> maybe we do need a guide but on CentOS i didn't have an issue
19:40:23 <themroc> no pip in RHEL?
19:40:32 <gundalow> bcoca: Got a summary of what the specific issues were on RHEL?
19:40:34 <bcoca> themroc:  no, requires SCL
19:40:43 <bcoca> adn even if you get pip, gcc and many other deps
19:40:46 <ericsysmin> can't you use easy_install?
19:40:51 <bcoca> gundalow: i really gave up at SCL
19:40:59 <fabianvf> yeah it's a bit of a pain in RH-based systems, and especially tough in atomic systems (like silverblue) due to the gcc + header files requirements
19:41:13 <ericsysmin> ah
19:41:27 <ericsysmin> like literally RHEL not the family but the official RHEL.
19:41:41 <bcoca> yep, specially if it means 'w/o EPEL'
19:41:44 <gundalow> #action gundalow to make a note that we may need RHEL/atomic systems specific install docs. `SCL`, gcc+ headers
19:41:51 <gundalow> #undo
19:41:51 <zodbot> Removing item from minutes: ACTION by gundalow at 19:41:44 : gundalow to make a note that we may need RHEL/atomic systems specific install docs. `SCL`, gcc+ headers
19:42:03 <gundalow> #action gundalow to make a note that we may need RHEL (without EPEL) specific install docs. `SCL`, gcc+ headers
19:42:03 <themroc> the docker image is a good pick in that situation
19:42:08 <gundalow> (added without EPEL)
19:42:15 <gundalow> sdoran: Do you have what you need?
19:43:04 <sdoran> I guess I just need to fix the tests and have someone merge that PR.
19:43:25 <fabianvf> yeah, though we're spinning up containerized kubernetes clusters and docker in docker in docker is territory I haven't crossed into yet :P
19:43:28 <themroc> +1 for disabling truthy (as the comment remembers, it was even disabled by default some time ago)
19:43:36 <gundalow> #action sdoran to fix test for 1659, gundalow will merge once green
19:43:37 <sdoran> Are there changelogs I need to update?
19:44:04 <gundalow> sdoran: oh, yes if you could update https://github.com/ansible/molecule/blob/master/CHANGELOG.rst
19:44:11 <gundalow> hum, will need to update https://github.com/ansible/molecule/blob/master/CHANGELOG.rst when we do the next release
19:44:15 <themroc> ./molecule/lint/yamllint.py:37: [E501] line too long (83 > 79 characters)
19:44:34 <ericsysmin> actually about that can we add more matching to the EXXX errors in Molecule lint, I've found we don't have a very good comparison between Lint on Molecule, and Lint on Galaxy, no idea why.
19:44:41 <gundalow> meh, I'm happy with extending the max-line-length for CI
19:44:49 <gundalow> FYI for ansible/ansible it's 160 characters
19:45:05 <bcoca> i was pushing for 320 but i compromised at 160
19:45:07 <loomsen> 160 would be totally fine for me
19:45:09 <ericsysmin> +1 for extending
19:45:16 <themroc> +1 for extending
19:45:18 <fabianvf> +1
19:45:19 <loomsen> 320 as well, it's 2019
19:45:27 <gundalow> anyone fancy raising a PR to update to 160ch?
19:45:31 <ericsysmin> many times do we see long urls in ansible key pairs
19:45:40 <bcoca> as i keep saying 80 columns should have been extended in the 90s once we had 1024x800 resolutins be common
19:45:41 <ericsysmin> +1 for 320 lol too
19:45:52 <gundalow> 160char
19:45:58 <fabianvf> but it's so hard to read on my 34" 640x480 monitor
19:46:05 <loomsen> :D
19:46:14 <ericsysmin> fabianvf
19:46:18 <ericsysmin> lol
19:46:22 <gundalow> OK, we've got 15 minutes left
19:46:32 <bcoca> fabianvf: its easier if you have 3 x 27" monitors
19:46:37 <themroc> 160chars for all the linters then: flake8, yamllint, ansible-lint
19:46:42 <gundalow> themroc: correct
19:46:49 <bcoca> +10K to that
19:46:55 <gundalow> #agreed 160chars for all the linters then: flake8, yamllint, ansible-lint
19:46:55 <loomsen> yup
19:47:05 <gundalow> themroc: you fancy raising a PR to do that?
19:47:20 <bcoca> i would go 1 step further and add that to the 'code linting' that molecule's repo itself is subjected to
19:47:26 <gundalow> (or anyone else)
19:47:38 <ericsysmin> so what about the parity guys between the linting taking place on galaxy and that on molecule? I've noticed that Galaxy has started marking things that by default do not get checked in Molecule lint.
19:47:56 <gundalow> ericsysmin: going to have to deffer on that.
19:48:09 <gundalow> Just to set some context regarding medium to long-term plans, there have been some great comments on the agenda. From the Red Hat side we are working on fleshing out the plan for Content (roles, modules, plugins) in Galaxy. Molecule will be an important part of that as it gives developers the ability to add in integration tests. I will make sure we keep everybody in the loop.
19:48:13 <themroc> i could do that yes. never done it for flake8
19:49:15 <themroc> https://github.com/ansible/molecule/issues/1699
19:49:36 <gundalow> Thanks :)
19:49:50 <gundalow> #topic Backlog
19:50:31 <gundalow> #info Some great work has been done already in https://etherpad.openstack.org/p/ansible-molecule on Triage (currently startong on line 28)
19:51:02 <gundalow> Would be interested what people think of
19:51:02 <gundalow> * potentially closed:
19:51:02 <gundalow> * https://github.com/ansible/molecule/issues/1597
19:51:02 <gundalow> * https://github.com/ansible/molecule/issues/1667
19:51:02 <gundalow> * https://github.com/ansible/molecule/issues/1601
19:51:02 <gundalow> * https://github.com/ansible/molecule/issues/1587
19:52:13 <gundalow> #action If people have some spare time to have a look at the backlog of Issues and PRs that would be ace. There are most likely some older items that we can close
19:53:23 <themroc> 1597 -> dockerfile should soon use use pip install molecule[extras], so it means adding a new extra
19:53:33 <awcrosby> ericsysmin: that could be caused if molecule is using an older version of `ansible-lint` than galaxy
19:54:11 <bcoca> is that configurable or just hardcoded in requirements?
19:54:37 <themroc> and in that area, i would prefer that all of this work is done in the ansible extras
19:54:50 <ericsysmin> I can check but on travis-ci everything is always latest
19:55:17 <themroc> for now we have extras only for windows, and for the rest you have to crawl in the doc for all pip install something that you have to do
19:56:04 <gundalow> I thought we had `molecule[azure]` etc
19:56:34 <awcrosby> bcoca: not sure if it's configurable or not, but i see molecule reqs using `ansible-lint==3.5.1` with galaxy using 4.0.0
19:57:03 <themroc> awcrosby, there is a PR  in the queue to upgrade to 4.0.2
19:57:04 <gundalow> (or is that something different)
19:57:07 <ericsysmin> +1 for making them match
19:57:08 <themroc> 4.0.1 sorry
19:57:13 <gundalow> awcrosby: we've got a PR to update that
19:57:19 <awcrosby> ok great
19:57:26 <loomsen> something automatic would be great wouldn't it
19:57:33 <bcoca> they will probably mismatch in future again unless we sync releases
19:57:38 <loomsen> otherwise there's always somebody trailing
19:57:43 <loomsen> yeah
19:57:51 <ericsysmin> at least keep major releases close
19:57:51 <gundalow> awcrosby: https://github.com/ansible/molecule/pull/1675/files
19:57:51 <gundalow> `ansible-lint>=4.0.1,<5`
19:58:04 <bcoca> dere U go
19:58:14 <fabianvf> I'm going to need to drop out, but glad we got these meetings started and looking forward to watching the project grow :)
19:58:15 <fabianvf> cheers all
19:58:16 <ericsysmin> sweet
19:58:28 <gundalow> fabianvf: thanks for your time :)
19:58:41 <loomsen> cu fabianvf
20:01:32 <gundalow> awcrosby: Are you OK with https://github.com/ansible/molecule/pull/1675/files
20:02:10 <awcrosby> gundalow: yeah that makes sense
20:03:02 <webknjaz> gundalow: Ansible supports 2.7+ on controller, we shouldn't support 2.6 in Molecule therefore
20:03:20 <gundalow> oh, did I say 2.6, my bad
20:03:24 <gundalow> webknjaz: you should be on holiday
20:03:33 <gundalow> awcrosby: ace, could you add a +1 on the PR please
20:03:56 <webknjaz> Yeah, I just wanted to check in from mobile
20:05:18 <themroc> python 2.7+ ?
20:06:15 <gundalow> https://docs.ansible.com/ansible/devel/dev_guide/developing_python_3.html#minimum-version-of-python-3-x-and-python-2-x
20:06:15 <gundalow> > On the controller we support Python 3.5 or greater and Python 2.7 or greater.
20:06:15 <gundalow> > Module-side, we support Python 3.5 or greater and Python 2.6 or greater.
20:06:38 <themroc> hey so https://github.com/ansible/molecule/pull/1693 can be killed !
20:07:05 <gundalow> themroc: well need 3.5
20:07:12 <gundalow> themroc: appologies for giving you old info :(
20:07:22 <gundalow> and 27
20:07:30 <gundalow> oh, 27 already in
20:08:52 <themroc> so just add 35, and keep 37 even if not in ansible yet
20:09:35 <gundalow> yup
20:10:28 <loomsen> i gotta go too guys, good talk. see you next time :)
20:11:06 <gundalow> #topic Open Floor
20:11:12 <gundalow> Anyone got any final bits?
20:12:16 <gundalow> #info This has been really good, thank you all for your time. I hope people have found it useful. Feel free to ping me in here (or directly) if you have any feedback, always looking for suggestions
20:13:17 <themr0c> ok, thank you for all !
20:13:44 <gundalow> #endmeeting