19:00:10 #startmeeting Ansible Molecule Working Group 19:00:10 Meeting started Wed Jan 30 19:00:10 2019 UTC. 19:00:10 This meeting is logged and archived in a public location. 19:00:10 The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:10 Useful Commands: #action #agreed #halp #info #idea #link #topic. 19:00:10 The meeting name has been set to 'ansible_molecule_working_group' 19:00:29 * Duck o/ 19:00:41 hey, who's around? 19:00:46 \o 19:00:58 here for the first 20 minutes 19:01:22 \o 19:01:23 o/ 19:02:01 \o 19:02:08 #chair Duck dachary loomsen themroc alongchamps singuliere 19:02:08 Current chairs: Duck alongchamps dachary gundalow loomsen singuliere themroc 19:02:27 #info Agenda https://github.com/ansible/community/issues/427 (feel free to add things) 19:02:37 #info welcome to the SECOND Molecule Working Group 19:02:43 (meeting) 19:02:45 o/ 19:03:43 #chair Pilou 19:03:43 Current chairs: Duck Pilou alongchamps dachary gundalow loomsen singuliere themroc 19:03:45 hey :) 19:03:57 decentral1se: you around? 19:04:12 ChrisShort: you around? 19:04:41 As a first step, should not PRs related to the CI reviewed ? 19:04:49 Pilou: Excellent! 19:04:53 #topic CI 19:04:55 in two meetings at once, woohoo 19:05:27 https://github.com/ansible/molecule/pulls/themr0c are CI related PRs if I'm not mistaken 19:05:39 #info ansible-lint (upstream) will be updating to use 160 chars (rather than current 120) 19:05:48 and maybe some of https://github.com/ansible/molecule/labels/tests 19:06:18 themroc: Would you be able to guide us through your PRs? 19:06:40 ChrisShort: cool, probs got 10-20 minutes on CI first 19:06:57 It would be super useful to bundle all commits fixing the CI into one PR that is *green* :-) 19:07:00 okay https://github.com/ansible/molecule/pull/1695 19:07:36 i consider it done, even if some things could be improved later 19:07:54 I'm happy to be pragmatic here 19:08:29 i consider last open comment on the PR could be discussed later, and kept out fo scope of current PR 19:08:36 Sorry, I'm here too 19:08:44 +1 19:08:48 +1 19:09:30 +1 19:09:39 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 #chair fabianvf 19:09:43 Current chairs: Duck Pilou alongchamps dachary fabianvf gundalow loomsen singuliere themroc 19:10:01 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 https://github.com/ansible/molecule/issues/1700 - should be closed as today the fix was merged 19:11:09 (https://github.com/ansible/molecule/pull/1698) 19:12:19 not sure about the agenga, but if possible I would like to open the subject of pre-releases. 19:12:35 #chair ssbarnea 19:12:35 Current chairs: Duck Pilou alongchamps dachary fabianvf gundalow loomsen singuliere ssbarnea themroc 19:12:53 ssbarnea: FYI all commits are available via testing PyPi 19:13:03 hey folks, sorry, lurking but can't make it now 19:13:05 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 how could a release be done without a working CI :) ? 19:13:13 ssbarnea: I would love a release but ... without a working CI this is kind of ... well :-) 19:13:32 #action once CI is green lets revisit pypi vs test.pypi 19:13:33 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 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 https://github.com/ansible/molecule/pull/1691 - i didn't understand the comment :/ 19:14:44 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 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 does someone understand what the error is at https://travis-ci.com/ansible/molecule/jobs/174019977#L641? I 19:16:01 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 the CI won't be green unless someone does 19:16:16 I'm sorry to say I don't :-( 19:16:29 +1 for #1693 19:16:34 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 `1694 lint errors #1695` merged 19:18:36 nice 19:18:47 nice 19:19:06 nice 19:19:29 nice 19:19:33 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 but that's the next target for a green ci 19:19:55 Pilou: is trying to reproduce it locally rightnow 19:20:17 it would be worth tweaking the CI run to not trim the error output :-) 19:20:18 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 E └── default 19:20:37 E ├─�... (14020 more, please see e.stdout) 19:20:56 https://github.com/ansible/molecule/pull/1693#pullrequestreview-197044889 does it mean 19:20:56 py{27,35,36,37}-lint 19:20:56 py{27,35,36,37}-ansible{25,26,27}-{functional,unit} 19:20:56 So linters run first (and give feedback first)? 19:22:42 aaaaah ok 19:22:48 I'm guessing 19:23:43 on travis it's already the case 19:23:51 so not relevant 19:24:04 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 changing 19:25:39 functional: pytest test/functional/ {posargs} 19:25:41 to 19:25:49 functional: pytest -vvv test/functional/ {posargs} 19:25:51 maybe? 19:28:43 themroc: rebase then i guess we can merge https://github.com/ansible/molecule/pull/1693 19:28:54 hey master has now: lint and py{27,36,37}-ansible{24,25,26,27}-{functional,unit} 19:28:57 (feel free to just ping me here once that's done, no need to rebase it now) 19:29:29 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 more debug for pytest seems a good idea, it is not too spammy 19:29:54 1693 : lint has already been simplified and put first on master 19:30:17 so the PR at the end will be just adding py35 19:31:10 which could maybe kept untested to keep CI running only 5 hours 19:31:40 so i have no problem if the PR ends up closed and not implemented 19:32:14 ah and adding ansible24 19:33:44 * ericsysmin here 19:35:09 i am able to reproduce error using "tox -- -k test_host_group_vars test/functional/docker/test_scenarios.py -s -vvv" 19:35:56 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 Pilou: could you please copy/paste the output ? 19:36:30 I think you should -e py27-ansible25-functional to furthe limit the scope of the tests 19:36:40 *further 19:38:29 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 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 Pilou: the output is not truncated by pytest, it is truncated by the sh module by default 19:41:09 Pilou: thank you 19:41:09 introduced by, which does not make really sense https://github.com/ansible/molecule/commit/37eb4d33c8b20e5256b070dd9e3445b3bff1053f 19:43:24 (sorry, got dragged into side discussion) 19:43:30 https://github.com/ansible/molecule/issues/1626 - is it still relevant ? 19:45:12 stillbroken, though it's an issue withalabaster, not Molecule 19:49:45 https://github.com/amoffat/sh/blob/master/sh.py#L380 is the reason why the error is truncated 19:50:02 https://github.com/ansible/molecule/pull/1705 - It has been implemented in https://github.com/ansible/molecule/pull/1695 so 19:50:12 1705 can be closed 19:51:36 Nice 19:52:04 HI 19:53:03 https://github.com/ansible/molecule/pull/1659 - i guess i can be merged now, all changes have been implemented as requested 19:54:25 http://paste.debian.net/1063714 19:54:41 dachary: log ^^ 19:54:54 https://github.com/ansible/molecule/pull/1574/files - can be closed, implemented by https://github.com/ansible/molecule/pull/1695 also 19:55:24 https://github.com/ansible/molecule/pull/1659 needs reabse (I've asked for one) 19:56:28 themroc: thanks, closed 19:57:47 lyr: thanks for the list 19:57:47 output of ".tox/py27-ansible24-functional/bin/molecule test --all": http://paste.debian.net/hidden/333f7c56/ 19:58:11 https://github.com/ansible/molecule/pull/1547 - is this still relevant ? tox.ini has changed a lot since 19:59:19 ssbarnea, that's one for you ;) 19:59:21 themroc: should "[204] Lines should be no longer than 120 chars" be fixed by #1701 ? 20:00:36 Pilou, this was left intentionnally out of scope 20:01:58 impact is on flake8, yamllint, pylint only 20:02:03 indeed, I just try with 1699-lint-at-160, error still there 20:02:16 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 themroc: this one is related to ansible-lint then ? 20:02:45 but... there are zillions of indirections before sh is actually called, in conftest.py and I got lost :-) 20:03:10 dachary: Thank you for your time :) 20:07:11 shoul i create an issue on GH for the remaining CI issue ? 20:07:26 will do 20:07:54 ok 20:08:09 * Duck :-) 20:08:14 and you will find the solution ? :p 20:08:50 will do ;) 20:09:55 good news 20:10:52 i guess the "broken ci" topic of the day can be closed. Is there any time for next topics ? 20:11:12 If people have a bit of time, sure 20:11:22 i do :) 20:11:26 all the time in the world for you gundalow 20:11:33 lol 20:12:00 ericsysmin: I saw someone with one of your rucksacks on on Monday 20:12:13 ChrisShort: you there/ 20:12:24 gundalow: oh were at? 20:12:31 yes 20:12:33 ericsysmin: Ansible Automates London 20:12:42 last one for me : https://github.com/ansible/molecule/pull/1701 what now? 20:12:57 #topic Molecule Verifiers 20:13:01 fabianvf: ^ 20:13:02 gundalow: cool! dude Avi is spreading like fire now 20:13:05 ChrisShort: floow is all yours 20:13:09 also the floor 20:13:18 #info https://github.com/ansible/community/issues/427#issuecomment-457533638 20:13:23 ty for the link 20:14:00 In building and attempting to test Ansible Operators on OpenShift the need to have a different verifier became VERY apparent 20:14:47 I noticed the systemd issue people mentioned, is it possible for molecule to create ones with systemd there 20:14:50 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 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 #chair ChrisShort 20:15:13 Current chairs: ChrisShort Duck Pilou alongchamps dachary fabianvf gundalow loomsen singuliere ssbarnea themroc 20:15:24 Would welcome views from others on this :) 20:15:45 +1 as well for increase in kubernetes roles 20:16:01 I would propose Ansible itself be an option for the Verify task and potentially InSpec if not overly difficult. 20:16:23 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 i do like the simplicity of goss (my pr is related to that as well, hehe) 20:16:39 yea, i mean k8s module is pretty amazing 20:17:16 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 Also, +1 fabianvf 20:17:45 what do you mean ChrisShort ? it's yaml 20:18:12 ChrisShort: are you specifically talking about verifying options are valid once delclared? 20:18:18 declared* 20:18:35 because the markup validation is yaml 20:18:35 Probably not because I have no idea what that means. 20:18:48 inspec is already an option 20:18:48 :D 20:18:52 as well as goss 20:19:31 testinfra is only the default verifier 20:19:49 at my work we use goss on linux, inspec on windows 20:20:14 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 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 and the fact that the audit is done by a third party tool (not ansible) is very relevant to us 20:20:58 ChrisShort: but that's even more true for testinfra and writing python tests, isn't it? 20:21:00 for testing containers we looked into dgoss 20:21:20 I understand that perspective themroc. I really do. 20:22:04 However, is a different command versus a different playbook really that big of a differentiator? 20:22:15 (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 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 i really like the simplicity of goss, and the fact that we have to accept not everything is testable 20:23:56 i was not convinced by the learning curve of testinfra and inspec, but, well, on windows goss does not exist 20:24:17 +1 20:24:19 on kubernetes goss does not make sense indeed 20:24:33 yeah, that's kind of a missing link there 20:24:43 s/that/there 20:25:03 dgoss maybe https://github.com/aelsabbahy/goss/tree/master/extras/dgoss 20:25:10 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 but really +1 on a missing link here 20:25:31 dgoss is only for Docker? 20:25:38 it's distributed goss 20:25:43 isn't it 20:25:58 oh no that was something else :D 20:27:22 ChrisShort, to have more verifier would be nice anyway 20:27:40 dgoss looks nice, haven't used it yet 20:27:41 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 +1 20:28:04 +1 20:28:06 +1 20:30:16 as we are talking goss anyway, any chance we can discuss my pr? 20:30:23 https://github.com/ansible/molecule/pull/1646 20:30:51 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 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 def 20:31:44 Yea... testinfra is a really high bar to clear as far as knowledge set 20:31:48 imho 20:31:53 fabianvf: ChrisShort any other info you need at this stage? 20:32:11 I'm good. 20:32:36 #topic Open Floor 20:33:09 #info https://github.com/ansible/molecule/pull/1646 20:34:15 loomsen: how can we help 20:34:31 so the PR adds the possibility to check individual hosts with goss. 20:35:10 it was approved twice, but the tests kept flapping, somehow. i don't think it's related to my changes though 20:38:28 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 loomsen: we are working on getting CI green 20:39:06 yeah, i read that 20:39:25 i can wait 20:40:07 for even more future imporvements of the verify.yml https://github.com/aelsabbahy/goss/blob/master/docs/manual.md#gossfile 20:41:05 use the gossfile directive to run goss only once for all the goss files 20:41:57 and get rid of that shell to register tests files an that loop to execute goss 20:42:28 oh yeah, that's nice 20:43:02 that's what we use, but it has never been contributed back, sorry 20:45:08 i triggered a new travis build 20:45:24 thank you, let's see how it goes :) 20:45:46 #info https://github.com/ansible/molecule/issues?q=is%3Aopen+is%3Aissue+milestone%3Av2.20 20:45:57 only 2 tickets left :) 20:46:49 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 so can we expect a release soon ? 20:52:14 themroc: do we want to get CI green first? 20:54:45 I think we do 20:54:50 but that's just me 20:54:50 +1 20:56:22 * gundalow agrees 20:56:47 Thank you everybody for your time 20:56:56 #endmeeting