Friday, 2017-09-01

pabelangermordred: jeblair: it looks like changes to executor rw / ro paths will require a restart of zuul-executor. I believe we talked about adding reload support to zuul.conf for zuul-executor before02:36
pabelangerI've restarte ze01 to pickup latest zuul.conf02:40
pabelangerBoom!02:51
pabelangerhttps://docs.openstack.org/sandbox/02:51
pabelangerafs publishing from zuulv302:51
pabelangerremote:   https://review.openstack.org/499876 Copy contents inside html folder for python-docs job02:51
pabelangershould fix the html issue02:51
pabelangerjeblair: mordred: ^for the morning02:52
*** notlobryaj has joined #zuul05:18
*** notlobryaj has left #zuul05:19
*** bhavik1 has joined #zuul06:53
*** qwc has joined #zuul07:02
qwcHi, we got an obvious gerrit -> zuul/gearman-> jenkins configuration. Now we have a project with submodules, both the parent project and the submodule have it's Jenkinsfile and the proper configuration for gating inside zuul, but now we want to build the parent with the submodule when a change happens... how? (current approach: special jenkins job with special Jenkinsfile, which checks out the change from the Zuul Merger, any other options with zuul itself maybe?)07:12
qwcwhen a change inside the submodule happens <-07:12
*** electrofelix has joined #zuul08:50
*** bhavik1 has quit IRC10:57
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Add /nodes and /nodes.json to webapp  https://review.openstack.org/49996911:00
*** hashar has joined #zuul11:01
*** hashar is now known as hasharAway11:02
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Add /node-list to the webapp  https://review.openstack.org/49996911:03
*** _ari_|conf is now known as _ari_11:10
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Implement a static driver for Nodepool  https://review.openstack.org/46862412:02
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Implement an OpenContainer driver  https://review.openstack.org/46875312:02
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Refactor provider config to driver module  https://review.openstack.org/48838412:02
tristanCI'm now running nodepool-launcher with python3, which conveniently enables to run both zuul-server/nodepoold and zuul-executor/nodepool-launcher on the same node :-)12:10
*** dkranz has joined #zuul12:40
mordredtristanC: \o/ :)13:10
Shrewsmordred: with https://review.openstack.org/499755, i'm seeing 'item1' and 'complex1' being output solo in the job stream for some reason13:14
Shrewsmordred: any idea why?13:14
Shrewsmordred: http://logs.openstack.org/55/499755/3/check/zuul-stream-functional/57043b9/stream-files/stream-job-output.txt13:14
Shrews2017-08-31 20:57:45.167544 , for example13:16
Shrewsoh, that happened in the previous review, too. hrm.13:18
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Handle logging ansible python errors properly  https://review.openstack.org/49939713:19
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Remove -vvv from playbook invocation for log streaming test  https://review.openstack.org/49975313:21
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Add support for debug statements  https://review.openstack.org/49960813:21
mordredShrews: it's cause log streaming isn't deterministic13:24
mordredShrews: the stdout from the job gets output whenever it gets output13:24
mordredShrews: NOW - I'm a little concerned that we only see item1 in the loop and not item2 or item313:24
Shrewsmordred: that was my next question  :)13:25
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Don't output complex items in the summary line  https://review.openstack.org/49975513:30
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Make log streaming test three node  https://review.openstack.org/50004913:31
mordredShrews: ^^ slightly silly perhaps, but Ijust realized when we're looking at logging changes we should consider how they look for multinode too13:31
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Make log streaming test three node  https://review.openstack.org/50004913:45
Shrewsjeblair: sorry for my ignorance here, but reading (and re-reading) your zuul-cloner email, i'm not sure i grasp why the current zuul-cloner won't work and we need a shim to replace it. Maybe it's because i've never used it.13:58
Shrewsand maybe it's because i've only had 1 cup of coffee13:58
*** hasharAway has quit IRC14:11
mordredShrews: so - the thing is that zuul-cloner does what is being done on the executor then pushed now14:14
mordredShrews: so existing zuul-cloner won't work because existing zuul-cloner fetches git refs from zuul based on ZUUL_ env vars14:15
mordredand in v3 there is no zuul git server to fetch refs from14:15
mordredconceptually, however, the thing a user is trying to do when running zuul-cloner "I want the repos to be on this machine in the correct branch states" is still valid of course - it's just that most of those git states will have already been put onto thebuild node14:16
mordredso a shim that knows there are src repos with all the good stuff in src/ will let folks transition those jobs to remove their zuul-cloner calls14:17
mordredShrews: it's also an issue becaue manyof the calls happen in devstack hook scripts that people have already in their own repos, so we can't even just get really clever with migration tool14:18
Shrewsmordred: so, as an example, http://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/bifrost.yaml#n1814:20
Shrewsmordred: all of those named repos will already exist on the node (b/c your migration script will create a v3 job to do that?).14:20
Shrewsmordred: so we need the shim to realize that and do the right thing for them14:21
mordredShrews: that's right14:28
Shrewsi did not realize that v2 zuul could serve git repos14:29
mordredthat's actually how all the git got on to the nodes - and was a problem for some of the third-party ci systems like gozer at hp14:30
mordredas they wanted to run their zuul service on machines inside the hp firewall, but use nodes in the public cloud as build resources14:30
mordredbut since v2 expected the build node to clone from zuul - well, firewall14:30
Shrewsand they couldn't call home. yah, can see that being an issue14:31
mordredso all we need from the new zuul-clone is just for it to know how to clone/copy/link things from src/{{ zuul.project.canoncal_name }} to .14:33
mordredand then let people konw they can just skip that step altogether14:33
Shrewsmordred: seems easy enough. i'll take a stab at it. i assume just replacing the current zuul-cloner code is what we want here?14:35
mordredjeblair: two thoughts - a) we could print a warning every time new zuul-cloner is run with a message like "you don't need this tool anymore, repos are in src already and jobs can/should have required-projects:"14:36
mordredShrews: yah - I think we need a standalone script with no depends so it's easy to wget/cp into place14:36
jeblairmordred: yeah, and we can use logstash to track those14:37
mordredjeblair, Shrews: ^^ zuul-cloner today takes an argument which is the base location from which to clone repos ... should we keep that and have new zuul-cloner just clone master of those repos from that location if they aren't in src ?14:37
jeblairmordred: re 14:33 < mordred> so all we need from the new zuul-clone is just for it to know how to clone/copy/link things from src/{{ zuul.project.canoncal_name }} to .14:37
mordredjeblair, Shrews: that way if we get required-projects wrong in migration it won't break people's jobs?14:37
mordredor do you think it should just hard-fail so that people can konw they need to udpate a job?14:38
jeblairmordred: not necessarily "." -- zuul-cloner species a destination which may not be '.'.  but that's not too hard.14:38
mordredjeblair: indeed14:38
jeblairmordred: no, we should have it fail, but we should have it say to add the project to 'required-projects'.14:38
mordredalso - not fully related to this - but I note that most of our invocations of zuul-cloner list git://git.openstack.org ... should we maybe make a sed patch to replace those with https:// instead?14:39
mordredjeblair: ++14:39
jeblairmordred: because the job will be wrong (ie, it may be missing prepared changes) otherwise.14:39
jeblairmordred: if we weren't about to get rid if it, yes.  :)14:39
mordredwell - it's not just zuul-cloner14:39
mordredalso a bunch of enable_plugin heat git://git.openstack.org/openstack/heat14:39
jeblairyeah, but let's save that for a rainy day?14:40
mordredk14:40
* Shrews doesn't think it can get much rainier than mordred's home state, atm14:43
mordredShrews: I agree with you14:46
mordredShrews, jeblair: you may find http://logs.openstack.org/49/500049/2/check/zuul-stream-functional/ea1ca5f/job-output.txt.gz interesting - I changed the stream test job to be a 3 node job so that we could see 2 nodes of output (although in retrospect I probably could have just changed the playbook to use "all" and havethe controller ssh to itself - but whatev)15:07
mordredmainly so that we could also see how the logging works or doesn't for multinode15:07
mordredgha15:08
mordredI meant: http://logs.openstack.org/49/500049/2/check/zuul-stream-functional/ea1ca5f/stream-files/stream-job-output.txt15:08
Shrewsmordred: cool. will have to modify the greps to include node name15:11
dmsimardmordred: some projects are using ZUUL_ vars though, so those are gone too ?15:11
dmsimardhttp://codesearch.openstack.org/?q=ZUUL_&i=nope&files=&repos=15:12
*** EmilienM has quit IRC15:12
*** EmilienM has joined #zuul15:12
dmsimardAlso, some projects tend to look if Zuul cloner is present to determine if they're running in a gate environment15:15
dmsimardSome examples: http://codesearch.openstack.org/?q=.*(which%7Cif.*-e.*).*cloner.*&i=nope&files=&repos=15:16
dmsimardjeblair: ^15:16
dmsimardslightly simplified search http://codesearch.openstack.org/?q=.*(which%7Cif.*).*cloner.*&i=nope&files=&repos=15:17
*** dmsimard has quit IRC15:19
*** dmsimard has joined #zuul15:19
mordreddmsimard: the ZUUL_ vars are considered deprecated in v3 - we need to make a role that produces them / provides them to things - and we may want to come up with a flag we can provide that people can check to see if they're running inside a zuul or not15:28
mordreddmsimard: maybe if [ $USER = "zuul" ] ... ;) (not really though, as someone else running a different zuul could have the user account on nodes be not-named-zuul15:31
dmsimardmordred: yeah, there's also people running 3rd party CI which won't be on zuul v3 yet15:32
mordredyup15:32
dmsimardI'll point it out on the ML thread so that we don't forget we have users relying on different ways to detect if zuul cloner or zuul vars are available.15:33
dmsimardwhew, RDO is finally out15:44
dmsimardI can have a life again15:44
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add zuul.timeout variable to jobs  https://review.openstack.org/50011415:52
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: Update fetch-sphinx-output to collect contents of directory  https://review.openstack.org/50011615:56
*** rbergeron has joined #zuul16:04
qwchrm, did anyone read my question earlier today?16:21
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Validate zuul_stream func test output  https://review.openstack.org/49973216:27
jeblairqwc: i'm sorry, i don't have any experience with submodules.  i'm not sure zuul will handle them correctly.  we have avoided their use in openstack due to the complexity.16:46
mordredimplementing support for them should be easier to get right in v3, since the git operations are contained and not in job content anymore - but detecting and dealing with speculative states between parent and submodule would be very non-trivial16:54
mordredespecially once you add in the gerrit tracking submodule magic and in-tree job definitions16:56
mordredqwc: all that is to say there is not a general solution currently. however, since you know the specific parent repo and submodules, you could treat them as any other repos in a multi-repo job and use zuul to get parent and submodule repo onto the machine separately (ignoring that the submodule is a submodule- just treat it as a second project)16:58
mordredqwc: then have your job definition start by copying/moving the repo from zuul for the submodule into the correct subdir in your parent repo's source dir16:59
mordred(and in fact, once you do that you'll be halfway to just treating the two as separate repos without a submodule relationship that need integration testing between them)17:00
*** electrofelix has quit IRC17:01
*** harlowja has quit IRC17:30
openstackgerritPaul Belanger proposed openstack-infra/zuul-jobs master: Fix python3 encoding issues with zuul_afs  https://review.openstack.org/50013717:36
pabelangerjeblair: mordred: python3 fixes for zuul_afs and excludes^.  Write as bytes and encode as utf8.17:36
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Validate zuul_stream func test output  https://review.openstack.org/49973217:40
dmsimardI have some time again now that we finally shipped RDO. Any low hanging fruits I can gnaw my teeth on ?17:49
dmsimardahhhhhh maybe after food. That's a good idea. I'll do a round of reviews as well.17:52
Shrewsdmsimard: any idea what's up with this? http://logs.openstack.org/32/499732/6/check/zuul-stream-functional/13002be/job-output.txt.gz#_2017-09-01_17_44_27_37778017:55
dmsimardShrews: looks like a broken pipe error by rsync but you know that already :D17:57
dmsimardara-output is the directory the integration job writes to17:57
dmsimardMaybe the directory isn't there ? Maybe were confusing the control and the subnode ?17:57
dmsimard"/home/zuul/ara-output\" failed: No such file or directory (2)17:58
Shrewsoh, maybe the last failing task of the functional playbook has something to do with it17:58
jeblairdevstack-legacy-tempest-dsvm-neutron-full SUCCESS in 1h 33m 04s17:59
dmsimardAh maybe it prevented the ara generate command from running, yeah17:59
dmsimardjeblair: woot17:59
jeblairmordred: patchset 28 of https://review.openstack.org/497699 passes; i just pushed up patchset 29 which reworks things a little bit to try to converge on something that's closer to a form we'll want for the migration script.  i think one more evolution past that will probably make it so that the devstack jobs don't need to be much different than any other auto-converted job.18:01
Shrewshrm, i wonder if that just caught a bug. the 'always' block of mordred's failure playbook doesn't seem to be present in the output18:01
Shrewshrm, yeah. i think this is a logging bug18:08
dmsimardlet me see18:08
jeblairShrews, dmsimard: te Generate ARA html task is in the playbook that failed, so it didn't run.18:08
jeblairs/te/the/18:09
jeblairthat's why there's no ara-output directory18:09
jeblairShrews: so yeah, i think you're right -- validation failed, aborted main playbook, ara did not run, then the rsync pull of ara-output failed in the post playbook18:09
dmsimardShrews: this should be wrapped in a block: https://review.openstack.org/#/c/498209/14/playbooks/zuul-stream/functional.yaml18:09
openstackgerritMerged openstack-infra/zuul-jobs master: Fix python3 encoding issues with zuul_afs  https://review.openstack.org/50013718:09
dmsimardthe ara generate and gzip should be in an always18:09
dmsimardlet me send a patch18:10
Shrewsjeblair: yeah. my test is expecting output from the always block in https://git.openstack.org/cgit/openstack-infra/zuul/tree/playbooks/zuul-stream/fixtures/test-stream-failure.yaml?h=feature/zuulv3 , but it isn't there18:11
jeblairdmsimard: if you move 'ara generate' to an always, and the main block succeeds but it fails, will the playbook still exit non-zero?18:11
jeblairdmsimard: if you move 'ara generate' to an always, and the main block succeeds but ara fails, will the playbook still exit non-zero?18:11
jeblair(clarified ^)18:11
*** harlowja has joined #zuul18:12
dmsimardIf an error occurs in a "rescue" or "always" directive inside a block, it will fail, yes18:12
jeblaircool, that plan sounds good then :)18:12
dmsimardIf there is an error in the "block" directive, it will run the "rescue" directive if there is one and then run the "always" directive18:13
dmsimardIf nothing in the rescue and always directive fail, the playbook exits 018:13
jeblair(i was considering whether it would be appropriate to move the 'ara generate' to a post playbook.  it depends on whether we think we're "testing" ara as part of this test.  i tend to think we are, so we should keep it in the main playbook if possible.18:13
openstackgerritDavid Moreau Simard proposed openstack-infra/zuul feature/zuulv3: Always generate the ARA report, even on failure  https://review.openstack.org/50015918:16
dmsimardShrews: something like that ^18:16
openstackgerritDavid Moreau Simard proposed openstack-infra/zuul feature/zuulv3: Always generate the ARA report, even on failure  https://review.openstack.org/50015918:17
dmsimardjeblair: blocks are awesome when using the include_role task instead of the playbook role directive18:18
dmsimardjeblair: because it allows you to wrap one or more entire roles and properly catch/exit as required18:18
dmsimardjeblair: for example: https://github.com/rdo-infra/weirdo/blob/219d6f065495fcfab68aa90d191f62d247bb7f92/playbooks/packstack-scenario001.yml#L23-L3718:18
dmsimardSo in that provided example, we'll run two roles 1) install packstack and 2) recover logs18:19
jeblairdmsimard: yeah, i thought so -- we use them in zuulv2.5, but i just wanted to double check18:19
dmsimardHowever, if #1 fails, logs won't be recovered because it's the next task -- so we have a rescue that runs the log recovery and then properly fails18:19
jeblairpabelanger, clarkb: https://review.openstack.org/500114 will be handy for devstack job conversion18:22
mordredjeblair: ++18:24
jeblairi'm pushing https://review.openstack.org/499854 through18:26
jeblairthat changes the base job to use the cached repos18:26
mordreddmsimard: maybe both things should be in the block - so that if there's a mistake that causes the first one to fail we get the ara output?18:26
jeblairso keep an eye out for breakages cauesed by that18:26
dmsimardmordred: in the context of the integration job, the first ansible playbook run is supposed to pass18:27
dmsimardso I suppose if it fails we want to know about it and not exit zero :)18:27
Shrewsmordred: so, trying to find out where the missing output went from job-output.txt... if i have my local env setup correctly, i see the output in the generated file, but not in http://logs.openstack.org/32/499732/6/check/zuul-stream-functional/13002be/stream-files/stream-job-output.txt18:27
Shrewsmordred: admittedly, i'm using a different playbook to test block-always18:27
jeblairdmsimard: i don't think that change is right -- *that's* not the task that's failing18:28
mordreddmsimard: well - the second one is supposed to "fail" - but it's not supposed to fail the functional playbook because we have failed-when in there18:28
jeblairright that ^18:28
jeblairdmsimard: it's failing in Shrews' proposed change because he validates output, and he found a bug18:28
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Add helper script for doing local log streaming tests  https://review.openstack.org/50016118:28
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Fix spacer-lines to work with multi-node and items  https://review.openstack.org/50016218:28
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Stop output start and end times for each task  https://review.openstack.org/50016318:28
dmsimardahhh18:28
mordredShrews: ^^ I made you a script - because I got annoyed having to look in my scrollback18:29
mordredbut also so that testing log streaming locally doesn't have to be quite so arcane18:29
dmsimardShrews: ok I slightly misunderstood the failing issue -- were you going to set up that block/always then ?18:29
jeblairmordred, Shrews, dmsimard: we're all agreed that these should actually be unit tests, right?18:29
mordredno18:29
jeblairand we're going to do that after the ptg?18:29
Shrewsmordred: great, just when i put all the pieces in place by hand  :/18:29
jeblairgreat!18:29
Shrewsmordred: i mean... thanks!  :)18:29
jeblairwe should have talked about that before merging these changes with so little discussion.18:29
jeblairi think these should be unit tests.18:30
Shrewsdmsimard: no18:30
dmsimardjeblair, mordred: I'm planning to copy/paste some stuff over from ARA's unit tests to add unit tests for the zuul callbacks18:30
jeblairright, i thought that ^ was the plan18:30
dmsimardthe "hard" work of faking ansible resources and calling callback methods is already done so mostly copy pasta18:30
Shrewsjeblair: unit tests would cover these nicely. i thought it would be good to have this in place now since it's so easy18:30
Shrewsb/c, well, it's finding bugs now  :)18:31
jeblairShrews: right, that i can agree with.  i just thought since there's more and more structure going into the tree around this that it was worth checking in on the plan18:31
dmsimardShrews: +1, it's low effort and gives us something in the meantime18:31
jeblairif the plan is do this until we have time to swing around post-ptg and add (functional) unit tests, that's great.  :)18:32
mordredjeblair: I believe as much of this as is possible should be in unittests18:32
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Add zuul.timeout variable to jobs  https://review.openstack.org/50011418:32
mordredjeblair: but iirc there are some things we legit cannot test wrt ansible interaction in unittests because of local execution issues - and also sometimes it's useful to have a human-readable result (like docs-draft) when discussing impact of visual choices18:33
jeblairmordred: agreed.  perhaps after we import dmsimard's framework (and possibly with some tricks of our own) we can manage to solve both of those problems in a local-only context.18:35
mordredjeblair: ++18:36
dmsimardIt's quite possible my framework ends up horrible and you real python developers show me how it's done but at worst it'll give us a starting point and we also end up improving ARA's tests -- win/win :D18:37
mordredalso, once we have that we can likely move the zuul-stream job we made to a check-experimental or something like that18:37
dmsimardI like to say "I don't know what magicmock is, or what it does, but I'm happy it's here"18:38
mordredor, I guess we could put a path on it so that it runs if zuul_stream is touched - since that's the primary times when we want to see what the effect of the change would be with our eyes18:38
jeblairmordred: we can also ^ yeah that18:38
mordredin fact, honestly - we could do that now :)18:38
jeblairdmsimard: i have a pretty skeptical opinion of mocks.  we try to run things "for real" as much as possible.18:38
jeblairzuul runs a lot of ansible-playbook processes :)18:39
jeblairin its unit tests18:39
dmsimardjeblair: oh, yeah, my implementation mostly just mocks classes/nametuples so I don't have to re-write the entire object. I've looked at doing literal imports from ansible too and create "real-life" objects (tasks, etc.) but haven't got around to it yet.18:39
dmsimardI don't mock functions or hide implementation details18:40
dmsimardI wouldn't know how, anyways18:40
dmsimardThat stuff makes my brain explode18:40
jeblairyeah, i think it's a skill worth not having18:40
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Only run zuul-stream testing on callback changes  https://review.openstack.org/50016818:42
pabelangermordred: jeblair: can you remind me, with a child job, should I expect the a parent run playbook to be executed, or do we only execute a single run playbook18:45
mordredsingle run18:45
Shrewsi need to extricate myself from this annoying coffee shop. bb shortly18:45
pabelangermordred: okay, and why is that again?18:46
*** hashar has joined #zuul18:46
mordredpabelanger: so if you make a child job that inherits from a job thathas a run playbook, the child job's run takes over18:46
*** hashar has quit IRC18:46
*** hashar has joined #zuul18:46
mordredpabelanger: dunno if I could give a good why - it makes sense to my brain though - a child job to me says "I want qualities of the parent job but I want to run my own content instead"18:48
mordredpabelanger: are you running in to a case where it's not what you're expecting?18:48
pabelangermordred: sure, give me a minute to push up some code, and maybe see why mutliple runs was what I was hoping for.18:49
mordredpabelanger: cool18:49
pabelangermordred: but, this doable with a single child run too18:49
mordredpabelanger: (concrete examples are so much easier to reason about)18:49
pabelangerremote:   https://review.openstack.org/500155 WIP: Refactor run-docs role to use tox role18:50
pabelangermordred: ^so that is the code I was looking at18:50
pabelangermordred: basically, openstack-doc-build parents to tox-doc, which then parents to tox, tox has a run playbook which will call tox role18:51
pabelangerhowever, because of a single run in the job18:51
pabelangerhttps://review.openstack.org/#/c/500155/3/playbooks/tox/docs.yaml needs to be written where I call the tox role myself18:52
pabelangerwhere, if multiple runs we supported, I'd just have run-docs in openstack-zuul-jobs tox/docs.yaml playbook18:52
pabelangernot a huge issue, but could result is deduping of data18:52
pabelangerI think this goes back to the discussions of having job playbooks be reusabled, a top of roles being reusable18:53
mordredpabelanger: well - two things18:54
mordredpabelanger: a) you need to override the run playbook anyway as the run playbook for tox-docs is actually fundamentally incorrect for openstack18:54
mordredpabelanger: (so replace is actually important in this case)18:54
mordredpabelanger: but b) the run-docs content you've got after this split looks like post-run content to me18:55
pabelangermordred: a) yes, we can achieve that by setting tox_extra_args: -vv python setup.py build_sphinx unless there is something else I am forgetting18:55
pabelangermordred: b) ya, that is possible too18:55
pabelangerperhaps in this case, moving that into post-run, will do what I wanted18:56
jeblairpabelanger: back to the abstract question, if you're a visual person, perhaps this will help: https://docs.openstack.org/infra/manual/zuulv3.html#job-inheritance18:56
jeblairpabelanger: an interesting thought experiment is: if, say, the unittests job were to run its main playbook, where in that sequence would it run?18:57
jeblairpabelanger: (i can think of no satisfactory answer, which is among the reasons we don't attempt it)18:57
mordredpabelanger: tox_envlist too ... but I think once you move b) to being a post-run, then you can just set tox_extra_args and tox_envlist on the job and go back to having openstack-doc-build use the run playbook from the tox base job18:57
pabelangerjeblair: as I now understand it, it wouldn't today. However, if it did, I would expect it to run between tox-py27 pre-run and tox-py27 run.18:58
jeblairpabelanger: why not between run and post-run?18:58
pabelangerhowever, I think mordred post-run comment is likely the better way to organize this issue, I can test that quickly enough.18:59
pabelangerjeblair: Hmm, thinking18:59
pabelangerjeblair: in my mind, unittests is the parent, so, I'd expect that to run before the child, in this context19:00
jeblairpabelanger: okay, but i'd ask you to consider that's an arbitrary choice that might work for some contexts, but not others.  moreover, i think the concept of inheritance is somewhat nullified if you can't override the behavior.  as we've seen in this example, once the tasks in a job are correctly deconstructed into pre/main/post buckets, being able to override the main portion is key to the whole process.19:02
jeblairpabelanger: that construct allows us to make a basic "publish docs" job for any language, and then inherit replacing the run playbook for specific langugages, eg, python-docs, java-docs, etc19:03
pabelangerjeblair: yup, I agree with that. It wasn't thing I actually thought about, until I was looking at the openstack-doc-buid job, and took me a few moments to understand why tox - run playbook wasn't run19:04
mordredjeblair: could I get you to look at https://review.openstack.org/#/c/499809/ real quick?19:05
jeblairmordred: this process has, surprisingly enough, convinced me that bundling things in secrets comes as close as possible to our opposing goals of facilitating in-tree management and reusability.19:08
jeblairmordred: i feel like you are convinced otherwise19:08
jeblairmordred: i think we need to discuss this as both infra-team and zuul-team19:09
jeblairmordred: but there are several approaches that *work*19:09
Shrewsumm, didn't we fix the "worker found in a dead state" thing?19:09
jeblairmordred: and it's desirable to land one of them so we don't (and i'm not using the word casually this time) bikeshed on this.19:09
jeblairmordred: so i'm happy to +2 those and discuss this later (at the ptg seems ideal).  but if there's a possibility we choose to stick with bundled secrets, do you want to unbundle them now at the risk of rebundling them later?19:10
jeblairmordred: or would you rather keep them bundled then unbundle later?19:11
pabelangerShrews: I understood a new version of python fixed the issue, we should confirm we are still using that on zuul-executors19:12
jeblairShrews: we did so by installing a python that mordred built (and has in a ppa) on ze01; perhaps it got "upgraded"19:12
jeblairSpamapS: know anything new about the python SRU?19:12
Shrewsjeblair: i thought that was the case (was unsure if we were still running the fixed version). just saw the error on https://review.openstack.org/50016219:12
SpamapSjeblair: it's sitting in the queue still. SRU team only drops everything for Criticals, and this is just a High unfortunately. :-/19:14
jeblairShrews: oh, that's not zuul dying, that's ansible-on-node dying19:15
jeblairShrews: that node won't have a correct python19:15
jeblairShrews: can probably fix by installing/upgrading python from the ppa19:16
jeblairwhich isn't in our mirror19:16
SpamapSjeblair: https://launchpad.net/ubuntu/xenial/+queue?queue_state=1&queue_text= <-- the queue it's sitting in19:16
jeblairSpamapS: thanks!19:17
pabelangerjeblair: Shrews: we should be able to do the same thing we did for bwrap in tools/setup-tests.sh with test-setup role19:18
jeblairmordred: er, i have to grab lunch now; chat when i get back?19:18
SpamapSjeblair: once it gets accepted it should appear on this report https://people.canonical.com/~ubuntu-archive/pending-sru.html (and we should get notifications if we're subscribed to the bug)19:18
pabelangerjeblair: mordred: to loop back to discuss a few minutes ago, do you mind looking at 500155,3 and 500155,4, and indicate which way would be easier for you to support. Both will produce the same result19:20
mordredjeblair: sure!19:24
mordredpabelanger: oh wow - can we verify from someone whether or not we still actually need the HUDSON_PUBLISH_DOCS env var?19:26
mordred:)19:26
pabelangermordred: ya, I haven't looked into that yet. But sure, still need to covert out the zuul.env vars also19:27
pabelangermordred: TIL: http://git.openstack.org/cgit/openstack/neutron/tree/doc/source/conf.py#n7619:28
pabelangermordred: so, we'd likely need to work with docs team and clean that up19:28
mordredpabelanger: oy. ok. later for that :)19:29
mordredpabelanger: I definitely like patchset 4 better19:29
mordredpabelanger: although I left  acode review19:29
pabelangermordred: ah, thanks. I'll push up a change after jeblair has a chance to look19:30
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Override tox requirments with zuul git repos  https://review.openstack.org/48971919:34
kklimondawith zuul, if I have two repositories A and B, and two patchsets Aa and Ba that are dependent on each other (think two repositories creating a single build), when I create a one way dependency (Aa Depends-On: Ba) would zuul handle it by not building the Bb patchset, and building both Aa and Bb in a single step? If not, if there is anything we can do to achieve that?19:35
Shrewsmordred: w00t. got your test-logs.sh to work. took some magicalness to source all the right repos and the right versions19:36
kklimondas/Bb/Ba/g19:37
mordredkklimonda: zuul does not currently support cyclic dependencies such as that- instead we propose one Aa, then a second Bb depends-on Aa - then if there needs to be a consumption of Bb in A, a third Ab depends-on Bb19:39
mordredadding support for co-dependent changes would be possible and has been discussed, but it's been on the backburner because OpenStack has decided that it would prefer that such co-dependent changes be disallowed19:41
Shrewsok, found the bug19:43
mordred\o/19:44
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Override tox requirments with zuul git repos  https://review.openstack.org/48971919:44
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul feature/zuulv3: Validate zuul_stream func test output  https://review.openstack.org/49973219:44
Shrewsmordred: fyi, it was the "- block:   - always:". changed it to "- block:  always:"19:45
Shrewsweird that ansible doesn't barf on that19:46
mordredShrews: yah. weird19:46
mordredShrews: but love the latest version of the patch19:46
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Override tox requirments with zuul git repos  https://review.openstack.org/48971919:53
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Rename tox_command_line in docs to tox_extra_args  https://review.openstack.org/48975819:53
Shrewsdmsimard: why did you WIP https://review.openstack.org/500159? lgtm19:59
mordredpabelanger, Shrews: coupla easy ones?  https://review.openstack.org/#/c/499364 https://review.openstack.org/#/c/489758/19:59
mordredShrews: also - you might find https://review.openstack.org/#/c/489719/ interesting - it allows running tox unittests against git sources from zuul20:01
mordredor, it theoretically does so at least20:01
mordredright now it breaks spectacularly :)20:01
Shrewsmordred: can a template inherit from another template? looks like that might be a better setup, if so20:03
Shrewss/better/simpler/20:03
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Override tox requirments with zuul git repos  https://review.openstack.org/48971920:03
mordredShrews: I don't think so?20:03
mordredShrews, pabelanger: ooh, https://review.openstack.org/#/c/498916/ can go in now too20:05
* mordred hands Shrews and pabelanger pies20:05
Shrewsthen we could have a publish-to-pypi (that does it quietly), and a publish-to-pypi-announce. but this works too20:05
kklimondamordred: hmm, yes - splitting affected reviews into 3 parts so that the cycle is broken is something that I want to propose. We'll see how it goes :)20:10
openstackgerritMerged openstack-infra/zuul-jobs master: Rename tox_command_line in docs to tox_extra_args  https://review.openstack.org/48975820:10
mordredkklimonda: cool! our basic rationale is that it's a good habit to be in especially for distributed systems where asking someone to upgrade two systems simultaneously might be extra hard20:11
clarkbit also aids with bisectability20:11
mordredyah20:11
SpamapStomato, tomato, extra hard, impossible... let's call the whole thing off20:11
kklimondamordred: our usecase is a bit different, we have a large C++ codebase that is unfortunately split into two repositories, where both are part of a single build process, and are tightly dependent on each other.20:13
clarkbkklimonda: have you seen openstack? ;)20:14
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Make log streaming test three node  https://review.openstack.org/50004920:15
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Add helper script for doing local log streaming tests  https://review.openstack.org/50016120:15
kklimondaclarkb: touche ;)20:15
mordredkklimonda: yah - this is a pain we know :)20:15
kklimondaI've always been under an impression that openstack modules can at least be built in isolation though20:15
kklimonda(and tested with mocks)20:16
clarkbit depends on how you want to define built in python land20:16
clarkbto test openstack we install and deploy something like 40 tightly integrated python repositories20:17
clarkbin a single "build"20:17
clarkbthough we've trimmed down from that high water mark its closer to 15 now I think20:17
jeblairmordred, pabelanger: back; pabelanger which thing did you want me to look at?20:19
jeblairmordred: and what do you think of what i said re secrets / how do you want to proceed?20:20
pabelangerjeblair: 500155,3 and 500155,4, would like to see if you have a preference. Both should (minus the bug mordred pointed out) do the same thing20:21
mordredjeblair: hrm. so - once you're done looking at the pabelanger patches - unfortunately the process got me to the opposite place as you - I really liked your suggestion of putting the specific values into the playbooks in the base job and thought that hit the right balance for my personal sensibilities20:24
mordredjeblair: I'm not opposed to just keeping it as it is now, it's just a bunch more duplicated opaque secret bundles20:24
jeblairmordred: mostly, i think this is fine for infra, but a difficult pattern to use in zuul-jobs.  if we did so, we would be forced to use site variables.  maybe that's okay.20:26
mordredyah - I don't think it's the pattern we shoudl always use for sure20:27
jeblair(it's just a tradeoff; site variables are slightly less flexible, but they are good for low-level zuul-jobs)20:27
mordredjeblair: and maybe it's ok for the pile of copy/pasta of secret data to exist for now, since ultimately we hope to solve several of them with static nodes20:27
mordredmaybe it would annoy me less if it was actually different keys :)20:29
jeblairmordred: yeah, though not log fileserver obviously :)20:29
jeblairright, and at least in the cases where we have different servers, they probably *should* be different keys :)20:29
jeblairmordred: okay, i'm convinced we have a shared understanding of the problems at this point; i suggest we talk about this in earnest at the ptg with more people, and you pick the direction we go for now.20:31
mordredjeblair: I've abandoned the patchesfor now - will just add three new secrets to the file20:31
jeblairmordred: ok20:31
jeblairmordred: i am at least glad we got to the point were we have a complete viable alternative to look at, thanks.  i don't think we understood the whole problem space until then.20:32
mordredjeblair: \o/20:33
jeblairmordred, clarkb, pabelanger: i'd like to merge https://review.openstack.org/497699 which adds the devstack-legacy job.  it's running now, and it's very close, i think to what we want to have ready for the migration script.  mordred can you take a look at it with that in mind?20:42
pabelangerlooking20:43
mordredjeblair: yup- looking20:43
jeblairmordred: i actually think the entire playbook can just morph into our "compatability" playbook for all auto-migrated jobs.20:45
mordredjeblair: that's pretty - and yes, I think you're right - although there's something that can totally screw the yaml parser when we inline converted stuff and I don't remember what it is ...20:47
mordredjeblair: +2 from me - and nice work20:47
jeblairmordred: apostrophies ?20:47
mordredyah. I think so20:48
jeblairmordred: but yeah, maybe we end up making that a script20:48
pabelangerjeblair: +2, nice work20:48
mordredjeblair: at the very least if it's not PRECISELY the same it can be the model for it20:48
jeblairyeah, *structurally* i think that's what we're looking for20:51
jeblairi mean, the nodepool stuff should be a role20:51
jeblairand the env vars should be more inclusive20:51
jeblairand the script should probably be a script20:51
jeblairbut all the elements are there :)20:51
mordredyup. it doesn't have to be pretty20:51
mordredalthough it IS20:51
mordredjeblair: I think with pabelanger's doc publisher stuff adn that legacy script that actually covers all the jobs from both nodepool and zuul20:51
jeblairtwo down!  ;)20:52
mordredjeblair: :)20:52
pabelangerYay20:52
mordredjeblair: honestly with a publish-to-pypi template, python-jobs, python35-jobs and infra-publish-jobs - that's actually a LOT of projects down ;)20:53
jeblairyep20:53
mordredjeblair: I just thought of a fun synthetic test we could write for project-config's zuul.yaml20:56
mordredjeblair: parse the yaml and grab every secret that contains a ssh_known_hosts and fqdn and try to ssh to it with that host key20:57
mordreddon't even need to decrypt the secret - just see if the ping to the host works and returns the same host key - like a lint check20:57
mordred(I say this while I'm putting in three different host keys and trying very hard to make sure I'm not copy-pasting them backwards or something)20:58
jeblairmordred: ++20:59
mordredjeblair: also - I was thinking about / pondering an update to the zuul.d code ... largely because as I work with secrets I keep wanting to put them in their own file because they're so big ...21:01
mordredjeblair: what if we supported a file named for each object type - so zuul.d/secrets.yaml zuul.d/pipelines.yaml - and if we find any of them in the zuul.d dir load them first before run-partsing the rest?21:02
mordredtoo weird?21:02
jeblairmordred: not actually necessary for one -- regardless of the order of the files, the *types* are always loaded in the same order21:03
jeblairmordred: file order only matters if you have, say, jobs split over multiple files21:03
jeblairmordred: so you can create secrets.yaml and jobs.yaml now and achieve the exact same behavior as a single file21:04
mordredjeblair: oh - good point - and excellent21:04
mordredjeblair: so if we did that and had the migration script emit a legacy.yaml - that would naturally load correctly with jobs.yaml loading first then legacy.yaml yah? (which is, I assume, the order we want them loadded)21:06
jeblairmordred: yes (they'll both have jobs, so lexography matters here, but j < l so that's the order) and yes (that sounds like a reasonable order)21:07
*** hashar has quit IRC21:21
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Add role to do a vos release on an AFS volume  https://review.openstack.org/50020021:39
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Add role to do a vos release on an AFS volume  https://review.openstack.org/50020021:40
pabelangermordred: openstack-build-docs for shade: http://logs.openstack.org/01/500201/1/check/openstack-doc-build/9771ffc/html/ looks good21:58
mordredpabelanger: woot!22:32
openstackgerritMerged openstack-infra/zuul-jobs master: Remove project stanza  https://review.openstack.org/49927823:10
openstackgerritMerged openstack-infra/zuul-jobs master: Add role to do a vos release on an AFS volume  https://review.openstack.org/50020023:24
*** olaph has quit IRC23:36
*** olaph has joined #zuul23:37

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