17:00:04 #startmeeting Ansible Testing Working Group 17:00:04 Meeting started Thu Aug 16 17:00:04 2018 UTC. 17:00:04 This meeting is logged and archived in a public location. 17:00:04 The chair is gundalow. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:00:04 Useful Commands: #action #agreed #halp #info #idea #link #topic. 17:00:04 The meeting name has been set to 'ansible_testing_working_group' 17:00:12 #chair mattclay jtanner 17:00:12 Current chairs: gundalow jtanner mattclay 17:00:33 hello 17:00:40 \o 17:00:51 * mattclay waves 17:01:31 #chair shertel 17:01:31 Current chairs: gundalow jtanner mattclay shertel 17:04:06 jtanner: did you have something? 17:04:13 feel free to #topic foo 17:04:19 hi 17:04:24 no, just wanted to get whole team interested in testing 17:04:29 ah 17:04:58 #topic Core Testing update 17:06:18 #info work continues on getting Zuul to test ansible/ansible, this is currently running on `ansible/zuul-test-repo` (fork). 17:07:00 #info Currently working on using `groupsN` to allow jobs to be run in parallel, like we do with Windows in Shippable 17:08:08 f#info Once that is done I'm looking at two state process for identifying and running tests against PRs that affect multiple network platforms 17:08:23 #info Once that is done I'm looking at two state process for identifying and running tests against PRs that affect multiple network platforms 17:08:42 Feel free to ping me for more details, there will be a demo once it's a bit further 17:09:03 Any Qs on that now? 17:09:33 #info integration test container repositories (`ansible/*-test-container`) now include basic CI for the docker builds (except the `acme-test-container`, which will be enabled later) 17:10:01 Initially Zuul is for Networking (and OpenStack), though no reason we couldn't use it to test anything we don't have direct access for 17:11:41 mattclay: what's the plan for supporting all those container repos? 17:11:52 jtanner: support in what sense? 17:11:57 could be possibly open up commit access to those individuals? 17:12:02 s/be/we 17:12:28 mattclay: worth detailing the two step update process? 17:12:40 (or however many steps for build/tag/ansible-test) 17:15:02 jtanner: Are you just thinking of designating community members as maintainers and giving them commit access? 17:15:16 yes 17:15:29 inflox as one example 17:15:32 infoblox* 17:16:07 ideally you aren't the one spending time merge all the PRs for all those repos 17:16:51 jtanner: We certainly could, but the PR volume on those has been very low (or non-existent). Someone should still review too. 17:17:05 k 17:17:27 in the theoretically situation where those repos start to multiply exponentially, we should revisit this 17:18:31 does zuul system use our same shippable resources ? 17:18:38 Yeah, if the volume picks up on those at all I'd definitely like to see community maintainers. But for the infrequently updated ones I don't think it's necessary. 17:18:43 bcoca: No 17:19:31 gundalow: It would be good to have some documentation about the general test container pattern (how the repos are set up and used, updated, etc.) 17:19:52 mattclay: yup agreed. I'll ping you some notes I've started 17:20:36 bcoca: Zuul = Nodepool/RDO (openstack things). So you don't have to worry about Zuul adding more into the Shippable backlog :) 17:20:38 gundalow: Are you thinking those docs should live in the Ansible dev guide? 17:20:45 mattclay: yup 17:20:54 gundalow: just want to keep my bitmining safe! 17:21:03 bcoca: :D 17:26:04 jtanner: also FYI it's two commits: 1) to update container 2) to update which version of the containers ansible-test will use 17:26:23 3) update tests to use new features 17:26:26 PR for (2) ensure that (1) hasn't broken any integration tests 17:26:33 ah, yes 17:26:41 i'm familiar with the process =P 17:26:53 ive made one or two or three of them 17:26:54 OK, just saying it here for completness 17:27:12 Once we've got it documented means that anyone can hit merge, doesn't just have to be mattclay 17:27:23 agree 17:27:28 awareness will be key though 17:30:31 Since we're on the topic of test containers, I'd like to hear thoughts on how to organize the distro-specific test containers. Right now they're still in the ansible/ansible repo, but I want to split them out like has been done for the other test containers. 17:30:57 I considered having a single repo for all of them, since they usually share a lot in common (mostly around pre-installed packages). 17:31:36 However, automated builds don't work well on quay.io because we'd trigger rebuilding all containers for a change to a single Dockerfile. 17:32:13 So we could put each distro container in its own repo, but then changing things across all of them, such as adding a new dependency, requires multiple PRs (~10). 17:32:18 jtanner: mattclay created https://github.com/ansible/community/issues/340 to track documenting this 17:33:26 We could have them in one repo for easier PRs, but then we'll need to create a custom container build process. 17:34:35 Does anyone have any thoughts or suggestions? 17:35:30 I like quay.io to do the builds without us having to go through the manual process like we currently do 17:35:46 * gundalow looks at how many updates there have been 17:36:13 https://github.com/ansible/ansible/commits/devel/test/utils/docker Not much traffic 17:36:52 gundalow: I'm hoping we'll update them more frequently after the overhaul. But perhaps we could use a script to automate common changes across all the repos? 17:37:17 And most are for single distro, so it would be 3+1 PRs, rather than 10+1) 17:37:53 gundalow: Can you elaborate? 17:39:11 From looking at the commits in `utils/docker` the existing changes seem to be limited to one family (ie centos). We test two versions of centos, so that's 2+1 PRs (two repos + ansible/ansible) 17:39:28 or 4+1 for Fedora 17:39:35 the quay.io process seems like 17:39:38 a good thing 17:40:11 can quay be tied to specific branches? 17:40:22 So sure, we could look at optimizing this with scripts, though maybe we should look how much of a problem it actually is before spending time autogenerating Dockerfiles 17:40:26 * jtanner will be in the office with those devs tomorrow 17:40:26 jtanner: Yes. What are you thinking? 17:40:43 a quay build per branch? 17:40:57 like an nios branch, a vcenter branch, etc 17:40:59 How does that help over having separate repos? 17:41:16 i dunno, i thought you were postulating how to have one repo 17:42:23 Well, one repo with one branch. Having multiple branches means multiple PRs, so has most of the same issues as multiple repos. 17:42:51 k 17:43:03 Also, this wouldn't be for the "unique" test containers -- just the generic distro ones (centos*, fedora*, ubuntu*, opensuse*, ...) 17:43:53 gundalow: Are you thinking that instead of one repo for each distro container, we'd have one per family since most likely a change to one version in the family is going to be a change to all of them? 17:44:43 oh, okay. nvm me 17:45:17 mattclay: I was thinking one repo per container 17:45:33 I assume ^ is the only way to have automated builds? 17:46:04 I'd like us to get out of the business of having to click "build" on things 17:47:10 gundalow: No, we can have multiple automated container builds for a single repo. 17:47:12 With the push for more automated testing (it's a good thing (tm), certification, getting partners on board) I'd expect the number of containers to increase a lot over the next 18months, so would like for us (you :P) not to have to click to many things to make it happen 17:47:16 ooooh 17:47:24 gundalow: But changes to that repo will rebuild all of them regardless of how many changed. 17:47:46 Wonder if that reduces the PR churn a bit 17:47:55 I'd like to avoid changing a fedora container also rebuilding all of them -- but maybe that's something we shouldn't care about. 17:48:23 If we group them by family rather than container then at least changing fedora (where we're likely to change all versions) would only rebuild fedora and not others. 17:48:40 But it still means multiple PRs when we want to make changes to all of them, like adding the same package to each. 17:49:08 So perhaps we start with one repo with multiple automated builds and consider splitting it up later if we get tired of waiting for all the unrelated builds to run? 17:50:11 Minimum viable build pipeline 17:50:26 mattclay: sounds like a plan 17:50:26 +1 to trying it that way first 17:50:27 The other side-effect is that when we tag a new release, all containers get a new version even if they didn't change. I guess I'm OK with that. At least it's simple. 17:50:51 Just because we have a new version doesn't mean we need to update ansible-test to use it. 17:50:52 mattclay: Where do we define which version of the container should be used? 17:50:58 common content like that, seems like a problem ansible-container tried to solve 17:51:14 Was expecting to see a SHA/version string in https://github.com/ansible/ansible/pull/41626/files#diff-5618cb565c0b1555d4cbf2e423cea546R174-R177 17:51:40 gundalow: https://github.com/ansible/ansible/blob/devel/test/runner/completion/docker.txt 17:52:07 ah, thanks 17:52:32 OK, so any objections to using a single repo for the distro containers (centos*, fedora*, opensuse*, ubuntu*), resulting in changes to any rebuilding all and new release versions affecting all, even if they're unchanged? 17:53:38 so, PR to update something in fedora*, which would trigger fedora* to be rebuild. However we are only interested in fedora25, so we'd only update that line in `docker.txt`. That works for me 17:54:07 gundalow: Yeah, or we could use a single version for all of them in ansible-test since they're all versioned together. 17:54:20 jtanner: kinda, there was more around the deployment of various bits 17:54:52 buildah has an ansible connector now, so if we wanted a shared-playbook build method we could use that 17:56:04 With all of the containers being built/versioned together it should be pretty easy to migrate that. 17:56:41 We've got 4 minutes left of our scheduled meeting. Is there anything else? 17:56:45 mattclay: single version would work. 17:56:50 Nothing else from me 17:57:08 jtanner: did this cover everything you were thinking? 17:57:21 wasn't thinking anything 17:57:38 gundalow: BTW, change to fedora25 would build all, not just fedora* since everything would be in one repo. 17:58:22 mattclay: yup, but if we had per-distro-version lines in `docker.txt` we'd only make fedora25 live 17:58:43 I don't have any strong views for/against single version in `docker.txt` 17:58:52 vs current line-per-version 17:59:47 gundalow: Ah, yes, I see what you're saying. Do you see any benefit to listing versions for each though, if we're versioning them togther? I guess the only advantage is if we've broken something in say cento6:1.1.0 but want to start using centos7:1.2.0 without fixing the issue in the centos6 image first. 18:00:39 Oh, the other advantage of versions for each is that we can tell when they changed version in the tests instead of it being a blanket update to all. 18:01:00 I guess I should keep versions for each then -- one less change to make. :) 18:01:09 That's the case I was thinking 18:01:30 I think multiple lines is best 18:01:31 Thanks for the feedback. 18:01:41 mattclay: Thanks for automating this :) 18:03:24 Anyone got anything else? 18:03:44 Nothing from me. 18:04:02 #agreed Containers: Move to one repo per Distro. Keep one line per version in `docker.txt` 18:06:39 Thank y'all 18:06:42 #endmeeting