Thursday, 2017-07-06

jeblairwhew, glad i could help00:09
*** xinliang has quit IRC00:53
*** xinliang has joined #zuul01:06
*** xinliang has quit IRC01:06
*** xinliang has joined #zuul01:06
*** rcarrillocruz has quit IRC01:42
*** rcarrillocruz has joined #zuul02:16
*** clarkb1 has joined #zuul05:19
*** pbrobinson_ has joined #zuul05:21
*** harlowja has quit IRC05:22
*** pbrobinson has quit IRC05:22
*** clarkb has quit IRC05:22
*** pbrobinson_ is now known as pbrobinson05:22
*** eventingmonkey has quit IRC05:30
*** eventingmonkey has joined #zuul05:33
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Add support for custom ssh port  https://review.openstack.org/46875206:34
openstackgerritTristan Cacqueray proposed openstack-infra/zuul feature/zuulv3: Ensure build.start_time is defined  https://review.openstack.org/48084306:36
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Abstract Nodepool request handling code  https://review.openstack.org/46874806:37
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Abstract Nodepool provider management code  https://review.openstack.org/46874906:38
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Collect request handling implementation in an OpenStack driver  https://review.openstack.org/46875006:38
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Extend Nodepool configuration syntax to support multiple drivers  https://review.openstack.org/46875106:39
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Implement a static driver for Nodepool  https://review.openstack.org/46862406:51
openstackgerritTristan Cacqueray proposed openstack-infra/nodepool feature/zuulv3: Remove FakeProvider getClient monkey-patch  https://review.openstack.org/47513106:54
openstackgerritTristan Cacqueray proposed openstack-infra/zuul feature/zuulv3: github: gracefully handle unknown event  https://review.openstack.org/47324907:12
openstackgerritTristan Cacqueray proposed openstack-infra/zuul feature/zuulv3: github: prevent getRepoPermission to raise AttributeError  https://review.openstack.org/47536807:20
*** isaacb has joined #zuul07:24
*** bhavik1 has joined #zuul07:52
*** bhavik1 has quit IRC08:10
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: sql-reporter: add support for Ref change  https://review.openstack.org/46553908:52
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: sql-reporter: add support for Ref change  https://review.openstack.org/46553908:57
*** hashar has joined #zuul09:06
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: DNM Exercising multi-node inventory  https://review.openstack.org/48101412:39
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: DNM Exercising multi-node inventory  https://review.openstack.org/48101412:41
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: DNM Exercising multi-node inventory  https://review.openstack.org/48101412:51
*** dkranz has joined #zuul12:52
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: DNM Exercising multi-node inventory  https://review.openstack.org/48101412:55
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: DNM Exercising multi-node inventory  https://review.openstack.org/48101412:58
mordredjeblair, Shrews: I discovered a bug this morning14:15
mordredif you look at that job ^^14:15
mordredjeblair: oh! never mind - it was just a bug in my slide14:15
mordredthe job itself is defined properly14:15
mordredjeblair, jlk: gave a status update on zuul v3 internally at RH this morning. got a question about github status reporting and single vs. multiple urls14:19
mordredjeblair, jlk: the person asking the question said that the jenkins github integration supports setting multiple statuses on a job after I told him that our understanding was that the gh api only allowed a single status14:19
mordredjeblair, jlk: so - it may be worth either figuring out what jenkins does to support this or if it's not I'd love to have a good simple explanation I can give or something14:20
SpamapSI believe you can set many statuses on a PR14:35
SpamapSI can't see why you wouldn't be able to.14:35
SpamapSbut jlk has been inside the beast.. I've just been observing it.14:36
mordredyah - I defer to jlk for sure14:37
mordredI mostly want to either understand what the difference so I can answer questions appropriately - or find out if there is something we missed somewhere14:38
* mordred isn't finding much by trolling the internet14:38
mordredI've asked the rh human if he has a link to a github PR with multiple statuses set by jenkins I could look at14:39
mordredjeblair, jlk, SpamapS: oh. I think I understand more things now14:51
*** isaacb has quit IRC14:57
jeblairmordred: what's that?15:01
jeblairi'm going to self-approve my docs stack.  we need to get that merged, and i think it's been fairly well reviewed even though the current votes are spotty.15:04
jeblairand mordred's job changes too15:04
mordredjeblair: ++15:06
mordredjeblair: creating more than one pull request status (like one per job) is totally a thing you can do - however, marking any of those statuses as "required" on a protected branch is a different thing and requires admin access15:07
openstackgerritMerged openstack-infra/zuul-jobs master: Add run-bindep role and add it to unittests pre  https://review.openstack.org/47826415:07
mordredjeblair: so if we want to tell folks to put a "require passing zuul build" on a branch protection, that needs to be single - otherwise defining jobs in the repo gets subverted15:07
jeblairmordred: is one status per job, plus one overall status possible?15:08
jeblair(so only the overall status would be required)15:08
mordredstatuses seem to be however-many you want - however, iirc, github will show overall status considering all statues - even non-voting ones15:09
mordredso reporting all of them broken out may produce noise/misleading overview15:10
jeblairmakes sense15:11
mordredotoh - the required statuses are managable via the API - so one could also imagine a "let zuul manage required status" option that would require giving zuul admin access to the repo - and if a user opted in to that having the github plugin update the required checks entry on the branch at the start of a gate job to include each of the voting jobs15:12
mordredI'm not sure how valuable that would be15:12
jeblairmordred: yeah, but the set of voting jobs could be specific to that particular pr (with files matchers, etc)15:13
jeblair(i mean, we could return dummy success statuses, but then it'd be noisy again)15:13
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Add configuration documentation  https://review.openstack.org/46332815:16
mordredjeblair: yes indeed. I think it would be noisy15:16
mordredjeblair: it seems like making it easy for someone to choose one-status or one-status-plus-status-per-job may be the biggest win15:17
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Reorganize docs into user/admin guide  https://review.openstack.org/47592815:17
mordred(people know what is noise and what isn't)15:17
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Use oslosphinx theme  https://review.openstack.org/47758515:20
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Move status_expiry to webapp section  https://review.openstack.org/47758615:20
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Move tenant_config option to scheduler section  https://review.openstack.org/47758715:20
jeblairmordred: yeah, but i worry a bit about the non-voting jobs causing github's status summary to be red.  we know that in gerrit people give a lot of weight to the overall status.  i think people might think they want many+1 and then be surprised by that.  maybe we shouldn't report non-voting as a status, but then that makes it less visible.  of course it's already much less visible with only one status.15:20
jeblairmordred: we may need to have some experimental demonstrations.15:21
mordredjeblair: ++15:23
mordredcrap. I should have abandoned https://review.openstack.org/478264 when I squashed those patches :(15:53
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Fix test_bubblewrap_leak  https://review.openstack.org/48112315:53
*** clarkb1 is now known as clarkb15:54
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Correct sample zuul.conf  https://review.openstack.org/47758816:09
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Use executor section of zuul.conf for executor dirs  https://review.openstack.org/47758916:10
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Use scheduler-specific log config and pidfile  https://review.openstack.org/47759016:10
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Permit config shadowing  https://review.openstack.org/47908416:11
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add TenantProjectConfig object  https://review.openstack.org/47907316:11
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Add v3 update slides  https://review.openstack.org/48113416:14
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Port in tox jobs from openstack-zuul-jobs  https://review.openstack.org/47826516:20
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Rename .zuul.yaml to zuul.yaml  https://review.openstack.org/48114016:20
*** hashar is now known as hasharAway16:27
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Move zookeeper_hosts to zookeeper section  https://review.openstack.org/47759116:36
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Add some information about canonical_hostname  https://review.openstack.org/47759216:36
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Fix some inconsistent indentation in docs  https://review.openstack.org/47759316:37
*** harlowja has joined #zuul17:13
SpamapSso...17:28
SpamapSI think the thing to do is to report success of non-voting as a successful status.17:29
SpamapSBut to call that status something like {name}-non-voting17:29
SpamapSAnd then having an overall status that is named after the pipeline seems like the one we would suggest to users that they require for merge.17:29
SpamapSThat way the status summary on a job that failed non-voting but passed others is green, and shows all of the voting and non-voting results, but then you have the overall pipeline's success as the github permissions latch.17:30
SpamapSI think if it's done any other way, it will feel half-assed to github users.17:31
SpamapSIf you roll them all up.. it feels coarse. If you report fails that don't stop the gate, it erodes trust.17:31
jlkmordred: SpamapS: would love to chat about github reporting if y'all want to listen for a few minutes17:50
jlkalthough I thik I see you've covered some of the ground on what I have to offer17:50
* jlk should read more17:51
SpamapSjlk: I think you could probably verify or repudiate some of the assumptions I made.17:54
SpamapSBut my observations tell me it should work fine this way.17:54
jlkYeah so there's a couple concerns.17:54
jlkThere's visible noise of a lot of different statuses being set on a PR17:54
jlkand how github rolls them up into a generic red/green17:54
jlkThere's also the difference in views, of a user with write access vs a user without17:55
jlk(so what a contributor sees vs a reviewer)17:55
jlkand chasing the myriad of potential status for gate requirements would be ... difficult, as the user could change jobs as part of the PR17:55
jlkso I do like the idea of a single zuul rollup pipeline status17:55
jlkGood news is that status setting does not generate email17:56
jlkBad news is that it's hard to highlight the "special" status, the one that might have a link to a landing page that shows all the jobs for the change with links into the logs and such. It'll get lost in the noise of the other statuses.17:57
jlkgranted, this all really needs end users' feedback to verify our assumptions.17:58
jlkMy assumption is that we care about individual jobs when something fails, but don't really care about it when something passes. So our UX in bonny has been to use a single status with a URL to a collection of the job logs. On pass, green status. On fail, red status _PLUS_ a comment in the PR outlining all the jobs that ran with individual links to logs, so you can quickly see which job failed and jump right to it.17:59
jlkthat way a github notification DOES go out that CI failed, so the consumers can do something abou tit17:59
jlkI honestly feel like we should take what we have today, expose it to end users actually using it day to day, and then gather feedback about how the UX is, where they struggle, etc.. and then make any necessary changes after that.18:02
SpamapSjlk: question: can we delete statuses?18:08
jlkI believe so, double checking18:08
SpamapSbecause I'd want those reds to disappear on success18:08
jlkactually, no18:08
jlkwell, sort of18:08
SpamapS(I mean if we had red for failing jobs but nothing for passing)18:09
jlkYou can set another status, and it'll mask a previous one18:09
jlkgithub exposes the last set status for a given user/context18:09
jlkif you've set a fail, you can mask it with a pending or success, but you cannot delete it18:09
SpamapSI think the way it is now is probably fine, and you're right: let's just get somebody using it.18:09
SpamapSBut I also think that users will want more granular statuses in the Github status API, and not in comments.18:10
SpamapSso, yeah, we just need some data18:10
openstackgerritJeremy Stanley proposed openstack-infra/zuul master: Include basic rsync stats in ansible log  https://review.openstack.org/48117918:10
funginot a fan of adding "features" to teh zuul 2.x ansible launcher at this stage, but ^ is pretty minimal and may help us get a handle on the log volume18:12
fungigives users something they can look at now to see how much space a particular job's logs occupy18:12
dmsimardclarkb: so re: logical split of resources in nodepool, I put on my caving hat, turned the flashlight on and delved into history to find this: https://github.com/openstack-infra/project-config/blob/98f5d32311717d696f582ae0c5b819354b89840a/nodepool/nodepool.yaml#L44818:27
dmsimardclarkb: that doesn't tell me if the stuff ended up being the same tenant or not, though. I would venture to say it wasn't ?18:27
clarkbdmsimard: b1 through b5 were all the same tenant18:30
dmsimardso the purpose of the different "providers" was just to put them on different networks within the same tenant ?18:31
dmsimardso in practice nodepool was uploading images like 5 times to the same tenant ?18:31
clarkbdmsimard: yes18:39
mordredjeblair: we may want to put a link to https://docs.openstack.org/infra/zuul/feature/zuulv3/ in the readme - the docs we just landed publish there19:07
mordredjlk, SpamapS: I agree this is a needs-user-feedback item for sure19:09
clarkboh I guess we do do the flavor thing in osic too, but its same size just different disks19:09
clarkbdmsimard: ^19:09
* dmsimard looks19:09
mordredjlk, SpamapS: today's human's feedback was basically "jenkins reports each job and we really like that" - so we may want to figure out a way to expose a mechanism for a user to express the model they want19:10
mordredlike, I like what you're doing in bonny and that seems like what I'd prefer19:10
jlkyeah, we're just going to have to put it in front of people, show a passing report and a failing report19:10
jlkI just found something new we need to consider.19:11
jlkGithub reviews have a .... quirk.19:11
dmsimardmordred: I think one of the weaknesses of Zuul is periodic jobs19:11
jlkunlike Gerrit, a github reviewer can first leave either an approved or a request_changes review.19:11
dmsimardmordred: It will run them, but trying to determine the history/trend of a periodic job is non-trivial (or impossible)19:12
dmsimardWhereas I guess this is core jenkins19:12
jlkTHEN they can leave a "comment" review, and that comment review will not mask / replace the "approved" or "changes_requested" status of the PR.   A comment review does not mask previous reviews.19:12
mordreddmsimard: yup. tristanC has written a dashboard for zuul v3 which should fix this19:13
* dmsimard nods19:13
dmsimardI've seen it :D19:13
jlkSo our algorithm which simply takes the last provided "review" from a user as their vote is wrong, it needs to NOT take a comment, if there was a previous vote yes/no on the matter.19:13
clarkbdmsimard: right today you have to rely on graphite, logs, and email19:13
mordreddmsimard: :)19:14
fungilack of more detailed trending in zuul was always something we figured would get sorted once the mysql reporter existed19:14
mordredhttps://review.openstack.org/#/c/466561/4 <-- should make us much happier there19:14
fungisince it didn't preserve state itself, it couldn't really provide history19:15
mordredjlk: oh fun19:15
mordredfungi: ++19:15
mordredjlk: and yes - I think putting it in front of people and gettting feedback will be a huge win :)19:15
jlkalright, I'm going to update our review algo to handle this comment masking.19:16
fungion its face that doesn't sound a whole lot different from gerrit19:18
fungii can leave a code review or workflow vote, and then i can follow up with additional comments which don't set any vote, but my prior vote carries over19:19
mordredjeblair: when you get back - https://review.openstack.org/#/c/481014/ doesn't show the console output from the 'echo "Only on the OSD nodes $(hostname)"' task19:19
mordredjeblair: it's worth noting that this is a) a multi-node job b) a task in the second play of a playbook19:20
jlkfungi: oh? hrm, I thought a comment (+0) would replace the +/- 119:23
jlkoh wow, github just added code owners, where you can request / require reviews from specific github users on changes to specific paths of your project, and it looks like you can include people outside your org.19:23
mordredjlk: that's neat19:33
jlkI'm wrong, doesn't work for people outside your org19:33
jlkoh19:43
jlkbut in an org repo (not a personal repo) you can add collaborators that have read access, so you'll be able to assign and require reviews of them, without giving them full write access to the repository.19:44
fungijlk: well, that's a quirk of the interface in gerrit, i believe. the api allows you to add comments without setting a vote, and that doesn't do the same thing as voting 019:44
jlkoh okay.19:45
fungithe gerrit webui just happens to always give you the option of setting a vote, defaulting to your last vote on that patch set19:45
fungiand leaving it alone (not changing your vote back to 0 in the webui) doesn't emit any vote in the event stream for gerrit 2.11 at least (though later gerrit releases i believe always echo the last vote for each label now or something like that?)19:46
jeblairSpamapS: in working on incorporating the per-build ssh keys, i had some further thoughts.  i took those and synthesized them with some suggestions from mordred and i've created 2 stories.  they aren't mutually exclusive -- we can do none, either, or both.  (though i think for the specific case of ssh keys even if we implement both, i would probably only use one).21:42
jeblairSpamapS: https://storyboard.openstack.org/#!/story/2001110 and https://storyboard.openstack.org/#!/story/200111121:43
jeblairSpamapS: let me know what you think about those21:43
* mordred has opinions, but will let SpamapS read the stories first21:43
jeblairfungi, clarkb, jlk, tobiash, jamielennox: you may be interested in those too ^21:44
jeblairerm, somehow all of the docs changes have started timing out on py35 jobs21:47
fungii likely have opinions but need to go cook dinner21:49
jeblairif we need to make a spec for one or both of these, i'm fine with that.  just say the word.  :)21:49
fungii've pulled up both stories so i can read them after dinner21:50
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Don't log starting to log messages to build log  https://review.openstack.org/47943921:57
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Move status_url to webapp config section  https://review.openstack.org/48075922:03
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add docs on allow-secrets  https://review.openstack.org/48072622:03
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Fix indentation error in docs  https://review.openstack.org/48074022:03
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Clarify canonical_hostname documentation  https://review.openstack.org/47902022:03
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Rename git_host to server in github driver  https://review.openstack.org/47759422:03
jeblairaha, found it.  the git_host change conflicted with the github depends-on stuff that merged22:04
openstackgerritMerged openstack-infra/zuul-jobs master: Port in tox jobs from openstack-zuul-jobs  https://review.openstack.org/47826522:05
openstackgerritMerged openstack-infra/zuul-jobs master: Rename .zuul.yaml to zuul.yaml  https://review.openstack.org/48114022:05
jlkoooh, sorry about that22:05
clarkbjeblair: reading the stories, will openstack create keys for you? it is implied that it will but I thought you had to supply the key?22:05
clarkbhuh openstack client says if you don't pass in a file then it creates one22:06
clarkbnot sure if that happens cloud side or client side22:07
jlkPretty sure nova generates a key22:07
jlkdoesn't happen client side22:07
clarkbone gotcha if nova is doing it is that we may still have to generate them locally if we want to support not openstack22:08
clarkbapi docs say one is created for you so must be nova side22:09
jlkGets created in nova/compute/api.py22:10
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Add TenantProjectConfig object  https://review.openstack.org/47907322:11
jeblairclarkb: exactly -- with nova i think we can do it either way (local or openstack-generated).  other drivers may need to do some local generation.22:12
clarkbwe would also need glean to set keys for more than root, or start using root everywhere22:14
clarkbassuming we go with the nodepool option instead of the zuul option22:15
jeblairclarkb: that's true.  does it support that?  (though, moreover, i'm guessing cloud-init doesn't...)22:16
jeblairso if that's not an option, then even if you do the nodepool thing, you almost still need the base job thing to bootstrap the zuul user.22:17
clarkbjeblair: cloud init does, glean doesn't22:17
jeblairoh ok.22:17
jeblairhow does that work with the keypair extension?22:17
clarkbjeblair: cloud init will create and configure arbitrary users (its why we end up wtih ubuntu, centos, fedora, cloud, etc) but glean will only add keys to root22:17
clarkbjeblair: I think with cloud init it will add the keys provided by nova to any configured user22:17
jeblairokay.  so that still may not be exactly what we want.  :)22:18
clarkbjeblair: with glean we'd have to come up with some method to differentiate root/not root or also configure both22:18
openstackgerritJames E. Blair proposed openstack-infra/zuul feature/zuulv3: Permit config shadowing  https://review.openstack.org/47908422:18
jeblairclarkb: that starts to tie us a bit to glean, or at least makes using non-glean a bit more awkward22:19
mordredI'd like to avoid anything that involves putting more logic anywhere near cloud-init or glean22:31
mordredlike, as in, I _very_ strongly am opposed to anything that requires any such smarts22:31
mordredwe can already set, in a nodepool image config, what the remote user is - in setting up nodepool to use keypairs, that can mean "tell nodepool what user keypairs are going to get added to on your image"22:34
mordredit's not important that we be able to set which user that is at runtime- only that we know what user it is22:34
jeblairmordred: yeah, but if we rely on glean/cloud init, we're setting the key for root too, which we don't want to do22:35
mordredif someone wants to use a stock ubuntu cloud image that has cloud-init set up an ubuntu user and put keypairs on it, they just need to set user=ubuntu in their config22:35
jeblairi mean, i guess it's okay, we just need to have our 'revoke-sudo' role *also* remove the key from root's authorized_keys22:35
mordredjeblair: we're not - we're setting the keypair on the user that the image defines as the user to put the keys on22:35
jeblairmordred: glean/cloud-init do that, and clarkb says cloud-init will do it for all the users22:36
jeblairmordred: are you saying nodepool can somehow tell openstack and/or cloud-init to only add the keypair to the zuul user?22:36
clarkbwhat nodepool/nova do is put keypairs in the metadata I do not think those come with any additional metadata22:37
mordredthis is what cloud-init puts in to root's .ssh/authorized-keys on a cloud-init image with a keypair:22:37
mordredno-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ubuntu\" rather than the user \"root\".';echo;sleep22:37
mordred10" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLsTZJ8hXTmzjKxYh/7V07mIy8xl2HL+9BaUlt6A6TMsL3LSvaVQNSgmXX5g0XfPWSCKmkZb1O28q49jQI2n7n7+sHkxn0dJDxj1N2oNrzNY722:37
mordredpDuPrdtCijczLFdievygXNhXNkQ2WIqHXDquN/jfLLJ9L0jxtxtsUMbiL2xxZEZcaf/K5MqyPhscpqiVNE1MjE4xgPbIbv8gCKtPpYIIrktOMb4JbV7rhOp5DcSP5gXtLhOF5fbBpZ+szqrTVUcBX0o22:37
mordredTYr3iRfOje9WPsTZIk9vBfBtF416mCNxMSRc7KhSW727AnUu85hS0xiP0MRAf69KemG1OE1pW+LtDIAEYp mordred@camelo22:37
clarkbmordred: that is an ubuntu specific cloud init config but yes22:37
clarkbmordred: it also sets taht key on the ubuntu user22:37
mordredyes. it's specific to how cloud-init is setup22:37
mordredwhich we have no real way of knowing22:38
clarkbwhat we would have ideally is the infra root rooter keys on root user and the zuul/nodepool key on the zuul user22:38
clarkbwe could make glean do this (possibly based on the key comment)22:38
jeblairmordred, jlk: i'm not finding a built-in ansible module to manipulate yaml (or even json) files; does that jive with your understanding?22:39
mordredyah - but that makes humans using zuul without building images hard and requires that all zuul/nodepool users build images with glean22:40
jlkto manipulate? I don't think so. THere are filters you can use to generate yaml/json from data structures22:40
mordredya- and I think you can read yaml/json files too?22:40
jeblairjlk: oh, that may be a good start, can you point me at those?22:40
jeblairmordred: and if that's the case, that's the complete set, actually :)22:41
jlkhttp://docs.ansible.com/ansible/playbooks_filters.html#filters-for-formatting-data22:41
jlkThere's from_yaml and to_yaml (and the same for json)22:41
jlkslurp module can read the contents of a file into a variable, and you can do whatever to it from there22:42
jeblairjlk: so slurp -> from yaml -> manipulate -> to yaml -> file would be the whole cycle22:42
jeblaircool, i will play with that for a bit, thanks :)22:42
jlksounds about right.22:43
jeblair(i'm thinking, however, that we may want to make a yaml-editing module so folks can easily set return data from jobs.  we can build that into zuul pretty easily.  maybe upstream it?)22:43
jlkslurp -> from yaml -> manipulate (set_fact?) -> copy content: "{{ data | to_yaml }}"22:44
mordredjeblair: out of curiosity - what's the read portion of this?22:44
clarkbmordred: ya I think its a good argument for not using that system22:45
clarkbmordred: and instead using the required base job to bootstrap22:45
jeblairmordred: if more than one playbook wants to return data.  obviously we'll start with just the log url, but if we want to have base/post-playbook set that, and then also have flake8 return line annotations, it would modify the existing yaml return file22:45
mordredjeblair: ahhh - so - in my brain, I was thinking that values set in one return file would be added to vars passed in to the next playbook - and then a playbook can just write a file without having to care about what's there before22:46
mordredjeblair: you're thinking of keeping a file that accumulates return data over time?22:47
jlkhrm, hopefully not using lineinfile right? what method were you going to do to add more content to a file?22:47
jeblairmordred: yep, that was what i was imagining.22:47
jlkoh, if hte variable carries forward, I guess you just write the whole thing every time22:48
jeblairjlk: well, now that i'm looking at this, i'm thinking of going straight to a zuul_return ansible module and doing it in python.  then it's just "tasks: [zuul_return: {key: foo, value: bar}]" and the module does the read/write itself.22:50
jeblairthough that suggests that we should use json, rather than yaml, due to it being in the python2 stdlib.22:50
jlknod22:50
jeblair(which is fine, this isn't especially user-facing anyway)22:50
mordredwe'll need to special-case zuul_return in the security exclusions22:51
mordredoh - wait- no we won't22:51
mordredsorry22:51
jeblairmordred: do you think we should go with your approach of implicitly adding it to each run?  ... actually...22:51
mordredbrain stupid22:51
jeblairmordred: we can sort of combine the two approaches22:51
mordredjeblair: yah- I like having a zuul_return module in our library22:51
openstackgerritJesse Keating proposed openstack-infra/zuul feature/zuulv3: Handle GitHub comment reviews carefully  https://review.openstack.org/48131422:51
jeblairmordred: we can have zuul_return read/modify/write each time it is invoked.  but we can *also* have the executor "-e" the file on each run22:52
jeblairso you implicitly have read access to any previously "returned" values.22:52
mordredjeblair: but I think you'll want to zero the file out - because the executor wants to read the data after each playbook - and if it accumulates, the executor won't know which return data is relevant22:52
jeblairmordred: the executor won't do anything with the data until the end of the job.  then it returns it to the scheduler.22:53
mordredso - like - if the flake8 job returns line annotatoins, how would the executor know during the next post playbook that that playbook didn't ALSO return flake8 annotations22:53
mordredjeblair: ah - I see why you're thinking accumulate now22:53
jeblairmordred: it doesn't care.  as far as zuul is concerned, it's the *job* that returns things.22:54
mordrednod22:54
jeblairtell you what, let's just leave the idea of loading the variables between playbooks on the shelf for now22:54
jeblairit's easy to add later if we want22:54
mordredjeblair: also - incidentally - jlk taught me the other day that -e has the strongest precedence and cannot be overwritten22:54
jeblairmordred: good point22:54
mordredjeblair: so if we do want to inject the variables, we'd want to do it in the inventory and not via -e most likely (/me learned things!)22:55
jlkyou did say "read" access22:55
jlkjust not write access :)22:55
mordred:)22:55
jeblairmordred, jlk: okay, i'm not going to get this done today, but i know what i'm doing tomorrow.  thanks.  :)22:56
openstackgerritMerged openstack-infra/zuul feature/zuulv3: Run the new fancy zuul-jobs versions of jobs  https://review.openstack.org/48069222:58
openstackgerritJesse Keating proposed openstack-infra/zuul feature/zuulv3: Remove unnecessary loop in github test  https://review.openstack.org/48131523:00
mordredjlk, jeblair: just had an idea about github status and non-voting jobs23:07
jlk*popcorn.gif*23:09
mordredwhat about a hybrid - what if we report a status for every voting job - and report status for non-voting jobs if they pass. for _any_ job that fails, leave a comment on the PR- but group them by voting/non-voting - so you get "these jobs failed" and "these jobs failed but are non-voting"23:09
mordredit's similar to what bonny is doing now - in that it puts failures into the comment stream so people get the emails23:10
mordredand it get per-job status for all of the jobs that vote, so the github rollup is accurate- but we dont' lose the data about failing non-voting jobs23:10
mordred(and then maybe ALSO report a top-level url for the change in the status too - so that there is a link to the change's dashboard page should one exist)23:11
jlkMy thought is that the "roll up" status will get lost in the noiuse23:13
jlknoise23:13
jlkI think a roll up status is critical, as you can set branch protection to care about said roll up status, and you can set pipeline requirements (and triggers) for that roll up status, since at the pipeline config level you'll never truly know the set of statuses that may come from jobs.23:14
* jlk EODs23:21
mordredjlk: ++23:21
mordredjlk: enjoy the EOD23:21
jeblairmordred: i like your idea.  i could really use some demos of these because it's getting hard for me to imagine them.  and maybe the answer is one or more behavior toggles.23:22
mordredjeblair: yah - I think some behavior toggles are going to be helpful here - as i imagine this is an area where folks will have *opinions* about what they prefer23:23
*** hasharAway has quit IRC23:37
clarkbI wonder if we couldn't use signed ssh keys to get around some of these problems. Issue is going to be shipped the revocation updates after ssh is succesful. Also that is racy and could allow ssh elsewhere while you update. Thats too bad it doesn't help23:38
jeblairclarkb: i hadn't thought of that at all.  thanks for brainstorming it out loud.  :)23:42
clarkbjeblair: ya I'm pretty sure it won't help because cert revocation is silly23:43
clarkbjeblair: the other idea is use the ldap key stuff but that requires special openssh iirc and would require everyone run an ldap23:47
clarkball these alternatives seem more complicated than just setting a key via a base job23:48
jeblairyeah, just doing that and skipping the nodepool thing for now is growing on me.23:49
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Remove the old tox-linter job  https://review.openstack.org/48132223:52
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Duplicate the zuul-tox jobs to just be named tox  https://review.openstack.org/48132323:52
openstackgerritMonty Taylor proposed openstack-infra/zuul-jobs master: Remove the transitionary zuul-tox jobs  https://review.openstack.org/48132423:52
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Remove old tox jobs  https://review.openstack.org/48132523:52
openstackgerritMonty Taylor proposed openstack-infra/zuul feature/zuulv3: Consume tox instead of zuul-tox  https://review.openstack.org/48132623:52
mordredjeblair: ok. there's a crazy dependency chain for you23:52
mordred(oh, the openstakc-zuul-jobs patches aren't reported in here)23:54
mordredjeblair: https://review.openstack.org/#/q/topic:rename-dance23:54
mordredjeblair: there are times when I wish we just had a nice depends-on graph visualizer :)23:55

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