Monday, 2018-05-14

*** yassine has joined #softwarefactory00:35
*** yassine is now known as Guest1771300:35
*** caowei has joined #softwarefactory02:23
*** Guest17713 has quit IRC02:28
*** Guest17713 has joined #softwarefactory02:43
*** sfbender has joined #softwarefactory03:43
sfbenderTristan de Cacqueray created software-factory/sf-ci master: repos: fix missing contentdir variable  https://softwarefactory-project.io/r/1218303:43
dmsimardtristanC: I was also seeing that error in DIB builds on review.rdo04:04
dmsimardapparently it made our nodepool builder loop and fill it's disk04:05
tristanCdmsimard: perhaps we should cherry-pick https://review.openstack.org/568180 directly ?04:11
dmsimardtristanC: getting late for me so I'll avoid giving a tired opinion :D04:12
dmsimardtristanC: for the time being I stopped nodepool-builder on nb01 (was useless) and the disk cleanup is still running04:13
dmsimardit's deleting very slowly.04:13
tristanCnhicher did the same on sf-project.io nb node too...04:13
dmsimardtristanC: I'm gonna head to bed while the rm is running, I'll send a quick email so folks are aware04:17
dmsimardemail sent, I'm going to go and catch some ZzZ's04:23
*** jpena|off is now known as jpena07:53
*** ssbarnea_ has joined #softwarefactory07:55
*** ssbarnea_ has quit IRC08:06
*** ssbarnea_ has joined #softwarefactory08:42
gundalowMornig all. Could I please get +1 on an update to the vyos image we are using https://softwarefactory-project.io/r/#/c/12185/ Thanks in advance10:34
fbo_gundalow: morning, Sure that's now merged10:49
gundalowfbo_: Thank you :)10:49
sfbenderMerged software-factory/sf-config master: zuul: set gearman ssl certificates  https://softwarefactory-project.io/r/1159111:21
*** jpena is now known as jpena|lunch11:31
gundalowcorvus: Hi, when you added https://github.com/ansible-network/zuul-config/pull/18 did you make any other config changed? I've reverted it in https://github.com/ansible-network/zuul-config/pull/18/ though I'm seeing ERROR Unable to find playbook /tmp/e6703510c3c24a31ba111e0634296dec/trusted/project_0/github.com/ansible-network/zuul-config/playbooks/base-test/pre.yaml on https://github.com/ansible-network/ansible-zuul-jobs/pull/1311:50
gundalowThough I don't see anything related in https://softwarefactory-project.io/r/#/q/status:merged11:54
gundalowah, still had parent: base-test12:13
*** jpena|lunch is now known as jpena12:25
*** dmsimard is now known as dmsimard|off12:58
sfbenderMerged software-factory/sf-config master: Some fixes for the sf-dlrn role  https://softwarefactory-project.io/r/1205214:08
sfbenderFabien Boucher created software-factory/managesf master: Switch mysql connector lib to https://github.com/PyMySQL/PyMySQL/  https://softwarefactory-project.io/r/1218714:35
*** jangutter has joined #softwarefactory15:15
sfbenderFabien Boucher created software-factory/cauth master: Switch mysql connector lib to https://github.com/PyMySQL/PyMySQL/  https://softwarefactory-project.io/r/1218915:37
*** jpena is now known as jpena|brb15:43
sfbenderFabien Boucher created software-factory/cauth-distgit master: Support both MySQL-python and python2-PyMySQL for transition  https://softwarefactory-project.io/r/1219015:45
sfbenderFabien Boucher created software-factory/cauth-distgit master: Remove obsolete dependency MySQL-python  https://softwarefactory-project.io/r/1219115:50
*** jpena|brb is now known as jpena16:24
*** jpena is now known as jpena|off17:19
*** ssbarnea_ has quit IRC18:56
*** ssbarnea_ has joined #softwarefactory18:57
gundalowGiven success with over the past week, now looking at adding softwarefactory-webhook for ansible/ansible19:03
gundalow1) How does Zuul handle branch configuration? Is it always going to look at ansible/ansible:devel for config? Or will it use ansible/ansible:stable-2.5 for a PR against stable-2.5?19:03
gundalow2) Could someone please point me at the configuration (outside of GitHub) that defines the trusted repos, ie which defines Zuul should allow configuration to be loaded from gh/ansible-network/zuul-config19:06
gundalow3) Where are the docs for jobs.files (where you limit if this job should be run based on file regexp)19:08
gundalowrcarrillocruz: 4) What was your thoughts on adding all the zuul config to ansible/ansible vs ansible/zuul-config19:09
gundalow5) Does Zuul rebase before running checks, I *assume* so, though I don't see that happening in the job logs19:10
dmsimard|off1) yea19:37
dmsimard|off2) https://softwarefactory-project.io/r/gitweb?p=config.git;a=blob;f=zuul/ansible_networking.yaml;h=3f0c58dae394a1ca17fcdc4acb304280b1254b7b;hb=HEAD19:38
dmsimard|off3) https://docs.openstack.org/infra/zuul/user/config.html#job ?19:39
dmsimard|off5) zuul tests the patch as it is for the most part afaik.. but there is a merge-check mechanism to check if the patch can be merged19:40
dmsimard|offThere's some built-in tooling to gerrit and git-review that helps with rebases, I guess not so much for GitHub19:40
dmsimard|offgundalow: ^19:41
mattclaydmsimard|off: For #1, is that "yea", it always uses devel, or "yea" it will use the config from the same branch as the PR is made against?19:42
mattclaydmsimard|off: For #5 does that mean we'll need to do our own rebase in the check before running our tests to test against the PR as it would be merged?19:45
dmsimard|offmattclay: zuul will load branch specific config19:46
mattclaydmsimard|off: How does branch specific config work if the repo used for config isn't the same as the one being tested?19:47
dmsimard|offmattclay: not sure I follow19:53
mattclaydmsimard|off: If the Zuul config is in `ansible/zuul-config`, how would we, for example, use a different config for `ansible/ansible:devel` and `ansible/ansible:stable-2.5`?19:55
mattclaydmsimard|off: Also, am I correct in assuming that whatever repo is used for Zuul config, we need Zuul to gate merges to that repo to prevent breaking the Zuul config?20:05
dmsimard|offmattclay: you can selectively "shard" the configuration between different repositories. I think this would be better with an example, hang on.20:06
dmsimard|offFor example, OpenStack has zuul-jobs (generic zuul things), openstack-zuul-jobs (generic openstack things) and then project-config (for the trusted execution things). However, the roles, playbooks and configuration from those repositories are available to all the repositories Zuul knows about, regardless of branches.20:07
dmsimard|offA good example I like to point at is the puppet-openstack modules20:08
dmsimard|offSo there's a lot of puppet modules and what they do is centralize the bulk of the configuration in one repository, "puppet-openstack-integration" https://github.com/openstack/puppet-openstack-integration/blob/master/.zuul.yaml20:09
dmsimard|offand then all they have to do in the different projects, for example puppet-nova, is to map the jobs to the project https://github.com/openstack/puppet-nova/blob/master/.zuul.yaml20:09
mattclaydmsimard|off: So using your example, the config in the puppet-nova repo is branch specific and the config in all the other repos uses the default branch?20:18
dmsimard|offmattclay: well what I linked you was the master branch config but if you look at another branch, you'll see there's also a zuul.yaml file https://github.com/openstack/puppet-nova/blob/stable/queens/.zuul.yaml20:20
dmsimard|offso you could have totally different jobs running on devel than on stable-* branches, for example20:21
dmsimard|offmattclay: and yes, any repos included in the zuul main configuration should be gated20:24
mattclaydmsimard|off: What delineates "main configuration" from other configuration? How much of the config can be safely not gated?20:24
dmsimard|offmattclay: the main configuration is where the list of projects is defined, i.e https://softwarefactory-project.io/r/gitweb?p=config.git;a=blob;f=zuul/ansible_networking.yaml;h=3f0c58dae394a1ca17fcdc4acb304280b1254b7b;hb=HEAD20:25
dmsimard|offI don't know if there's a better word for it than that, I've just been calling it that20:26
mattclaydmsimard|off: So `ansible-network/zuul-config` itself doesn't need to be gated?20:26
dmsimard|offmattclay: yes, because if someone merges a bad zuul.yaml file in that repo, zuul will attempt to load it.20:26
dmsimard|offmattclay: You can try it now, if you submit a PR with a bogus config in any of the mapped projects, Zuul will warn you about it. If you somehow bypass Zuul to merge the bogus config it'll break things.20:27
mattclaydmsimard|off: What I'm trying to figure out is how much of our config would need to go in `ansible/zuul-config` (gated by Zuul) vs `ansible/ansible` (not gated by Zuul).20:28
dmsimard|offmattclay: That's an excellent question I don't have a good answer for right now. I understand that ansible/ansible is already included in the config and since zuul is (understandably) not gating it, you could potentially merge something bad20:30
dmsimard|offmaybe mordred or corvus have opinions20:31
mattclaydmsimard|off: I didn't realize Zuul was already loading config from `ansible/ansible`. I don't think we actually have any Zuul config in there currently.20:31
dmsimard|offmattclay: the fact that ansible/ansible is listed in the config ( https://softwarefactory-project.io/r/gitweb?p=config.git;a=blob;f=zuul/ansible_networking.yaml;h=3f0c58dae394a1ca17fcdc4acb304280b1254b7b;hb=HEAD ) means that Zuul can and will load configuration from there, if there is any20:32
dmsimard|offmattclay: oh wait20:33
dmsimard|offmattclay: there's an explicit config to not include configuration from ansible/ansible20:33
mattclaydmsimard|off: So is the config loading all or nothing? Either Zuul can load any config from the repo or none at all?20:34
dmsimard|offmattclay: there's a few kind of things you can include/exclude, it's not all or nothing .. hang on let me get the docs20:36
dmsimard|offmattclay: https://docs.openstack.org/infra/zuul/admin/tenants.html?highlight=include#attr-tenant.untrusted-projects.%3Cproject%3E.include20:37
corvusmattclay, gundalow, dmsimard|off: regarding #5 -- zuul tests the change as it will land.  that's different than testing it as written, or merely rebasing it on the tip.  it starts with the current tip of the branch, then merges any dependent changes, then merges the change under test.20:40
corvusso you definitely don't (and shouldn't) do any rebasing, etc, inside the job itself.  zuul does it all for you.20:40
mattclaycorvus: That is for checks (not just gated merges)?20:41
corvusmattclay: yes, they behave the same way.  gate just adds the additional aspect that it includes changes which happen to have been enqueued ahead of the change under test.  but for the purposes of thinking about git repos, those are basically just additional "dependent" changes which also get merged into the repo state zuul prepares for the jobs.20:42
dmsimard|offhaving this discussion makes me realize that I took a lot of what gerrit does (or even the vocabulary) for granted and not trivial to translate to github :/20:43
corvusa job in check on a github pull-request with no 'depends-on' headers will end up being simply the current branch tip with the pr merged into it.20:44
mattclaydmsimard|off, corvus: So back to the config loading. Is there any config that would be safe to have Zuul load from a non-gated repo?20:46
mattclayAnd by "safe" I mean that it wouldn't break Zuul.20:47
corvusmattclay: i believe sf is running with a patch (which is not yet upstreamed) so that zuul's configuration won't be "broken", but some of the content from that repo might be missing, which could still mean things are "broken" depending on how you look at it.  basically, it constrains how much a single repo can break.  if, for example, a repo defined a job which was only used within that repo, maybe20:49
corvusit's okay to load jobs from that repo without zuul gating it because it can only break itself.20:49
mattclayYeah, if changes to config in ansible/ansible only break CI for ansible/ansible, that's acceptable. What I don't want to have happen is config going into ansible/ansible breaking Zuul for say all of SF.20:50
corvuseven with upstream zuul, a tenant can only break themselves (ie, all of the ansible repos would be broken) -- i believe the sf patch would say, let ansible/ansible be broken, but ansible/ansible-networking continue to work.20:52
corvusmattclay: so, if you're willing to live with some amount of risk, and can pay attention to zuul check results on .zuul.yaml changes to ansible/ansible, and be responsive if something does break, then i think including some config in ansible/ansible would be okay.20:53
corvusmattclay: the advantage of doing that is that it may make some of the branch configuration stuff behave in the way it's normally expected to -- so you'd get a better idea of how zuul is designed to work.20:54
corvusmattclay: you can, of course, have the configuration entirely outside the repo, but that requires writing jobs just a little bit differently to deal with multiple branches on the target repo.20:55
corvusto try to make this a bit more concrete, and elaborate on the answer to question #1 --20:56
corvuszuul has what are called job variants which are used based on the branch of the pull-request being tested.  if you define jobs in a repo with multiple branches, you'll get a variant for each branch.  for example, you'll end up with a "devel" variant, and a "stable/2.5" variant if the same job appears in the .zuul.yaml file on those branches of ansible.20:58
mattclaycorvus: Thanks, that helps a lot. It sounds like we could keep most of the config in ansible/ansible so it would be specific to each branch, without risking breaking anything outside of ansible.20:58
corvusif you wanted to do the same thing in zuul-config instead, you would define the job twice in the same file, and then add "branches: devel" to the first definition, and "branches: stable/2.5" to the second.  either way you end up with 2 variants.  one approach is more implicit and automatic, the other is more explicit and requires more upkeep.20:59
corvusmattclay: yep20:59
corvus(the real magic of doing it all in-repo comes when it's time to branch "devel" to "stable/2.6" or whatever -- you automatically get stable/2.6 versions of the jobs just by making the git branch)21:00
mattclayYeah, and that would fit well with our existing workflow.21:00
mattclaycorvus: Can we configure Zuul to only watch branches matching certain patterns?21:01
corvus(i should add that if we find ourselves in a situation where we really want the in-repo branch behavior, but we don't want it in ansible/ansible, you can put the job definitions in another repo and branch it at the same time you do ansible/ansible.  that's probably more work than we'd want for this situation, but i just wanted to mention the possibility -- we have lots of options)21:03
corvusmattclay: you mean only load zuul config for certain branches, or only run jobs on pull-requests to certain branches?21:05
mattclaycorvus: Only running Zuul for PRs on certain branches and/or excluding some branches. Of course we wouldn't need to load config from branches we weren't going to test.21:06
corvusmattclay: yeah, the job branch matchers control that.  if a pr doesn't match any of the job's branch variants, that job won't run.  if you're doing in-repo config, you usually don't have to worry about that because the variants are created with implicit branch matchers.  but if they aren't doing what you want, you can set it explicitly.21:09
corvushttps://zuul-ci.org/docs/zuul/user/config.html#attr-job.branches21:09
*** ssbarnea_ has quit IRC21:58
*** jruzicka has quit IRC22:08
*** jruzicka has joined #softwarefactory22:08

Generated by irclog2html.py 2.15.3 by Marius Gedminas - find it at mg.pov.lt!