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