19:00:01 #startmeeting Ansible Molecule Working Group 19:00:01 Meeting started Wed Jan 23 19:00:01 2019 UTC. 19:00:01 This meeting is logged and archived in a public location. 19:00:01 The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:01 Useful Commands: #action #agreed #halp #info #idea #link #topic. 19:00:01 The meeting name has been set to 'ansible_molecule_working_group' 19:00:25 Hello! Who's joining us today? 19:00:50 do I raise my hand or state my name or something? 19:00:51 me 19:00:52 hi folks 19:00:57 hello 19:01:00 I'm here 19:01:40 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 I'm part of the Ansible Team 19:02:53 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 im a bot that trolls random irc channels 19:03:48 :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 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 Sorry, I was in the wrong channel. Do we have a topic we're discussing? 19:05:07 sdoran: just intros 19:05:14 Roger. 19:05:32 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 FYI, this meeting is logged, thanks to zodbot 19:05:48 I'm Sam Doran, a Senior Software Engineer at Red Hat working an Ansible Core. 19:05:55 *on 19:06:05 oh yeah I'm at red hat too 19:06:31 #chair fabianvf ericsysmin loomsen themroc alongchamps bcoca sdoran 19:06:31 Current chairs: alongchamps bcoca ericsysmin fabianvf gundalow loomsen sdoran themroc 19:06:41 Cool, thanks 19:07:24 #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 I'm just interested in getting involved with ansible and getting started on module 19:07:40 s/module/molecule/ 19:07:46 #info House Keeping 19:08:03 #info agenda https://github.com/ansible/community/issues/427 Feel free to add things as you see fit 19:08:19 #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 Meeting logs will be recorded, feel free to assign yourself actions by doing `#action gundalow to review PR1234` 19:08:26 I’m a Product Manager on the Ansible team and arranged for us to adopt Molecule as an official project here. 19:08:43 tima: Great work :) 19:08:46 nice, good call it's awesome 19:08:53 Thanks. 19:09:07 tima: does that mean official support will also come with use of molecule and with it a documentation team? 19:09:34 tima: Also got `ansible-lint` 19:09:39 #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 Define official. ;) 19:09:46 #info for example on a review saying `Would this be clearer if...` - invites discussion 19:09:52 #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 ^ some background reading for you :) 19:10:21 #chair tima 19:10:21 Current chairs: alongchamps bcoca ericsysmin fabianvf gundalow loomsen sdoran themroc tima 19:10:38 Was working on a docs team from day one. That’s been sidetracked. 19:10:51 Unfortunately. :/ 19:11:09 themroc: 19:11:18 themroc: you mentioned about the molecule docker image 19:11:23 yes 19:11:34 couldn't we just jenkins or use travis-ci to build it? 19:11:39 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 ericsysmin, there is a new image published there https://quay.io/repository/ansible/molecule?tab=info 19:12:40 which is the new official one 19:12:43 #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 got it, thanks themroc 19:14:29 gundalow, so maybe an offical ansible image including ansible-lint and molecule ? 19:14:30 * First meeting, so lots to discuss, though from reviewing the agenda there seems to be agreement around: 19:14:30 1) What's left before we can release the next version of Molecule 19:14:30 2) How do we keep on top of the backlog 19:14:30 3) Getting started docs 19:14:30 4) Steps needed to improve CI testing 19:14:30 Does that sound OK? 19:15:17 sounds good to me 19:15:22 +1 19:15:32 #topic Molecule Releases 19:16:06 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 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 +1 19:17:11 yup 19:17:21 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 when is 'next release' aimed at 19:17:58 ? 19:18:07 #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 #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 mainly asking for 1671 since it is intro of 'collection' support and we might want to have that for 2.8 19:18:40 nice CI btw! 19:18:56 #action If people think their are unmerged PRs/Issues that should be included in that release please let me know 19:19:10 ^ just did? 19:19:27 its wip still, but should def aim to next release 19:19:30 bcoca: thanks added 19:19:35 https://github.com/ansible/molecule/pull/1698 -- could fix recurrent travis fail due to timeout on python 2 builds 19:19:42 If it's not ready by next release, can move into n+1 19:20:21 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 That may need to be the case @gundalow. Adding collection support is a big ticket item. 19:20:48 also, there is no way to create docker networks first, so that should be addressed i think 19:21:06 tima: yup, good point 19:21:39 For instance molecule will need to port and integrate some part of Ansible-test 19:21:53 #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 And probably lay the foundation for the rest. 19:22:36 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 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 fabianvf: cool so 1615 is merged so will be in the next release 19:23:34 #info Every merge into `master` is available via PyPi (I just can't remember the syntax) 19:23:38 confused: repo has tags for and up to 'stable-1.25' but latest stable release is 2.19 ? 19:23:58 gundalow: you can also just use pip against repo directly 19:24:15 yup, though we have named as well 19:24:23 pip2 install git+git://github.com/ansible/molecule@master 19:24:30 yeah we're currently pip installing the repo directly, it's not blocking our development efforts 19:24:30 ^ what i'm currenetly using 19:24:35 https://github.com/ansible/molecule/pull/1695 -- fix the actual lint errors 19:24:55 mine depends on that ↑ 19:25:30 loomsen: Could you please add a comment on your PR saying it depends on ^ 19:25:37 Makes it easier when looking at CI failures 19:25:44 sure 19:25:47 Thanks :) 19:25:56 themroc: thanks, added 1695 to v2.20 as well 19:26:36 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 https://github.com/ansible/molecule/pull/1691/files -- nice to have 19:28:31 themroc: Thanks, added to v2.20 19:28:44 sdoran: You like to discuss 1659? 19:28:52 Yup. 19:29:16 #info https://github.com/ansible/molecule/pull/1659 19:29:17 Disable YAML lint truthy rule by default 19:29:20 #undo 19:29:20 Removing item from minutes: INFO by gundalow at 19:29:16 : https://github.com/ansible/molecule/pull/1659 19:29:24 #info https://github.com/ansible/molecule/pull/1659 Disable YAML lint truthy rule by default 19:29:27 sdoran: all yours 19:29:37 https://github.com/ansible/molecule/pull/1683 -- documentation 19:30:15 I essentially want the default molecule settings to match what we agreed in the docs meeting to standardize on for bools. 19:30:36 Sorry I need to drop for something else. Nice work all. 19:31:04 tima: Thanks for your time, I'll ping out the meeting long after 19:31:30 Otherwise we could have docs that give `yes`/`no` examples and they would fail `molecule lint` out of the box. 19:32:46 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 But that’s not implemented yet. 19:32:59 i understand, converting all yes/no to true false was an unexpected step when embracing molecule 19:33:33 linters have 'opinions' in many cases, not always correct ones 19:33:37 So when/if that is added to `yamllint` we could adjust the default Molecule settings to take advantage of it. 19:33:56 the real value of the test is if it refuses quoted "yes","no","true","false" which are not booleans 19:34:41 depends, only 'sure' way to not booleanize those is via !!str or similar 19:35:04 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 and that is only at yaml level, Ansible's jinja2 templating also recognizes yes/no as booleans 19:35:39 doesn't galaxy also mention this and warns on it? 19:35:43 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 %YAML 1.2 , iirc 19:36:07 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 so defaulting to that would be wrong for not only our case, but most cases 19:36:27 Exactly. 19:36:56 So even more reasons we should disable this rule by default. 19:37:10 +1 19:37:15 we disabled it 19:37:20 * bcoca queues office space 'printer beating' scene for this rule 19:37:25 +1 for disable it 19:37:37 #chair newswangerd 19:37:37 Current chairs: alongchamps bcoca ericsysmin fabianvf gundalow loomsen newswangerd sdoran themroc tima 19:37:45 What do others thing? 19:37:52 +1 first thing I disabled when I started using molecule 19:37:55 +1 for nixing rule 19:38:13 quesiton is rule in molecule or in lint? 19:38:16 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 It’s the default yamllint config that ships with Molecule. 19:38:45 bcoca, it is yamllint configuration file generated by molecule init 19:38:51 So it’s molecule’s invocation of yamllint. 19:38:54 gtk 19:39:35 That’s all for me. 19:39:40 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 you mean for molecule install? 19:40:02 yep 19:40:18 maybe we do need a guide but on CentOS i didn't have an issue 19:40:23 no pip in RHEL? 19:40:32 bcoca: Got a summary of what the specific issues were on RHEL? 19:40:34 themroc: no, requires SCL 19:40:43 adn even if you get pip, gcc and many other deps 19:40:46 can't you use easy_install? 19:40:51 gundalow: i really gave up at SCL 19:40:59 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 ah 19:41:27 like literally RHEL not the family but the official RHEL. 19:41:41 yep, specially if it means 'w/o EPEL' 19:41:44 #action gundalow to make a note that we may need RHEL/atomic systems specific install docs. `SCL`, gcc+ headers 19:41:51 #undo 19:41:51 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 #action gundalow to make a note that we may need RHEL (without EPEL) specific install docs. `SCL`, gcc+ headers 19:42:03 the docker image is a good pick in that situation 19:42:08 (added without EPEL) 19:42:15 sdoran: Do you have what you need? 19:43:04 I guess I just need to fix the tests and have someone merge that PR. 19:43:25 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 +1 for disabling truthy (as the comment remembers, it was even disabled by default some time ago) 19:43:36 #action sdoran to fix test for 1659, gundalow will merge once green 19:43:37 Are there changelogs I need to update? 19:44:04 sdoran: oh, yes if you could update https://github.com/ansible/molecule/blob/master/CHANGELOG.rst 19:44:11 hum, will need to update https://github.com/ansible/molecule/blob/master/CHANGELOG.rst when we do the next release 19:44:15 ./molecule/lint/yamllint.py:37: [E501] line too long (83 > 79 characters) 19:44:34 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 meh, I'm happy with extending the max-line-length for CI 19:44:49 FYI for ansible/ansible it's 160 characters 19:45:05 i was pushing for 320 but i compromised at 160 19:45:07 160 would be totally fine for me 19:45:09 +1 for extending 19:45:16 +1 for extending 19:45:18 +1 19:45:19 320 as well, it's 2019 19:45:27 anyone fancy raising a PR to update to 160ch? 19:45:31 many times do we see long urls in ansible key pairs 19:45:40 as i keep saying 80 columns should have been extended in the 90s once we had 1024x800 resolutins be common 19:45:41 +1 for 320 lol too 19:45:52 160char 19:45:58 but it's so hard to read on my 34" 640x480 monitor 19:46:05 :D 19:46:14 fabianvf 19:46:18 lol 19:46:22 OK, we've got 15 minutes left 19:46:32 fabianvf: its easier if you have 3 x 27" monitors 19:46:37 160chars for all the linters then: flake8, yamllint, ansible-lint 19:46:42 themroc: correct 19:46:49 +10K to that 19:46:55 #agreed 160chars for all the linters then: flake8, yamllint, ansible-lint 19:46:55 yup 19:47:05 themroc: you fancy raising a PR to do that? 19:47:20 i would go 1 step further and add that to the 'code linting' that molecule's repo itself is subjected to 19:47:26 (or anyone else) 19:47:38 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 ericsysmin: going to have to deffer on that. 19:48:09 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 i could do that yes. never done it for flake8 19:49:15 https://github.com/ansible/molecule/issues/1699 19:49:36 Thanks :) 19:49:50 #topic Backlog 19:50:31 #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 Would be interested what people think of 19:51:02 * potentially closed: 19:51:02 * https://github.com/ansible/molecule/issues/1597 19:51:02 * https://github.com/ansible/molecule/issues/1667 19:51:02 * https://github.com/ansible/molecule/issues/1601 19:51:02 * https://github.com/ansible/molecule/issues/1587 19:52:13 #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 1597 -> dockerfile should soon use use pip install molecule[extras], so it means adding a new extra 19:53:33 ericsysmin: that could be caused if molecule is using an older version of `ansible-lint` than galaxy 19:54:11 is that configurable or just hardcoded in requirements? 19:54:37 and in that area, i would prefer that all of this work is done in the ansible extras 19:54:50 I can check but on travis-ci everything is always latest 19:55:17 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 I thought we had `molecule[azure]` etc 19:56:34 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 awcrosby, there is a PR in the queue to upgrade to 4.0.2 19:57:04 (or is that something different) 19:57:07 +1 for making them match 19:57:08 4.0.1 sorry 19:57:13 awcrosby: we've got a PR to update that 19:57:19 ok great 19:57:26 something automatic would be great wouldn't it 19:57:33 they will probably mismatch in future again unless we sync releases 19:57:38 otherwise there's always somebody trailing 19:57:43 yeah 19:57:51 at least keep major releases close 19:57:51 awcrosby: https://github.com/ansible/molecule/pull/1675/files 19:57:51 `ansible-lint>=4.0.1,<5` 19:58:04 dere U go 19:58:14 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 cheers all 19:58:16 sweet 19:58:28 fabianvf: thanks for your time :) 19:58:41 cu fabianvf 20:01:32 awcrosby: Are you OK with https://github.com/ansible/molecule/pull/1675/files 20:02:10 gundalow: yeah that makes sense 20:03:02 gundalow: Ansible supports 2.7+ on controller, we shouldn't support 2.6 in Molecule therefore 20:03:20 oh, did I say 2.6, my bad 20:03:24 webknjaz: you should be on holiday 20:03:33 awcrosby: ace, could you add a +1 on the PR please 20:03:56 Yeah, I just wanted to check in from mobile 20:05:18 python 2.7+ ? 20:06:15 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 > On the controller we support Python 3.5 or greater and Python 2.7 or greater. 20:06:15 > Module-side, we support Python 3.5 or greater and Python 2.6 or greater. 20:06:38 hey so https://github.com/ansible/molecule/pull/1693 can be killed ! 20:07:05 themroc: well need 3.5 20:07:12 themroc: appologies for giving you old info :( 20:07:22 and 27 20:07:30 oh, 27 already in 20:08:52 so just add 35, and keep 37 even if not in ansible yet 20:09:35 yup 20:10:28 i gotta go too guys, good talk. see you next time :) 20:11:06 #topic Open Floor 20:11:12 Anyone got any final bits? 20:12:16 #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 ok, thank you for all ! 20:13:44 #endmeeting