Thursday, 2017-05-04

pabelangerk00:00
jamielennoxjeblair: just while you're on a roll, i had two things i left in channel last night00:04
jamielennoxi see you left a comment on https://review.openstack.org/#/c/461981/ about using the connection - i had a similar thought but wasn't sure if you wanted to do something a bit more along the reporter filter idea00:05
jamielennoxor we should just do that anyway for at least the github/gerrit reporters00:05
jamielennoxbut if that fix works for you i can do that properly today00:05
jeblairjamielennox: i *think* that fix is ideal, because it's essentially "every reporter should try to report the change if it can, automatically".  i'll reply to jlk on that.00:06
jamielennoxjeblair: right, it just leaves open the question of only use the sql or smtp reporter for some cases, but i'm happy to defer that until it's actually a problem00:07
jeblairjamielennox: yeah, so far we haven't had a desire to limit those by connection00:07
jamielennoxyea, it would mean putting something in the config and it should be something we can do in a backwards compatible way later if required00:08
jamielennoxok, will do a version of that today and remove the source param00:08
jeblairyeah i think so00:08
jamielennoxsecond was passing {{ zuul.project_name }} as canonical to the executor00:09
jamielennoxthis makes sense to me and fixes the problem of finding the source dir00:09
jamielennoxhowever i'm looking through the executor/client + server and it looks like all this information would be available to send from the client00:10
jamielennoxbut the server is doing it's own source lookup00:10
jamielennoxis there a reason for this or just the fastest thing to do at the time?00:10
jeblairjamielennox: clarkb and i had some bikeshed comments on that at https://etherpad.openstack.org/p/vB1WjfL80400:12
jeblairjamielennox: to that question -- i think we need to do a project lookup for some reason anyway, which is why we do the lookup from source.  at any rate, given a project object, the full range of canonical name attributes are available.00:13
jamielennoxbut so the pattern here: http://git.openstack.org/cgit/openstack-infra/zuul/tree/zuul/executor/server.py?h=feature/zuulv3#n57300:15
jamielennoxis repeated a few times, where it seems like all your trying to do is find the canonical name, which we could just pass through from the client00:16
jeblairjamielennox: it's source.getGitUrl that's really driving that one00:19
jeblair(and yes, we could pass that across as well, but the executor's merger needs to be able to derive most of this from just source+project anyway, so i tried to keep the information passing to a minimum)00:20
jamielennoxjeblair: any reason not to send thta as an arg from client?00:20
jamielennoxok00:21
jamielennoxso why does the executor's merger (something i'm still wrapping my head around) need to do a source+project lookup?00:24
jeblairjamielennox: because it uses the source interface directly, since it's the thing pulling stuff from the git remote00:26
pabelangerokay cool, have ssh-agent working with trusted / untrusted playbook00:28
jamielennoxyep, but why are those items based on sources rather than a url+sha combo or something00:28
pabelangerthis is actually straightforward00:28
jamielennoxthe whole concept of executor-server having access to source/connection objects is still odd to me i guess00:29
jeblairjamielennox: the executor has an embedded merger.  mergers talk to sources.00:33
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232600:36
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232600:41
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232600:45
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232600:47
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232600:52
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232600:53
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232600:55
pabelangerHa, default shell for zuul isn't bash00:57
pabelangerfixing00:57
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232601:00
pabelangerokay, maybe that was the issue01:00
*** jkilpatr has quit IRC01:02
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232601:03
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232601:07
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232601:09
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232601:15
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232601:17
pabelangerokay, that too way too many patches01:18
pabelangerbut it worked01:18
pabelangerjamielennox: http://zuulv3-dev.openstack.org/logs/0cd7e63b415b4188bdd389aac0b8bf82/console.log01:18
pabelangerhigh level, but we could turn that into a trusted playbook01:18
jamielennoxpabelanger: but do those variables hang around such that they would be used by playbooks running between the pre and post?01:20
pabelangeryes, I piped them to a file01:20
pabelangerwe just need to source it first01:21
jamielennoxi would be surprised/possibly concerned if you could set and keep environment variables in the executor from within the playbook01:21
pabelangerinitial testing show I couldn't do that01:21
pabelangerbut, is late and just hacked for 30mins01:21
jamielennoxoh, so the playbook drops an rc file, you source it before running other things01:22
pabelangeryes01:22
jamielennoxok, yea, so it creates an interesting dependency between playbooks or between zuul and something created in a playbook01:22
pabelangerthe last step would be to have bwrap source that, to find out SSH_AGENT_SOCK01:22
pabelangeror, run untrusted job in bwrap, to source rc (delegate_localhost), then run normal task using new ssh-agent socket01:23
pabelangereither way, can play with that more tomorrow01:23
pabelangerbrain is shutting down01:23
jamielennoxunderstood, we can talk about it then01:24
*** yolanda has joined #zuul02:26
*** smyers_ has joined #zuul03:10
*** yolanda has quit IRC03:11
*** nibalizer has quit IRC03:11
*** smyers has quit IRC03:11
*** smyers_ is now known as smyers03:11
*** yolanda has joined #zuul03:17
*** nibalizer has joined #zuul03:19
jeblairpabelanger, jamielennox: er, i thought we had agreed zuul should start the ssh agent?   see the etherpad: https://etherpad.openstack.org/p/EIrCy4mhuR04:22
jeblairi really don't think we should have zuul depend on a user-supplied playbook.04:23
jamielennoxjeblair: was my understanding as well, i think he was just mapping it out to see if it is possible04:23
jamielennoxjeblair: cause agreed i don't think zuul should depend on something defined in a playbook04:23
jamielennoxjeblair: before you jump out again, does the connection compare work for multiple gerrits?04:24
jamielennoxis there an individual reporter object made each for each connection if there are two of the same type?04:25
jeblairokay.  i guess now we have confirmed what we suspected.  :)  we can use about half of that change, but the agent stuff needs to be in zuul.  i think it makes a lot of sense for the agent to be part of the interface that zuul provides to the playbooks.04:26
jeblairjamielennox: there might be any number of reporters; it's more of a data-structure kind of object than a long-lived singleton.  the connection, however, is long-lived and unique.04:27
jeblairjamielennox: reporters have a reference to their associated connection, so that's the best thing to compare04:27
jamielennoxjeblair: yea, ok, in our project-config the driver name and the connection name is the same thing so i was just getting confused where it lived04:28
jeblairjamielennox: yeah, me too.  :)  basically, everything in zuul.yaml is a connection name; the driver only appears in zuul.conf.04:29
openstackgerritJamie Lennox proposed openstack-infra/zuul feature/zuulv3: Only report to gerrit if the action is from gerrit  https://review.openstack.org/46198104:31
openstackgerritJamie Lennox proposed openstack-infra/zuul feature/zuulv3: Remove source from reporter  https://review.openstack.org/46236204:31
openstackgerritJamie Lennox proposed openstack-infra/zuul feature/zuulv3: Remove source from reporter  https://review.openstack.org/46236204:53
openstackgerritJamie Lennox proposed openstack-infra/zuul feature/zuulv3: Only report to gerrit if the action is from gerrit  https://review.openstack.org/46198104:53
openstackgerritJamie Lennox proposed openstack-infra/zuul feature/zuulv3: Remove source from reporter  https://review.openstack.org/46236205:07
openstackgerritJamie Lennox proposed openstack-infra/zuul feature/zuulv3: Only report to gerrit if the action is from gerrit  https://review.openstack.org/46198105:07
*** isaacb has joined #zuul05:24
openstackgerritIan Wienand proposed openstack-infra/nodepool master: Turn of time stamps in dib log  https://review.openstack.org/46232105:31
openstackgerritIan Wienand proposed openstack-infra/nodepool master: devstack: nodepool log to separate file  https://review.openstack.org/46238005:31
openstackgerritIan Wienand proposed openstack-infra/nodepool master: Turn off time stamps in dib log  https://review.openstack.org/46232105:32
openstackgerritIan Wienand proposed openstack-infra/nodepool master: Turn off time stamps in dib log  https://review.openstack.org/46232106:02
openstackgerritIan Wienand proposed openstack-infra/nodepool master: devstack: nodepool log to separate file  https://review.openstack.org/46238006:02
*** hashar has joined #zuul06:44
*** isaacb has quit IRC06:52
*** jamielennox is now known as jamielennox|away07:06
*** isaacb has joined #zuul08:16
*** Cibo_ has joined #zuul08:57
*** Cibo_ has quit IRC09:26
*** bhavik1 has joined #zuul09:54
openstackgerritIan Wienand proposed openstack-infra/nodepool master: Turn off time stamps in dib log  https://review.openstack.org/46232110:07
openstackgerritIan Wienand proposed openstack-infra/nodepool master: devstack: nodepool log to separate file  https://review.openstack.org/46238010:07
*** yolanda_ has joined #zuul10:10
*** yolanda_ has quit IRC10:12
*** bhavik1 has quit IRC10:12
*** jkilpatr has joined #zuul10:53
lennybHi, I am using zuul+jenkins (ThirdPartyCommonCI Solution). If I ask to merge a patchset that depends on unmerged commit I see that zuul does not return failure to the gerrit. Is there something that can be configured? #link http://paste.openstack.org/show/608845/11:02
*** yolanda has quit IRC11:13
*** yolanda has joined #zuul12:29
pabelangermorning13:32
dmsimardCurious, how will users upload secrets file into zuul v3 ? Say, the equivalent of the jenkins credentials feature.13:33
pabelangerdmsimard: we have a secret section in top level config, which takes data. It is encrypted with pkcs1, IIRC13:35
pabelangerhttps://specs.openstack.org/openstack-infra/infra-specs/specs/zuulv3.html#secrets13:37
openstackgerritJames E. Blair proposed openstack-infra/nodepool master: Copy nodepool logs to devstack log dir  https://review.openstack.org/46256613:43
pabelangerjeblair: SpamapS: left a comment on 453851 about accessing SSH_AUTH_SOCK inside brwap.13:44
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232613:54
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232613:57
*** jamielennox|away is now known as jamielennox13:58
*** dkranz_ has joined #zuul13:59
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: POC of ssh-agent playbook  https://review.openstack.org/46232614:00
pabelangerif we could get a few reviews on https://review.openstack.org/#/c/462268/ and https://review.openstack.org/#/c/462300/ this morning, it would allow us to continue with our openstack-zuul-jobs topic today.14:25
jeblairpabelanger: why would we want to write a .ssh/config file?15:05
jlkjeblair: thanks for that reply on the reporter change. Makes sense15:07
pabelangerjeblair: I made some comments on 453851 explaining some of the logic, have you seen them?15:08
jeblairpabelanger: yes, that's what i'm asking about15:08
pabelangerk15:08
pabelangerso15:08
*** isaacb has quit IRC15:09
pabelangermy thoughts would be, if we created a .ssh/config file inside brap, I think ansible-playbook SSH command would use them, and get information about our SSH_AUTH_SOCK. Otherwise, we'd need to some how set the SSH_AUTH_SOCK inside bwrap container15:09
pabelangerzuul could also setup the SSH_AUTH_SOCK variable before calling bwrap.15:10
*** hashar has quit IRC15:10
pabelangerbut, this POC should work without code changes to zuul, if it ran on executor15:11
jeblairpabelanger: we want zuul to start and stop the ssh agent, so it can set SSH_AUTH_SOCK when it runs ansible-playook (whether that's with bwrap or not).15:12
jeblairpabelanger: i think that will be much simpler than ssh config files15:12
pabelangersure, zuul can start / stop ssh-agent too. I'm trying to understand why that is preferred15:15
*** rcarrillocruz has quit IRC15:23
*** rcarrillocruz has joined #zuul15:29
jeblairpabelanger: sorry, was eating breakfast.15:42
jeblairpabelanger: a couple of reasons -- first, while possible, i don't think that having playbooks start daemons on the executor is a model we should encourage15:42
jeblairpabelanger: (we might even do something to prevent that in the future)15:43
jeblairpabelanger: second, since it is a daemon, it seems like it will be more reliable to ensure that it's stopped correctly if we do it inside of zuul15:44
jeblairpabelanger: third, as you have noted, getting the agent shared between the multiple ansible processes is more difficult in playbooks.  it's not easy for me to wrap my head around where the .ssh/config file would be in the different execution contexts15:45
jeblairpabelanger: fourth, i like the idea of not having the key material available in the execution context at all; so having the job start out with the agent and no private key is nice15:46
jeblairpabelanger: we need to provide the ssh key(s) to the playbooks as part of the executor api -- it looks like the agent is a good way of doing that15:47
pabelangerRight, I think that is reasonable.  But, one thing I am not sure if we can control, is how operator will run things on an executor.  Sure we can discourage people from starting daemons on executors but I could we really stop them?15:54
jeblairpabelanger: eventually, yes.  we could decide to use bubblewrap or something similar even for trusted playbooks.  maybe we allow more access, but we still do things like kill process groups, etc.15:59
mordredyah - a bubblewrap with more wider permissions, perhaps16:01
pabelangereven got me thinking, there would also be nothing stopping somebody to write a trusted job to change the untrusted.cfg in a jobdir too.  So, I suspect we could see some crazy things in coming day.16:03
jeblairpabelanger: yep.  it's called 'trusted' for a reason.  :)16:03
pabelangerokay, so POC a side. I think ssh-agent would work nice for keeping private key out of bwrap16:04
pabelangereither single SSH key, like today or 1time SSH keys, like we discussed last night16:04
pabelangerjeblair: next exception from zuul. Trying to get job roles working: http://paste.openstack.org/show/608890/16:27
pabelangerjeblair: I believe the key should be 'target_name' now?16:27
pabelangerjeblair: 462202 is the review in question16:29
jeblairpabelanger: are we running different zuul/executor versions?  maybe restart them both with branch tip?16:30
pabelangerI am un sure, but I can upgrade everything sure16:30
pabelangerokay, restarted16:33
pabelangeralong with upgraded16:33
pabelangerHmm, I still see the same exception16:33
pabelangerlet me see if I can reproduce with unit test16:34
jeblairpabelanger: same line numbers?16:35
jeblair(they were off from my branch tip, so i'd expect them to be different after an upgrade/restart)16:35
pabelangerline 850 now: http://paste.openstack.org/show/608891/16:36
jeblairpabelanger: ok.  so it looks like we don't have test coverage of a role specified as an untrusted zuul repo where that repo appears in the speculative change stack.  probably we just need a test that proposes a change to the role repo itself to touch that.16:40
jeblairpabelanger: do you want to write that test, or do you want me to?16:41
pabelangerjeblair: if you want to sure, I was about to grab some lunch.16:41
pabelangerbut, happy to do it when I get back16:41
jeblairpabelanger: i'll take care of it16:42
pabelangerjeblair: great, thanks16:43
*** yolanda has quit IRC16:47
*** jkilpatr has quit IRC16:48
SpamapShonestly, the bubblewrap alreayd has pretty broad permissions. It's not a terrible idea to run trusted playbooks inside of it (just without the local restriction in ansible.. so we can still do interesting things, but only the interesting things we expose to the bwrap16:53
SpamapSit would also make things more consistent16:53
*** yolanda has joined #zuul16:54
pabelangerenabling bwrap by default for trusted too, seems reasonable. With ability to opt out, if wanted16:55
*** jkilpatr has joined #zuul17:04
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add a test which exercises a speculative role checkout  https://review.openstack.org/46267717:05
jeblairyeah, main thing with trusted bubblewrap is i expect trusted playbooks to use some things that we (as operators) know are on the system, like afs.  we can make that work though.17:06
jeblairpabelanger: https://review.openstack.org/461092 inadvertantly fixes the bug you found, so i've approved it.17:07
jeblairpabelanger: so https://review.openstack.org/462677 just adds the regression test (which fails on branch-tip, but passes with 461092).17:07
pabelangerYay for easy fixes17:09
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Use the security context of the playbook when checking out roles  https://review.openstack.org/46109217:15
pabelangerjeblair: okay, fresh coffee in hand. okay to upgrade zuulv3-dev to ^?17:17
pabelangerHmm, i think our jobs are broken now17:20
pabelangerfor zuulv317:21
pabelangerlooking17:21
pabelangerokay, think I see the issue17:22
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: WIP: Add git.openstack.org to workspace directory  https://review.openstack.org/46268417:33
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Be less agressive with implied branch matchers  https://review.openstack.org/46226817:37
pabelangerjeblair: what are your thought about exposing connection name to vars.yaml?17:37
pabelangercurrently zuul.project does not contain it17:38
SpamapSpabelanger: so have you started working on any of the ssh agent stuff?17:39
SpamapSpabelanger: if not I'm going to take a crack at it.17:40
pabelangerSpamapS: nothing in zuul yet, just the POC playbooks17:40
pabelangerSpamapS: please do17:40
SpamapSI'm mostly just going to work on generating key and starting ssh-agent in zuul native, and then handing that off to the playbook that distributes said key.17:40
pabelangerdoes zuul need to create the key? I thought that was in playbook17:41
pabelangeractually, ignore me17:42
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Report job shadow errors to users  https://review.openstack.org/46230017:42
jeblairpabelanger, SpamapS: i think key generation is in playbook?  (see second section of https://etherpad.openstack.org/p/EIrCy4mhuR )17:51
jeblairpabelanger: i don't think the connection name should show up in vars; but we may need to include the canonical hostname for zuul_project.  or include the hostname in zuul_project.17:52
jeblairpabelanger: in response to a question from jamielennox, clarkb and i put ideas in this etherpad: https://etherpad.openstack.org/p/vB1WjfL80417:53
SpamapSjeblair: yeah that makes sense. :)17:56
SpamapSjeblair: just now getting to where I start an SSH agent and pass the env in.17:58
pabelangerjeblair: today we set zuul.project to item.change.project.name. If we changed it to item.change.project, we'd get zuul.project.name and zuul.project.canonical_hostname I think18:00
pabelangerzuul.project becomes a dict for use to use in playbooks18:00
jeblairpabelanger: yeah, i think that approximates clarkb's suggestion.18:00
jeblairi'm cool with that.18:01
pabelangerk, let me see about getting a patch and test up18:01
*** Cibo_ has joined #zuul18:11
*** harlowja has quit IRC18:19
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: Update zuul.project to dictonary for vars.yaml  https://review.openstack.org/46269818:21
pabelangerclarkb: jeblair: ^ thoughts?18:22
pabelangernot sure if we want to complete project object or limited version of it18:22
SpamapSjeblair: referring back to the etherpad, we left out where we think the "real" nodepool key gets added to the SSH agent. I'm inclined to add it in the playbook, and them remove it there as well once we've copied the per-build one to the nodes. Thoughts?18:42
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: Use canonical_name in workspace directory  https://review.openstack.org/46268418:43
jeblairSpamapS: i was thinking zuul would add it -- that way it's zuul's way of saying to the playbooks "here's your inventory and keys, go nuts".18:48
jeblairSpamapS: (since the decision of which key to use, and where to find it on disk is zuul's anyway; having the playbook do it means the playbook has to know the private key path and be able to access it (which is extra tricky in bubblewrap) and so negates some of the advantage of having zuul manage the agent)18:49
jeblairSpamapS: (i added missing entry in etherpad)18:52
SpamapSjeblair: salient points. :) Ok, adding that.18:54
jeblairpabelanger: left comments18:56
jeblairpabelanger: er, strike my second comment.  so i'm down to "left one (salient) comment" :)18:57
pabelangerjeblair: sure, let me remove connection_name18:58
*** Cibo_ has quit IRC18:58
*** Cibo_ has joined #zuul18:59
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: Use canonical_name in workspace directory  https://review.openstack.org/46268419:00
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: Update zuul.project to dictonary for vars.yaml  https://review.openstack.org/46269819:00
pabelangerjeblair: ^19:00
pabelangerI just thought of something, as I was unlocking my SSH key for signed commits.  Now that we have secrets in zuulv3, could we not have zuul sign merge commits?19:01
jeblairpabelanger: cool.  considering the out-of-band discussion on that, i'm going to go ahead and +3 it.19:01
pabelangerjeblair: yay19:01
jeblairpabelanger: you've given me something to think about over lunch.  :)19:01
pabelanger:)19:02
*** Cibo has joined #zuul19:02
*** Cibo_ has quit IRC19:03
*** Cibo has quit IRC19:08
openstackgerritClint 'SpamapS' Byrum proposed openstack-infra/zuul feature/zuulv3: Add SSH Agent Primitives and usage  https://review.openstack.org/46271219:13
SpamapSthis is pretty WIP'y, and it's stacked all wrong, but ^^ is fairly complete as far as managing an SSH agent... just doesn't manage keys iwth it19:13
* SpamapS goes to lunch19:13
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Update zuul.project to dictonary for vars.yaml  https://review.openstack.org/46269819:19
pabelangerokay, I am going to update zuulv3-dev to latest master19:36
*** Cibo_ has joined #zuul19:37
pabelangerupgraded / started again19:38
*** harlowja has joined #zuul19:48
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: Move playbook out of zuul  https://review.openstack.org/46221019:58
openstackgerritPaul Belanger proposed openstack-infra/zuul feature/zuulv3: Add jobs back to .zuul.yaml  https://review.openstack.org/46221219:59
*** Cibo_ has quit IRC20:07
pabelangerOkay, I this makes me giddy https://review.openstack.org/#/q/topic:openstack-zuul-jobs20:21
pabelangerall green20:21
pabelanger5 patches, across 2 branches, over 3 repos. All running #ansible playbooks and roles for testing jobs, all before any job has been merged!20:22
pabelangersuper awesome!20:22
jeblairpabelanger: neat :)20:22
jeblairthe next thing we should do is start separating things out into the stdlib.  copy-git-repos and install-ssh-keys are the first things that should go there.  wherever 'there' is.  :)20:23
pabelangerindeed20:23
jeblairpabelanger: so you did decide to split jobs and roles?20:23
pabelangerjeblair: yes, mostly to see if it worked20:24
jeblair*nod*20:24
jamielennoxpabelanger: thanks for the zuul.project patch, i had a way hackier one that i didn't want to propose yet21:22
jamielennoxpabelanger: the other thing i think could be useful in there is a src_dir or similar21:22
jamielennoxi can construct the source dir from canonical_name so it's not a big deal but it would make the playbook start really easy21:23
pabelangerjamielennox: do you have an example playbook handy? I don't understand 'src_dir' in your example21:25
jamielennoxpabelanger: src_dir just being the directory that zuul checked the code out to21:25
pabelangersrc_root?21:25
jamielennoxwhatever21:25
jeblairi think that's there already?21:26
pabelangerI thought we expose it21:26
jamielennoxoh?21:26
pabelangerzuul.executor.src_root21:27
jamielennoxi don't have a dump in front of me, but isn't that /tmp/tmpXXXXX/ ?21:28
jeblairjamielennox: yeah; do you mean where we copy stuff to on the node?21:28
jeblairjamielennox: (well, zuul.executor.src_root will be /tmp/tmpXXXX/work/src/)21:29
jeblairor something like that21:30
jamielennoxso at the moment i run a script with chdir: "{{ bonnyci_workspace_root }}/src/{{ zuul.project }}"21:30
jamielennoxagain, not a big problem i have all the info i need, but it would be useful if that was just {{ zuul.src_dir }} or something21:30
jeblairyeah, so that's why the next thing for us to do is work on the standard lib thing21:30
pabelangeryou could make that a top-level ansible var today, in your playbook too21:31
jamielennoxyep, that's true21:31
jeblairbecause the 'copy to git repos' role should be something we share21:31
pabelangeryes21:31
jamielennoxok, not pushing it, it was just something i had included when playing around21:31
jamielennoxbut yea, it could be done in the ansible21:31
jeblairjamielennox: no, it's time for us to get serious about actually setting up shared standard roles :)21:32
*** yolanda has quit IRC21:34
jeblairjamielennox: but at any rate, the destination directory is a construct of the 'copy-git-repos' role (zuul doesn't have to know about it), so i think what we want is a (shared) base job definition that sets the variable you want -- similar to how we have the zuul_workspace_root variable now.21:34
jeblairi think this is the thing to work on after we get back from the summit21:34
pabelangerI have some general fears of scoping of variables in ansible. Looking forward to seeing what our first stdlib looks like21:36
jamielennoxyea, it's split. ansible copies over the entire src_root (at least for me), but executor-server is specifying the path within that21:36
jamielennoxlike a can't remember where that '/src/' comes from21:37
pabelangerhttps://github.com/ansible/ansible/issues/279621:38
jamielennoxpabelanger: yea, there's a number of things like that ansible could have done better initially, for now namespace everything by role21:39
pabelangeragree, this is one place I like puppet better for.  And something we should try to impose in zuul stdlib21:40
pabelangerI wonder the amount of effort to add something like that into ansible21:40
jamielennoxpabelanger: i imagine mind boggling and backwards incompatible21:41
jeblairi think we had a conversation about this, and agreed to for the most part, with exceptions for things like 'zuul_workspace_root' which are essentially global variables for all zuul-specific roles -- judging the 'zuul_' prefix to be sufficiently namespaced for that.21:42
jamielennoxyep, thats a loose ansible convention here as well, the roles have namespaces of the role names, and anything that is truly global is namespace bonnyci_ and those variables are passed to the roles21:44
jamielennoxideally means a user would be able to deal with bonnyci_ variables as an entity, not the combination of many roles though it's harder and doesn't always hold in practice21:45
pabelangerwoah22:08
pabelangerhttps://docs.ansible.com/ansible/include_role_module.html22:08
pabelangerIf True the variables from defaults/ and vars/ in a role will not be made available to the rest of the play.22:08
pabelangerSo, that is pretty awesome actually22:08
pabelangerand could offer some protection for roles leaking variables22:08
pabelangerwill have to test that tomorrow22:09
jlkl've been waiting for somebody to describe a use case for that.22:11
jlkjamielennox: what's your current thoughts on tenacity? Should we port that work over from v2.5, or do you think we should do the retries some other way?22:14
jeblairjlk: what's tenacity in this context?22:35
jlkjeblair: a thing to let us re-try various github API actions22:36
jeblairgotcha22:36
jeblairbeing familiar with their git error rate, i can imagine that their web api error rate may not be entirely dissimilar.22:37
jlkheh22:37
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Use previously stored repo state on executor  https://review.openstack.org/46117722:38
adam_gjlk: i think our usage of that could use some work. its currently decorating everything in the github connection, and retrying everything. the idea was to retry the possibly transient things and not things like merge failures due to repo perms22:38
jlkwell, and that gets weird too22:39
jlklike, a merge failure due to perms, that could be a race condition with the status. But we already have a retry baked into the code there22:39
jeblair(fwiw, while it's perhaps not as urgent, the concept applies about as well to gerrit -- we do occasionally get reporting errors there too)  so if this is generalizable at all, that'd be neato.22:44
pabelangerjeblair: did you have a chance to think about signed commits over lunch? Not that I'm saying we should implement them22:48
jlk to what end? pushing the merged commit back up?22:51
mordredpabelanger: fwiw, if we get to the point where zuul is making the merge commit and pushing it rather than triggering the merge action via api, I thnk it would be awesome to have zuul sign those commits22:55
pabelangerYa, it was just something that popped into my head, as I unlocked my key this afternoon22:56
mordred++22:56
pabelangernot sure if we'd want to do it or not22:56
jlkah. yeah, I don't think we'd be doing that on Github any time soon22:57
jlkgets tricky with ssh keys and whatnot22:57
pabelangermordred: not sure if you seen, but https://review.openstack.org/#/q/status:open+topic:openstack-zuul-jobs is a pretty cool stack.22:57
jlkand extending write access to zuul22:58
pabelangerand ready for reviews :D22:58
pabelangerjlk: ya, I am not too familiar how github is working.22:58
pabelangerjeblair: so, I think a found another issue in zuulv3. I think it is possible for a change to get lost by zuul, and untested.22:59
pabelangerjeblair: I think the sequence of events is, upload bad patch to gerrit for zuulv3 to test, job for patchset loops until RETRY_LIMIT is return.  During the looping, upload patchset #2, it doesn't seem to abort patchset #1. And patchset #1 continues to run and patchset #2 will be untested23:01
jlkdequeue not firing off?23:03
pabelangerhaven't look at logs yet23:09
pabelangerjust something I noticed today23:09
jamielennoxjlk: i'm not a fan of the way we're using tenacity, the problems it seems to be catching are real problems and it's muddling the results23:17
jlkkk23:18
jamielennoxjlk: there is a retries= option to requests that should allow us to retry like a connection failure23:18
jlkcan we plumb that through github3.py?23:18
jamielennoxbut at the moment it catches any error, so real things like auth failures are being retried where they won't work23:18
jamielennoxjlk: i think you can default it on a requests.Session but i'd have to double check23:18
jamielennoxpabelanger: where is base ending up in that stack?23:21
jamielennoxalso is there a rationale for splitting jobs from roles for openstack?23:22
jeblairpabelanger: yeah, my thinking was along the lines of mordred -- i think that becomes useful when we have zuul pushing commits for public consumption; it's probably not going to buy us a lot before then though (the internal-to-zuul channels that commits move around are all otherwise secured)23:24
pabelangerjamielennox: https://review.openstack.org/#/c/462210/ is the base23:24
jeblairjamielennox: it ends up in openstack-zuul-jobs, but that's temporary -- that's a thing that needs to move into the stdlib so we can all share it23:24
pabelangerI also think if we have openstack-zuul-roles, it make possible promotion into stdlib zuul a little easier too. Since openstack-zuul-jobs would already be consuming it from an external source23:26
pabelangerbut, mostly I think we can experiment for now23:26
pabelangersee how it works23:26
jamielennoxpabelanger: sorry, i meant the base role, i didn't see it added back in anywhere, but in openstack-zuul-jobs is good for now23:27
pabelangerah, right. Yes, that is just openstack-zuul-jobs right now. But, that is only because we don't have zuul stdlib ATM23:27
jamielennoxi wasn't sure if we came down on stdlib in zuul code base or seperate23:28
pabelangerI think that will be the next step, maybe move prepare-workspace into zuul specific23:28
pabelangeractually, will zuul stdlib be a config-project or untrusted?23:29
jeblairpabelanger: we have some options, including building some things into zuul itself (so you can use some jobs/roles without adding a repo).23:34
jeblairpabelanger: so we might put a repo out there with a bunch of stuff that you can add to your zuul system.  we might make a pypi package with things that we separately release.  we might distribute things with zuul itself.  we might do all of those depending on the nature of the specific items.23:36
*** jkilpatr has quit IRC23:38
*** jkilpatr has joined #zuul23:39
pabelangerjeblair: ack23:42
pabelangeralso, last question. Where did we land on python3 support for nodepool? Are we ready to start accepting some patches for that on feature/zuulv3 or keep holding off23:43

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