19:00:10 <gundalow> #startmeeting Ansible Molecule Working Group
19:00:10 <zodbot> Meeting started Wed Jan 30 19:00:10 2019 UTC.
19:00:10 <zodbot> This meeting is logged and archived in a public location.
19:00:10 <zodbot> The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot.
19:00:10 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic.
19:00:10 <zodbot> The meeting name has been set to 'ansible_molecule_working_group'
19:00:29 * Duck o/
19:00:41 <gundalow> hey, who's around?
19:00:46 <dachary> \o
19:00:58 <alongchamps> here for the first 20 minutes
19:01:22 <singuliere> \o
19:01:23 <loomsen> o/
19:02:01 <themroc> \o
19:02:08 <gundalow> #chair Duck dachary loomsen themroc alongchamps singuliere
19:02:08 <zodbot> Current chairs: Duck alongchamps dachary gundalow loomsen singuliere themroc
19:02:27 <gundalow> #info Agenda https://github.com/ansible/community/issues/427 (feel free to add things)
19:02:37 <gundalow> #info welcome to the SECOND Molecule Working Group
19:02:43 <gundalow> (meeting)
19:02:45 <Pilou> o/
19:03:43 <gundalow> #chair Pilou
19:03:43 <zodbot> Current chairs: Duck Pilou alongchamps dachary gundalow loomsen singuliere themroc
19:03:45 <gundalow> hey :)
19:03:57 <gundalow> decentral1se: you around?
19:04:12 <gundalow> ChrisShort: you around?
19:04:41 <Pilou> As a first step, should not PRs related to the CI reviewed ?
19:04:49 <gundalow> Pilou: Excellent!
19:04:53 <gundalow> #topic CI
19:04:55 <ChrisShort> in two meetings at once, woohoo
19:05:27 <singuliere> https://github.com/ansible/molecule/pulls/themr0c are CI related PRs if I'm not mistaken
19:05:39 <gundalow> #info ansible-lint (upstream) will be updating to use 160 chars (rather than current 120)
19:05:48 <gundalow> and maybe some of https://github.com/ansible/molecule/labels/tests
19:06:18 <gundalow> themroc: Would you be able to guide us through your PRs?
19:06:40 <gundalow> ChrisShort: cool, probs got 10-20 minutes on CI first
19:06:57 <dachary> It would be super useful to bundle all commits fixing the CI into one PR that is *green* :-)
19:07:00 <themroc> okay https://github.com/ansible/molecule/pull/1695
19:07:36 <themroc> i consider it done, even if some things could be improved later
19:07:54 <gundalow> I'm happy to be pragmatic here
19:08:29 <themroc> i consider last open comment on the PR could be discussed later, and kept out fo scope of current PR
19:08:36 <fabianvf> Sorry, I'm here too
19:08:44 <Pilou> +1
19:08:48 <dachary> +1
19:09:30 <loomsen> +1
19:09:39 <gundalow> Cool, just for the record, could people please add GitHub review on the PRs, makes it clearer than I'm not just getting bored and hitting merge on PRs :)
19:09:43 <gundalow> #chair fabianvf
19:09:43 <zodbot> Current chairs: Duck Pilou alongchamps dachary fabianvf gundalow loomsen singuliere themroc
19:10:01 <dachary> Is there a PR fixing this error https://travis-ci.com/ansible/molecule/jobs/174019977#L641 (this is the error showing on the CI that ran on the tip of the master branch)
19:10:35 <themroc> https://github.com/ansible/molecule/issues/1700 - should be closed as today the fix was merged
19:11:09 <themroc> (https://github.com/ansible/molecule/pull/1698)
19:12:19 <ssbarnea> not sure about the agenga, but if possible I would like to open the subject of pre-releases.
19:12:35 <gundalow> #chair ssbarnea
19:12:35 <zodbot> Current chairs: Duck Pilou alongchamps dachary fabianvf gundalow loomsen singuliere ssbarnea themroc
19:12:53 <gundalow> ssbarnea: FYI all commits are available via testing PyPi
19:13:03 <decentral1se> hey folks, sorry, lurking but can't make it now
19:13:05 <ssbarnea> i would like to see CI making pre-releases on pypi.org (not test.pypi.org) so we can consume/install them using pip install --pre
19:13:10 <Pilou> how could a release be done without a working CI :) ?
19:13:13 <dachary> ssbarnea: I would love a release but ... without a working CI this is kind of ... well :-)
19:13:32 <gundalow> #action once CI is green lets revisit pypi vs test.pypi
19:13:33 <themroc> https://github.com/ansible/molecule/pull/1693 - last comment is out of initial scope, so i guess it can be merged and next change done in a next PR
19:13:56 <gundalow> ssbarnea: OK, recorded, we can revisit that once CI is green. Feel free to add it to the agenda so we don't lose it for the future
19:14:38 <themroc> https://github.com/ansible/molecule/pull/1691 - i didn't understand the comment :/
19:14:44 <ssbarnea> gundalow: i am not fully aware about the issues around non-green CI, just to know what needs to be done to make it and keep it green-ish.
19:15:27 <gundalow> ssbarnea: there are a number of CI improvement PRs (which we are currently going though) to get 1) CI on PR green 2) CI Cron green
19:15:35 <dachary> does someone understand what the error is at https://travis-ci.com/ansible/molecule/jobs/174019977#L641? I
19:16:01 <themroc> https://github.com/ansible/molecule/pull/1676 - is not related to the CI but to the behaviour of molecule (and it is a nice idea)
19:16:04 <dachary> the CI won't be green unless someone does
19:16:16 <dachary> I'm sorry to say I don't :-(
19:16:29 <Pilou> +1 for #1693
19:16:34 <gundalow> themroc: Want me to hit merge on https://github.com/ansible/molecule/pull/1695 FYI I've raised https://github.com/ansible/molecule/issues/1710 to track reviewing all requirement.txt type files
19:18:31 <gundalow> `1694 lint errors #1695` merged
19:18:36 <themroc> nice
19:18:47 <loomsen> nice
19:19:06 <singuliere> nice
19:19:29 <dachary> nice
19:19:33 <themroc> i don't know if there is something already ongoing for the recurrent buil fail on 'functional tests shard 1/3', any ansible, any python
19:19:52 <themroc> but that's the next target for a green ci
19:19:55 <dachary> Pilou: is trying to reproduce it locally rightnow
19:20:17 <dachary> it would be worth tweaking the CI run to not trim the error output :-)
19:20:18 <ssbarnea> themroc: re #1976, the cleanup: i am not sure when it is really needed and if for example prepare could not do the same maybe? code looks ok but i am more worried about the use-case.
19:20:37 <dachary> E           └── default
19:20:37 <dachary> E               ├─�... (14020 more, please see e.stdout)
19:20:56 <gundalow> https://github.com/ansible/molecule/pull/1693#pullrequestreview-197044889 does it mean
19:20:56 <gundalow> py{27,35,36,37}-lint
19:20:56 <gundalow> py{27,35,36,37}-ansible{25,26,27}-{functional,unit}
19:20:56 <gundalow> So linters run first (and give feedback first)?
19:22:42 <themroc> aaaaah ok
19:22:48 <gundalow> I'm guessing
19:23:43 <themroc> on travis it's already the case
19:23:51 <themroc> so not relevant
19:24:04 <themroc> but on woorkstation it could make sense indeed
19:25:26 * dachary trying to figure out where in molecule/tox.ini the verbosity could be turned up
19:25:38 <dachary> changing
19:25:39 <dachary> functional: pytest test/functional/ {posargs}
19:25:41 <dachary> to
19:25:49 <dachary> functional: pytest -vvv test/functional/ {posargs}
19:25:51 <dachary> maybe?
19:28:43 <gundalow> themroc: rebase then i guess we can merge https://github.com/ansible/molecule/pull/1693
19:28:54 <themroc> hey master has now:  lint and py{27,36,37}-ansible{24,25,26,27}-{functional,unit}
19:28:57 <gundalow> (feel free to just ping me here once that's done, no need to rebase it now)
19:29:29 <singuliere> running the CI with -vvv at https://github.com/ansible/molecule/pull/1711 to try to get a meaningfull error message for https://travis-ci.com/ansible/molecule/jobs/174019977#L641?
19:29:32 <Duck> more debug for pytest seems a good idea, it is not too spammy
19:29:54 <themroc> 1693 : lint has already been simplified and put first on master
19:30:17 <themroc> so the PR at the end will be just adding py35
19:31:10 <themroc> which could maybe kept untested to keep CI running only 5 hours
19:31:40 <themroc> so i have no problem if the PR ends up closed and not implemented
19:32:14 <themroc> ah and adding ansible24
19:33:44 * ericsysmin here
19:35:09 <Pilou> i am able to reproduce error using "tox -- -k test_host_group_vars test/functional/docker/test_scenarios.py -s -vvv"
19:35:56 <themroc> build error was introduced between https://travis-ci.com/ansible/molecule/builds/98435144 and https://travis-ci.com/ansible/molecule/builds/98439716
19:36:02 <dachary> Pilou: could you please copy/paste the output ?
19:36:30 <dachary> I think you should -e py27-ansible25-functional to furthe limit the scope of the tests
19:36:40 <dachary> *further
19:38:29 <loomsen> a guide on how to trigger tests locally could be useful, maybe?
19:40:06 * dachary tries to remember how to not limit the output of the sh module
19:40:07 <Pilou> loomsen: i followed https://molecule.readthedocs.io/en/latest/testing.html#dependencies
19:40:50 * dachary browsing https://amoffat.github.io/sh
19:41:04 <dachary> Pilou: the output is not truncated by pytest, it is truncated by the sh module by default
19:41:09 <loomsen> Pilou: thank you
19:41:09 <themroc> introduced by, which does not make really sense https://github.com/ansible/molecule/commit/37eb4d33c8b20e5256b070dd9e3445b3bff1053f
19:43:24 <gundalow> (sorry, got dragged into side discussion)
19:43:30 <themroc> https://github.com/ansible/molecule/issues/1626 - is it still relevant ?
19:45:12 <gundalow> stillbroken, though it's an issue withalabaster, not Molecule
19:49:45 <dachary> https://github.com/amoffat/sh/blob/master/sh.py#L380 is the reason why the error is truncated
19:50:02 <themroc> https://github.com/ansible/molecule/pull/1705 - It has been implemented in https://github.com/ansible/molecule/pull/1695 so
19:50:12 <themroc> 1705 can be closed
19:51:36 <gundalow> Nice
19:52:04 <vutkin> HI
19:53:03 <themroc> https://github.com/ansible/molecule/pull/1659 - i guess i can be merged now, all changes have been implemented as requested
19:54:25 <Pilou> http://paste.debian.net/1063714
19:54:41 <Pilou> dachary: log ^^
19:54:54 <themroc> https://github.com/ansible/molecule/pull/1574/files - can be closed, implemented by https://github.com/ansible/molecule/pull/1695 also
19:55:24 <gundalow> https://github.com/ansible/molecule/pull/1659  needs reabse (I've asked for one)
19:56:28 <gundalow> themroc: thanks, closed
19:57:47 <bwatson> lyr: thanks for the list
19:57:47 <Pilou> output of  ".tox/py27-ansible24-functional/bin/molecule test --all": http://paste.debian.net/hidden/333f7c56/
19:58:11 <themroc> https://github.com/ansible/molecule/pull/1547 - is this still relevant ? tox.ini has changed a lot since
19:59:19 <themroc> ssbarnea, that's one for you ;)
19:59:21 <Pilou> themroc: should "[204] Lines should be no longer than 120 chars" be fixed by #1701 ?
20:00:36 <themroc> Pilou, this was left intentionnally out of scope
20:01:58 <themroc> impact is on flake8, yamllint, pylint only
20:02:03 <Pilou> indeed, I just try with 1699-lint-at-160, error still there
20:02:16 <dachary> got to run, happy to see you managed to reproduce the error that breaks the CI. Sorry I was not able to figure out how to convince sh not to truncate error messages. Somewhere _truncate_exc=False should be set https://github.com/amoffat/sh/blob/master/sh.py#L1151
20:02:43 <Pilou> themroc: this one is related to ansible-lint then ?
20:02:45 <dachary> but... there are zillions of indirections before sh is actually called, in conftest.py and I got lost :-)
20:03:10 <gundalow> dachary: Thank you for your time :)
20:07:11 <themroc> shoul i create an issue on GH for the remaining CI issue ?
20:07:26 <Pilou> will do
20:07:54 <themroc> ok
20:08:09 * Duck :-)
20:08:14 <themroc> and you will find the solution ? :p
20:08:50 <Pilou> will do ;)
20:09:55 <themroc> good news
20:10:52 <themroc> i guess the "broken ci" topic of the day can be closed. Is there any time for next topics ?
20:11:12 <gundalow> If people have a bit of time, sure
20:11:22 <loomsen> i do :)
20:11:26 <ericsysmin> all the time in the world for you gundalow
20:11:33 <ericsysmin> lol
20:12:00 <gundalow> ericsysmin: I saw someone with one of your rucksacks on on Monday
20:12:13 <gundalow> ChrisShort: you there/
20:12:24 <ericsysmin> gundalow: oh were at?
20:12:31 <ChrisShort> yes
20:12:33 <gundalow> ericsysmin: Ansible Automates London
20:12:42 <themroc> last one for me : https://github.com/ansible/molecule/pull/1701 what now?
20:12:57 <gundalow> #topic Molecule Verifiers
20:13:01 <gundalow> fabianvf: ^
20:13:02 <ericsysmin> gundalow: cool! dude Avi is spreading like fire now
20:13:05 <gundalow> ChrisShort: floow is all yours
20:13:09 <gundalow> also the floor
20:13:18 <gundalow> #info https://github.com/ansible/community/issues/427#issuecomment-457533638
20:13:23 <ChrisShort> ty for the link
20:14:00 <ChrisShort> In building and attempting to test Ansible Operators on OpenShift the need to have a different verifier became VERY apparent
20:14:47 <ericsysmin> I noticed the systemd issue people mentioned, is it possible for molecule to create ones with systemd there
20:14:50 <ChrisShort> Trying to spin up a test cluster to verify was not easily done and we ended up scrapping the idea of that step
20:15:03 <loomsen> i +1 that very much. i see us writing more and more kubernetes related roles, would be nice to have a way to test that
20:15:13 <gundalow> #chair ChrisShort
20:15:13 <zodbot> Current chairs: ChrisShort Duck Pilou alongchamps dachary fabianvf gundalow loomsen singuliere ssbarnea themroc
20:15:24 <gundalow> Would welcome views from others on this :)
20:15:45 <ericsysmin> +1 as well for increase in kubernetes roles
20:16:01 <ChrisShort> I would propose Ansible itself be an option for the Verify task and potentially InSpec if not overly difficult.
20:16:23 <fabianvf> Yeah, we're trying to sell people on the idea that you can manage your applications on Kubernetes with Ansible, and pointing them to a third-party tool for the actual verification logic feels really off (especially since Ansible is one of the easiest ways to query the cluster currently IMO)
20:16:31 <loomsen> i do like the simplicity of goss (my pr is related to that as well, hehe)
20:16:39 <ericsysmin> yea, i mean k8s module is pretty amazing
20:17:16 <ChrisShort> Here's the problem with goss. It's not the Ansible way of doing things. The syntax is not exactly user friendly.
20:17:31 <ChrisShort> Also, +1 fabianvf
20:17:45 <loomsen> what do you mean ChrisShort ? it's yaml
20:18:12 <ericsysmin> ChrisShort: are you specifically talking about verifying options are valid once delclared?
20:18:18 <ericsysmin> declared*
20:18:35 <ericsysmin> because the markup validation is yaml
20:18:35 <ChrisShort> Probably not because I have no idea what that means.
20:18:48 <themroc> inspec is already an option
20:18:48 <loomsen> :D
20:18:52 <themroc> as well as goss
20:19:31 <themroc> testinfra is only the default verifier
20:19:49 <themroc> at my work we use goss on linux, inspec on windows
20:20:14 <ChrisShort> The problem with having all the options aside from Ansible means Molecule users not only have to know Ansible, Molecule, their infrastructure but now have to learn yet another tool to verify outputs.
20:20:25 <loomsen> goss makes it very easy to use the exact same test files on molecule instances as on the actual provisioned machines, all with ansible. so yeah, we're currently migrating our tests from testinfra to goss too
20:20:44 <themroc> and the fact that the audit is done by a third party tool (not ansible) is very relevant to us
20:20:58 <loomsen> ChrisShort: but that's even more true for testinfra and writing python tests, isn't it?
20:21:00 <themroc> for testing containers we looked into dgoss
20:21:20 <ChrisShort> I understand that perspective themroc. I really do.
20:22:04 <ChrisShort> However, is a different command versus a different playbook really that big of a differentiator?
20:22:15 <themroc> (because, basically, we use the verifier to double check the situation when ansible ends green, but job is not done because the role was fucked up)
20:22:59 <fabianvf> IME verifying applications deployed on Kubernetes with InSpec/Goss/TestInfra/etc feels awkward, especially for the end-to-end integration style tests we're trying to do
20:23:10 <themroc> i really like the simplicity of goss, and the fact that we have to accept not everything is testable
20:23:56 <themroc> i was not convinced by the learning curve of testinfra and inspec, but, well, on windows goss does not exist
20:24:17 <loomsen> +1
20:24:19 <themroc> on kubernetes goss does not make sense indeed
20:24:33 <loomsen> yeah, that's kind of a missing link there
20:24:43 <loomsen> s/that/there
20:25:03 <themroc> dgoss maybe https://github.com/aelsabbahy/goss/tree/master/extras/dgoss
20:25:10 <fabianvf> what we end up doing, and I don't get the feeling this pattern is uncommon, is just importing an Ansible playbook at the end of converge, with a no-op verify step
20:25:16 <themroc> but really +1 on a missing link here
20:25:31 <ChrisShort> dgoss is only for Docker?
20:25:38 <loomsen> it's distributed goss
20:25:43 <loomsen> isn't it
20:25:58 <loomsen> oh no that was something else :D
20:27:22 <themroc> ChrisShort, to have more verifier would be nice anyway
20:27:40 <loomsen> dgoss looks nice, haven't used it yet
20:27:41 <fabianvf> but since Ansible already has nice support for querying cluster state and performing the sorts of tasks we need, it seems like adding support for an Ansible verifier makes at least as much sense as adding support for something like dgoss (or whatever an equivalent may be for Kubernetes)?
20:28:02 <themroc> +1
20:28:04 <ChrisShort> +1
20:28:06 <loomsen> +1
20:30:16 <loomsen> as we are talking goss anyway, any chance we can discuss my pr?
20:30:23 <loomsen> https://github.com/ansible/molecule/pull/1646
20:30:51 <loomsen> it got kind of messy, i'm fine to close it and open a new one against a then linter green master :)
20:31:00 <themroc> And even better: if Ansible exists as a verifier, let it be the default verifier, as ppl writing playbooks will be probably more comfortable with it than with testinfra
20:31:21 <loomsen> def
20:31:44 <ChrisShort> Yea... testinfra is a really high bar to clear as far as knowledge set
20:31:48 <ChrisShort> imho
20:31:53 <gundalow> fabianvf: ChrisShort any other info you need at this stage?
20:32:11 <ChrisShort> I'm good.
20:32:36 <gundalow> #topic Open Floor
20:33:09 <gundalow> #info https://github.com/ansible/molecule/pull/1646
20:34:15 <gundalow> loomsen: how can we help
20:34:31 <loomsen> so the PR adds the possibility to check individual hosts with goss.
20:35:10 <loomsen> it was approved twice, but the tests kept flapping, somehow. i don't think it's related to my changes though
20:38:28 <loomsen> however, i'd feel better if the CI was green, so I'm fine with closing this PR and opening a new one, referencing that one. just to tidy things up. but i'm not familiar with how you're doing things here, so, whatever you guys think :)
20:38:49 <gundalow> loomsen: we are working on getting CI green
20:39:06 <loomsen> yeah, i read that
20:39:25 <loomsen> i can wait
20:40:07 <themroc> for even more future imporvements of the verify.yml https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#gossfile
20:41:05 <themroc> use the  gossfile directive to run goss only once for all the goss files
20:41:57 <themroc> and get rid of that shell to register tests files an that loop to execute goss
20:42:28 <loomsen> oh yeah, that's nice
20:43:02 <themroc> that's what we use, but it has never been contributed back, sorry
20:45:08 <themroc> i triggered a new travis build
20:45:24 <loomsen> thank you, let's see how it goes :)
20:45:46 <themroc> #info https://github.com/ansible/molecule/issues?q=is%3Aopen+is%3Aissue+milestone%3Av2.20
20:45:57 <themroc> only 2 tickets left :)
20:46:49 <fabianvf> ericsysmin: you were talking about using molecule with Kubernetes, wanted to sync with you (and everyone else interested) since I'm doing a lot of work in that area atm
20:48:53 <themroc> so can we expect a release soon ?
20:52:14 <gundalow> themroc: do we want to get CI green first?
20:54:45 <dachary> I think we do
20:54:50 <dachary> but that's just me
20:54:50 <loomsen> +1
20:56:22 * gundalow agrees
20:56:47 <gundalow> Thank you everybody for your time
20:56:56 <gundalow> #endmeeting