Friday, 2019-02-08

*** sdake has quit IRC00:01
clarkbtobiash: comments on https://review.openstack.org/#/c/616306/13 maybe corvus can check my note about tenant scoping projects to see if that is worth a 0100:16
clarkber -100:16
corvusclarkb: well, it's perfectly legit (expected, even encouraged) to share projects across tenants00:20
corvusi have to run now, i'll try to think more about that tomorrow00:21
clarkbcorvus: right so collisions are likely to be a thing00:22
corvusyes, but depending on both the details of implementation, and the questions we're trying to answer, "collisions" might be okay00:22
corvus(like, even though a project is in 2 tenants, it may only be in pipelines in one, and therefore there's no confusion.  or, if it is in pipelines in multiple tenants, maybe the aggregate is what you want -- project foo is responsible for X cpu hours, even though X/2 comes from this tenant, and X/2 comes from that...00:24
corvusthat's where my thinking will start tomorrow when i review that :)00:24
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: config: add playbooks to job.toDict()  https://review.openstack.org/62134300:31
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: Add API endpoint to get frozen jobs  https://review.openstack.org/60707700:31
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: Get executor job params  https://review.openstack.org/60707800:31
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: Separate out executor server from runner  https://review.openstack.org/60707900:31
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: implement prep-workspace  https://review.openstack.org/60708200:31
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: web: add /connections route  https://review.openstack.org/63170300:31
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: use connections endpoint for prepare-workspace  https://review.openstack.org/63170400:31
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: add execute sub-command  https://review.openstack.org/63094400:31
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: add support for depends-on  https://review.openstack.org/63206400:31
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: add quick-start integration test  https://review.openstack.org/63570100:31
*** sdake has joined #zuul00:45
openstackgerritPaul Vinciguerra proposed openstack-infra/zuul master: configloader.py: Not all jobs have an .updated attribute.  https://review.openstack.org/63325900:46
mnaseranyone seen 404 github exceptions when using a github app when a webhook is recieved ?01:03
mnaserhmm this might be a misconfig01:04
*** sdake has quit IRC01:06
pabelangerin zuul logs?01:11
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: add quick-start integration test  https://review.openstack.org/63570101:22
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: Separate out executor server from runner  https://review.openstack.org/60707901:22
*** rlandy has quit IRC01:30
mnaserpabelanger: yeah it was a misconfig02:03
mnaseri'm wondering if anyone knows what caps are needed for bwrap to allow creating new namespace02:04
*** sdake has joined #zuul02:07
*** sdake has quit IRC02:13
clarkbmnaser bwrap documents it. It needs userns or to run as root iirc02:17
mnaserclarkb: looks like i can only run it in a privileged docker container, not ideal but liveable02:17
clarkbthat is hoe tobiash does it but I dont think it is required if your kernel supports userns and ylu set up caps right02:18
clarkbare you on centos?02:19
clarkbtheir kernel doesnt do user ns by default02:19
mnaserclarkb: this is docker on mac so it boots a vm running $something02:19
mnaserso i have this tenant config right now -- http://paste.openstack.org/show/744716/ -- however it looks like it's complaining that it can't find `add-build-sshkey` and `fetch-output` which are both in zuul-jobs.  they are referenced in zuul.yaml as `zuul: git.zuul-ci.org/zuul-jobs` and im wondering if the mismatch is the cause of this?02:25
mnaserhttps://github.com/openstack-infra/zuul-jobs/blob/8ed7cf4c525c0356098c8e25fb2958eff00143b2/doc/source/install.rst02:26
mnaseraaand i should learn to read alright02:26
*** saneax has joined #zuul02:28
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: implement prep-workspace  https://review.openstack.org/60708202:52
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: web: add /connections route  https://review.openstack.org/63170302:52
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: use connections endpoint for prepare-workspace  https://review.openstack.org/63170402:52
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: add execute sub-command  https://review.openstack.org/63094402:52
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: add support for depends-on  https://review.openstack.org/63206402:52
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: add quick-start integration test  https://review.openstack.org/63570102:54
*** bhavikdbavishi has joined #zuul03:45
*** ianychoi has quit IRC03:49
*** daniel2 has quit IRC03:49
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: add support for depends-on  https://review.openstack.org/63206403:53
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: zuul-runner: add quick-start integration test  https://review.openstack.org/63570103:53
*** ianychoi has joined #zuul03:55
*** bjackman has joined #zuul05:06
*** chandankumar is now known as chkumar|ruck05:41
*** bjackman has quit IRC06:02
*** swest has joined #zuul06:04
*** bjackman has joined #zuul06:06
*** bjackman has quit IRC06:12
*** bjackman has joined #zuul06:13
badboyis there a way to change the color of the failed build in the Builds tab of Zuul's dashboard to red?06:24
tobiashbadboy: don't you like the yellow?06:26
tobiashbadboy: you'd need to patch the css if you want to change that06:27
badboytobiash: not really ;)06:27
tobiashzuul-web is not skinnable ;)06:27
badboytobiash: red is more suitable for failure as green is for success06:27
tobiashbadboy: but permanently chan ging this to red can be problematic for all the people that are red-green colorblind06:28
badboytobiash: probably you're right06:28
*** bjackman has quit IRC06:28
badboytobiash: never thought about it since I've never met anyone who's colorblind06:29
tobiashbadboy: most people won't tell you unless you ask for it ;)06:29
badboytobiash: true06:30
badboytobiash: can you help me with apache config for Zuul?06:30
badboytobiash: I would like to have multiple tenants on one machine06:30
tobiashbadboy: do you already have an apache config?06:31
badboyyes, I do06:32
badboytobiash: scratch that, I don't06:32
badboytobiash: I was thinking about apache conf for logs06:33
tobiashbadboy: how do you want to have the urls?06:33
*** bjackman has joined #zuul06:34
badboytobiash: zuul.example.com/<tanant_1>06:34
*** pleia2 has quit IRC06:35
tobiashbadboy: then it's simple, just forward all zuul.example.com to zuul-web06:35
*** pleia2 has joined #zuul06:35
tobiashhaving multi tenant is basically the default in zuul-web06:35
badboytobiash: and rewriting everything from port 9000 to 80?06:36
tobiashyes, I guess the most simple way is to just use mod_proxy06:37
badboytobiash: like this? https://github.com/CiscoSystems/third-party-ci-installer/blob/master/roles/apache/tasks/main.yaml#L8906:37
tobiashbadboy: http://paste.openstack.org/show/744726/06:38
tobiashthat's how mine looks like06:39
tobiashand you'll need to enable the modules mod_proxy, mod_proxy_html and mod_proxy_wstunnel (for log streaming)06:41
badboytobiash: thanks, that should be in the docs with a sample config or maybe an ansible playbook06:42
tobiashbadboy: it is: https://zuul-ci.org/docs/zuul/admin/installation.html?highlight=apache#reverse-proxy06:42
tobiash(with the rewrite method, but I like proxypass more ;)06:43
openstackgerritFelix Schmidt proposed openstack-infra/zuul master: Retrieve full list of jobs with details per tenant via API  https://review.openstack.org/63571406:49
*** chkumar|ruck has quit IRC06:51
*** quiquell|off is now known as quiquell|rover06:52
*** chandankumar has joined #zuul06:52
*** chandankumar is now known as chkumar|ruck06:52
openstackgerritFelix Schmidt proposed openstack-infra/zuul master: Retrieve full list of jobs with details per tenant via API  https://review.openstack.org/63571406:53
*** goern has joined #zuul07:04
*** daniel2 has joined #zuul07:14
*** remi_ness has joined #zuul07:15
*** saneax has quit IRC07:20
*** pcaruana has joined #zuul07:23
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: webtrigger: add initial driver and event  https://review.openstack.org/55515307:32
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: webtrigger: add web route and rpclistener  https://review.openstack.org/55483907:32
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: web: add build modal button to trigger job  https://review.openstack.org/63571607:32
*** quiquell|rover is now known as quique|rover|brb07:35
*** gtema has joined #zuul08:02
openstackgerritFelix Schmidt proposed openstack-infra/zuul master: Retrieve full list of jobs with details per tenant via API  https://review.openstack.org/63571408:04
*** quique|rover|brb is now known as quiquell|rover08:05
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: webtrigger: add initial driver and event  https://review.openstack.org/55515308:24
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: webtrigger: add web route and rpclistener  https://review.openstack.org/55483908:24
openstackgerritTristan Cacqueray proposed openstack-infra/zuul master: web: add build modal button to trigger job  https://review.openstack.org/63571608:24
tristanCcorvus: could you please revisit your -2 on https://review.openstack.org/55515308:28
*** saneax has joined #zuul08:36
*** jpena|off is now known as jpena08:45
zbrcan zuul trigger jobs based on commit message pattern? like if "risk" mentioned in it to trigger jobs that are usually not run?08:48
zbri know that in theory we could use a placeholder file for this, but it would be more convenient to be able to use magic words.08:49
*** ianychoi has quit IRC08:50
*** panda|off is now known as panda09:08
tobias-urdinpabelanger: do you have some time over to check https://review.openstack.org/#/c/632699/09:25
tobias-urdinfungi: do you have any feedback for ^ i'm a little stuck on that right now and it is blocking m2 release that still needs requeue and the newly requested https://review.openstack.org/#/c/635541/09:25
*** manjeets_ has joined #zuul09:55
openstackgerritFabien Boucher proposed openstack-infra/zuul master: URLTrigger driver time based - artifact change jobs triggering driver  https://review.openstack.org/63556709:56
*** manjeets has quit IRC09:57
openstackgerritFabien Boucher proposed openstack-infra/zuul master: URLTrigger driver time based - artifact change jobs triggering driver  https://review.openstack.org/63556709:59
*** remi_ness has quit IRC10:07
*** bhavikdbavishi has quit IRC10:18
*** sdake has joined #zuul11:34
*** gtema has quit IRC11:35
*** gtema has joined #zuul11:38
*** sdake has quit IRC11:41
*** sdake has joined #zuul11:45
*** bjackman has quit IRC11:48
mhuHello, when I try to run unit tests for zuul-web on my environment (ubuntu 18.04 + tools/test-setup.sh) on master, I get these errors: https://pastebin.com/6mTzjeMe Any idea what I can do?11:50
*** bjackman has joined #zuul11:50
*** bjackman has quit IRC12:09
*** sdake has quit IRC12:11
*** sdake has joined #zuul12:13
*** bjackman has joined #zuul12:19
*** jpena is now known as jpena|lunch12:37
*** sdake has quit IRC12:48
*** Diabelko has quit IRC12:53
*** Diabelko has joined #zuul12:54
*** bjackman has quit IRC12:59
mordredzbr: http://git.openstack.org/cgit/openstack-infra/project-config/tree/zuul.d/pipelines.yaml#n25413:27
*** ianychoi has joined #zuul13:27
mordredzbr: yes. that's an example of a pipeline liek that we have in openstack ^^13:27
mnasertobiash: do you use nodepool-builder inside docker as well?13:28
mnaserthe image seems to be missing........ sudo13:29
zbrmordred: i was referring to commit-message content, not comment content.13:31
openstackgerritMatthieu Huin proposed openstack-infra/zuul master: [WIP] web: add tenant and project scoped, JWT-protected actions  https://review.openstack.org/57690713:31
zbrthey both start with comm :)13:31
tobiashmnaser: yes, but still using my own images13:33
zbri guess the only way to do it is to always trigger the job and to introspect inside it and decide to exit quickly if the message has no matching pattern, but this sucks from resource maintenance point of view. especially if I want to trigger so special fat jobs in "risk" case.13:33
mnasertobiash: is it possible to share the docker files and i can slowly try to get them to converge?13:34
*** rlandy has joined #zuul13:37
mordredzbr: ah - gotcha. yeah - you're better off doing that. you may want to check out: https://zuul-ci.org/docs/zuul/user/jobs.html#skipping-child-jobs13:38
*** chkumar|ruck is now known as chkumar|out13:39
openstackgerritQuique Llorente proposed openstack-infra/zuul master: Escape jinja2 template from commit message  https://review.openstack.org/63393013:39
mordredzbr: you could make a parent job that doesn't use any nodes from nodepool, have that job do the commit message examination, and then skip expensive child jobs13:39
*** jpena|lunch is now known as jpena13:39
zbrmordred: thanks, I will be looking on this. mainly what I want to do is to find an alternative to trigger additional jobs on changes that are risk. Currently we use an approach of creating a DNM change on another repository which has the jobs that may be affected. Instead of spamming gerrit with zuul DNM with depends-on, it would be easier to have all in the same change. sounds ok?13:41
mordredzbr: yeah, makes sense - you could totally do that with the child jobs filter13:44
*** avass has joined #zuul14:03
avassCan you override the checkout for a job to not check out anything?14:07
*** EmilienM is now known as EvilienM14:15
openstackgerritMatthieu Huin proposed openstack-infra/zuul master: [WIP] web: add tenant and project scoped, JWT-protected actions  https://review.openstack.org/57690714:16
tobiashmnaser: I can check later, currently not @laptop14:19
*** TheJulia is now known as needssleep14:25
*** sdake has joined #zuul14:38
*** sdake has quit IRC14:42
*** sdake has joined #zuul14:52
*** pwhalen has joined #zuul14:54
Shrewstobiash: the ansible spec is looking good! i just had one question about deprecation and module overrides (left a note)15:04
openstackgerritMatthieu Huin proposed openstack-infra/zuul master: [WIP] web: add tenant and project scoped, JWT-protected actions  https://review.openstack.org/57690715:17
*** quiquell|rover is now known as quiquell|off15:22
*** avass has quit IRC15:23
*** remi_ness has joined #zuul15:27
*** pcaruana has quit IRC15:31
Shrewsmnaser: i think i found the problem with https://review.openstack.org/635584   noted inline15:35
pabelangertobias-urdin: fungi: just reading 632699 seems like corvus was suggesting not change revoke-sudo and do a local gem install into executor side, so we don't publish secrets to nodepool node15:48
fungipabelanger: trick is, that means also using what those gems provide to run arbitrary code from the repository being released15:51
*** sdake has quit IRC15:52
fungibecause it's not just a static upload tool from what i gather, it potentially runs turing-complete routines from the repository in the process of uploading15:52
*** sdake has joined #zuul15:53
corvusthat's a bad upload tool then15:53
openstackgerritMatthieu Huin proposed openstack-infra/zuul master: [WIP] web: add tenant and project scoped, JWT-protected actions  https://review.openstack.org/57690715:54
corvus(why would a tool do that?)15:54
corvusfor a while, before twine, we had a simple script to upload things to pypi.15:55
*** sdake has quit IRC15:56
fungitobias-urdin: can you confirm/deny my (mis)understanding there?15:56
clarkbcorvus: ya I had written a small thing that just curl POSTed to pypi iirc15:57
fungii need to pop out to grab lunch, but will remove my +2 while we discuss15:57
clarkband when dstufft found out we were doing that was like oh ya we should have a better tool for that and wrote twine15:58
*** sdake has joined #zuul15:58
pabelangerunfortunately haven't followed along much on puppet publishing refactor myself16:03
openstackgerritMohammed Naser proposed openstack-infra/nodepool master: docker: don't daemonize when starting images  https://review.openstack.org/63558416:03
tobias-urdinfungi: so right now module is cloned to a nodepool instance -> build tarball -> copy them to executor -> rename tarball -> upload16:09
tobias-urdinwhat is happening now would be: nodepool instance -> build tarball -> upload to puppetforge -> copy to executor -> rename tarball -> upload16:09
tobias-urdinit runs as a rake task inside the git repo for the module and requires the puppet build output i.e it must be named openstack-neutron-<version>.tar.gz but we would rename to puppet-neutron-<version>.tar.gz16:10
mnaseris there any docs around the 'opendevorg/python-builder' ?16:10
mnasertrying to see how i can add 'sudo' to the nodepool image16:11
tobias-urdinif we can have ruby and all required build gcc/g++ make to build native ruby gems we could move the "upload to puppetforge" step after "copy to executor" but before rename tarball16:11
tobias-urdinon the executor that is16:11
mordredmnaser: python-builder basically just provides for installing the things in bindep.txt and python requirements16:12
mnasermordred: so if i drop sudo into bindep.txt and i should be in a good place16:12
mordredmnaser: to add sudo, I think just adding an apt-get update && apt-get install -y sudo && apt-get clean to the dockerfile16:12
mordredmnaser: yeah - or add sudo to the bindep.txt :)16:12
tobias-urdinfungi: oh and regarding "it potentially runs turing-complete routines from the repository in the process of uploading" that not really true16:14
tobias-urdinit's drops a Rakefile in the git repo root which is then executed, so there is no code by the module that could run in the trusted executor context16:14
openstackgerritMohammed Naser proposed openstack-infra/nodepool master: bindep: add sudo  https://review.openstack.org/63587616:15
mnasermordred: ^ lets see how that goes..16:16
openstackgerritFabien Boucher proposed openstack-infra/zuul-jobs master: Add the skip_bindep option to the tox job  https://review.openstack.org/63587716:16
pabelangermnaser: mordred: there will be a bunch more dependencies required for DIB, eg: http://git.openstack.org/cgit/openstack/diskimage-builder/tree/bindep.txt rather then adding them into nodepool, can we not have docker builds use bindep from diskimage-builder?16:17
mnaserthat seems like a good idea too16:18
mordredheh. that gets complicated :)16:18
* mordred is on the phone - but will say more words about that getting complicated in just a minute16:18
pabelangeror, can we do a dedicated dib container and somehow link that to nodepool-builder?16:19
pabelanger(my docker knowledge is weak here)16:19
clarkbpabelanger: you could layer nodepool on top of a dib container potentially16:19
mordredyeah - but even that is going to get complicated quickly based on how the nodepool containers are currently being built16:20
mordredactually - no - it might not be that bad ...16:20
* mordred has a thought16:20
openstackgerritMonty Taylor proposed openstack-infra/nodepool master: WIP Base nodepool-builder on diskimage-builder  https://review.openstack.org/63587916:24
mordredclarkb, pabelanger, mnaser: ^^ there's a quick sketch - assumes we make a dib docker image in the same way we're building the nodepool and zuul images16:25
openstackgerritMatthieu Huin proposed openstack-infra/zuul master: [WIP] web: add tenant and project scoped, JWT-protected actions  https://review.openstack.org/57690716:25
*** saneax has quit IRC16:25
mordred(which obviously wouldn't be hard- main question would wind up being whether we make it as openstack/diskimage-builder or opendevorg/diskimage-builder16:25
corvusmordred: dib is an infra project, so i assume it would be opendevorg16:28
mordredcorvus: ++16:28
corvusthough, what would be swell is if it were packaged :)16:28
mordredwe'll need to do a couple of things with the bindep file in dib16:29
tobiashShrews: thanks, thinking about this maybe we should instead add a meta file to each module override with information about the target versions16:32
tobiashand then do the copy on the executor startup more intelligent16:33
tobiash(re ansible spec)16:33
openstackgerritFabien Boucher proposed openstack-infra/zuul-jobs master: Add the skip_bindep option to the tox job  https://review.openstack.org/63587716:40
tobiashhttps://docs.python.org/3/library/os.html#os.makedirs16:41
tobiashChanged in version 3.7: The mode argument no longer affects the file permission bits of newly-created intermediate-level directories.16:41
tobiashreally?16:41
clarkbthat is an interesting choice16:42
mordredwhat?16:44
mordredthat's16:44
*** bhavikdbavishi has joined #zuul16:44
mordredI think that documentation is a bug. I think it should say "Changed in version 3.7: os.makedirs was made useless"16:44
mordredbut I might just be being reactionary16:45
mordredhttps://bugs.python.org/issue19930 is the issue/patch that did that, btw16:46
mordredah. the change is to make it work like mkdir -p16:46
clarkbtobiash: did you see my comments on https://review.openstack.org/#/c/616306/ curious to know what you think about it16:46
tobiashclarkb: yes, but had no time yet to read them, will read in a sec16:47
corvusclarkb, tobiash: heh, i just finished reviewing that.  i responded to the accounting question.  i don't have thoughts on the other one, so i left only a +1 until you sort that out.16:47
SpamapSAs a umask person, I was always surprised that makedirs mode worked that way.16:49
clarkbcorvus: with graphite you could do tenant value of * to get total cost for a project too, though if you have enough tenants that may be costly. I'm fine with it as is I guess since we can always add the tenant scoped project later too16:50
corvusclarkb: yeah, the thing i've learned from graphite is if you want a roll-up value, emit it, don't try to calculate it.  because that doesn't scale past 10 metrics.16:51
tobiashclarkb: I'm not sure I completely understood your comment16:52
clarkbtobiash: which one?16:52
tobiashclarkb: the 'if node.resources' is inside a loop16:52
clarkbtobiash: oh right. In that case we should do if build_set and resources16:53
clarkbtobiash: mostly that block is a noop if resources if {} but we execute it anyway16:53
clarkb(or do we want to emit the zero value stats? I don't think they produce much value but maybe I'm missing a use case)16:54
tobiashclarkb: I think you're right, we can do if build_set and resources16:54
openstackgerritMatthieu Huin proposed openstack-infra/zuul master: [WIP] web: add tenant and project scoped, JWT-protected actions  https://review.openstack.org/57690716:55
tobiashemitStatsResources emits the gauges so if nothing changes there is no point in updating it16:56
clarkbtobiash: mostly my concern was doing unnecessary work for executor only jobs and then I tricked myself into thinking we could further simplify it16:56
tobiashclarkb: regarding the other question, are you satisfied with corvus' response of should we discuss this further?16:57
clarkbtobiash: I'm good with corvus' comment. We can always add tenent.project later if we find we need it too16:57
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Report tenant and project specific resource usage stats  https://review.openstack.org/61630617:00
*** manjeets_ is now known as manjeets17:00
tobiashShrews: responded on the ansible spec https://review.openstack.org/62392717:10
tobiashcorvus, SpamapS: what do you think? ^17:10
openstackgerritTobias Henkel proposed openstack-infra/zuul master: Report tenant and project specific resource usage stats  https://review.openstack.org/61630617:14
corvustobiash, Shrews, SpamapS: i've been thinking about suggesting that we stop overriding ansible modules and only rely on bubblewrap.  i haven't thought everything through yet -- don't consider this a formal proposal.  but should we pause and discuss that before we move forward on multi-ansible?17:16
corvusmordred: ^17:17
corvustobiash: (and, fwiw, i was thinking we'd do the next-higher version with symlinks)17:18
corvusthat seems like the easiest to implement17:18
tobiashShrews, mnaser: responded on 63558417:19
tobiashcorvus: we also rely on these modules for log streaming and command module, so I think we still need them (maybe not all of them) even with bubblewrap17:20
corvustobiash: okay, so we need to pick symlinks or metadata either way.17:21
tobiashcorvus: I'm happy with either and think metadata might be even more flexible and less hacky17:21
corvus(and therefore, multi-ansible doesn't need to depend on this decision, but we should still probably decide before we put too much work into making new overrides)17:21
tobiashas we don't have to create a fancy directory structure with symlinks, but just attach versions17:22
corvustobiash: yeah, i don't have a strong preference and am happy to say it's the implementor's choice :)17:22
tobiashthen I'd try the metadata and avoid the subdir mess17:22
mnasertobiash: mordred mentioned that there has been changes which enable usage of github checks api? how is that any different than the current state of things?17:27
tobiashmnaser: not in zuul, but github3.py now supports that so we finally could add this to zuul17:28
mnaseri guess individual jobs can report directly to the PR rather than 'check' passed?17:28
tobiashand this yes17:28
mnaserand then the 'pipeline' is really the 'check suite'17:28
tobiashbut there are some conceptual questions to solve17:29
mnaserso we have 'check' or 'gate' and a 'check suite' and then individual jobs as 'checks'17:29
mnasergotcha17:29
tobiashbecause there is no concept of non-voting checks e.g.17:29
mnaseri see a 'neutral' result17:29
tobiasheach check is voting and automatically required17:29
mnaserin conclusions17:29
tobiashyes, but you cannot state failed but nonvoting17:29
mnaserah right so the non voting job result is not visible17:30
mnaserinteresting17:30
tobiashand I think that doesn't really fit into check and gate pipeline concept17:30
mnaserokay, that's super interesting.  i'd love to be part of that effort both discussions and writing code afterwards if you're going to be working on that17:30
tobiashso there is some discussion needed how that could be used by zuul in a useful way without breaking all concepts17:30
mnaseryep, i see that17:31
tobiashswest had a deeper look into that some weeks ago17:31
tobiashand it looks like status api and checks api are not really integrated with each other17:32
tobiashthat are just two different things17:32
* SpamapS thinking17:41
SpamapSI'm a fan of symlinks, and agree with corvus that this feels like an implementor's choice.17:43
*** sdake has quit IRC17:47
*** jpena is now known as jpena|off17:48
*** remi_ness has quit IRC17:50
tobiashSpamapS: yeah I like symlinks too, but I fear that this will get a complicated link mess ;)17:53
Shrewstobiash: not sure i follow the "self.args" does not exist. you mean the attribute? b/c self.args is definitely defined17:54
tobiashbut maybe I'll try both ways and we can then decide what's better17:54
SpamapSPerhaps a hybrid approach: metadata that makes symlinks? Though, that sounds like "an ansible playbook". ;)17:54
tobiashShrews: not in this class, this method has args and returns them17:54
Shrewstobiash: ah, the return value. ok, was trying to debug the test failures in my head17:56
tobiashShrews: the result of mnaser's edit: http://logs.openstack.org/84/635584/4/check/tox-py35/c90fa67/testr_results.html.gz17:56
Shrewsi believe you17:57
tobiashShrews: the question is why the functional tests failed17:58
tobiashShrews: http://logs.openstack.org/84/635584/3/check/nodepool-functional-py35/b103b89/controller/logs/screen-nodepool-builder.txt.gz18:00
Shrewstobiash: they failed b/c the builder and launcher would not start b/c of a pid issue, which depends on that nodaemon attribute, which led me to suspect that portion of code i pointed out18:00
tobiashah I see18:00
tobiashhrm18:01
tobiashneeds more digging18:01
Shrewsbut i only debugged in my head, so was mostly a guess18:01
tobiashShrews: is the devstack nodepool expected to run daemonized or in foreground?18:01
Shrewsi think it runs in foreground, which is why we missed the builder image build timeout issue when daemonized18:02
mnasermordred: looks like your idea was ambitious about sourcing from diskimage-builder except it looks like we don't actually publish any diskimage-builder images :)18:03
Shrewscorvus pointed that out for me, actually18:03
*** gtema has quit IRC18:03
corvusmnaser: yeah, i think mordred intended that as a sketch of what it would look like if we did publish images; meanwhile, i believe he's investigating what it would actually take to do so18:04
corvusmnaser: 635892 and 635896 are part of that18:05
mnasercorvus: ooo i didn't see those18:06
tobiashShrews: I think I've spotted the bug18:06
mnaserok i guess diskimage-builder doesnt feed notification in here, there ya go18:07
mnaseri was confused where those patches were coming from :)18:07
openstackgerritTobias Henkel proposed openstack-infra/nodepool master: docker: don't daemonize when starting images  https://review.openstack.org/63558418:11
tobiashShrews, mnaser: that should fix the error and hopefully the confusion args vs self.args ^18:11
clarkbis there a bug in zuul/tools/encrypt_secret.py reading from stdin?18:12
clarkbit seems to be doing a normal read not a readline so not sure how we are expected to end that read18:12
tobiashclarkb: I'd expect it to read until eof18:12
clarkbtobiash: seems to require a newline then an EOF18:17
clarkbbut I'm not sure I want the newline in my secret /me checks if it chomps it18:18
clarkbok it does18:18
openstackgerritJames E. Blair proposed openstack-infra/zuul master: Return artifacts as dicts and add metadata  https://review.openstack.org/63482518:19
corvusclarkb: if you want to terminate stdin and you haven't just hit a newline, you may need to hit ctrl-d twice18:20
*** remi_ness has joined #zuul18:20
clarkbcorvus: ah is that the trick? in any case script does strip the whitespace so we are good18:20
corvusoh fascinating18:24
corvushttps://stackoverflow.com/questions/2162914/why-do-i-have-to-press-ctrld-twice-to-close-stdin18:24
corvustil what ctrl-d *actually* does18:24
corvus(it flushes the buffer)18:24
corvusenter also flushes the buffer18:25
corvusso a ctrl-d entered with an empty buffer causes read() to return 0 bytes, which is interpreted by most programs as EOF18:25
corvusthat trick only works if the buffer is empty, which happens either after an enter, or after a previous ctrl-d.18:26
tobiashevery day something new to learn :)18:28
corvustobiash: i just realized i forgot to post a draft comment in reply to you on 634825.  i updated the patch based on your comment, so you probably came to the same conclusion, but i had meant to reply.  sorry.  it's posted now.18:31
corvuslatest ps should fix the test failures18:31
*** saneax has joined #zuul18:38
fungitobias-urdin: thanks for the clarification... so catching up, it sounds like we could safely run the upload task on the executor so long as ruby and c++ toolchains are present to be able to compile... what exactly? is the tool which performs the uploading recompiled at each invocation?18:43
fungiand is there no precompiled binary package of whatever it needs suitable for installation on ubuntu?18:44
fungijust trying to wrap my head around what about the uploader requires presence of a compiler18:45
*** electrofelix has quit IRC18:50
tobias-urdinfungi: it's the dependencies on these three gems that contains native ruby extensions that is compiled upon installation18:51
tobias-urdinif the build tools and these gems are installed on the executors18:51
tobias-urdinhttps://github.com/openstack-infra/zuul-jobs/blob/master/roles/upload-puppetforge/tasks/main.yaml#L2518:51
tobias-urdinwe can skip all install parts, or just install the ruby part and install the gems on each run, which is probably preferable if the gems need to be updated18:52
tobias-urdinthink about it as if you do "pip install <something>" and it requires puppet-dev and some libxml-dev as example :)18:53
fungipartly asking because the tasks which run on the executor happen inside bubblewrap and so potentially need additional bits of the outer filesystem mappen in or may be hamstrung by capability filters18:53
fungiso i guess the idea is that we gem install the uploader separately outside bubblewrap and map its files into the bwrap context, then the rake task doesn't actually need to download and compile anything?18:55
tobias-urdinhm, isn't PATH or /usr/local/bin or similar exposed inside the bwrap?18:57
tobias-urdinfungi: would it be easier if i investigated if i could build some python tooling that did the upload?18:59
fungimaybe, but hoping to get more input from other zuul maintainers too who might have better suggestions before you go writing something from scratch19:01
tobias-urdinthe issue here is that we need to install stuff inside executor, since ansible is there, python is there and it probably very simple reading a tarball and doing some HTTP code to upload19:02
fungiit doesn't seem to me like uploading a file using an interpreted language like ruby should require more than the interpreter, so curious to know why a c++ toolchain is needed19:02
tobias-urdinfungi: does this make more sense? http://paste.openstack.org/show/744759/19:07
tobias-urdina ruby gem can have native c/c++ code in modules that is not implemented in ruby but in native code that is compiled upon installation19:08
tobias-urdinsorry i suck at trying to articulate what i mean sometimes19:09
corvustobias-urdin, fungi: we can ask that folks either install the gems on the executor, or ask that they install c++ so that the job can build the gems.  but it would be friendlier to zuul operators if we didn't need to do either of those things (because it keeps the executors simple).  on the other hand, we it would be better to do that than to implement a complicated tool from scratch, especially if the upload19:10
corvusapi might change over time and we'd have to maintain it.19:10
fungiit tells me that you expect puppet-blacksmith to be available for some reason, and that puppet-blacksmith in turn has some non-pure-ruby extensions19:10
fungiwhat is puppet-blacksmith used for? why does the upload task need it instead of just relyig on pure ruby implementations of things?19:11
corvusso there's a trade-off there.  i *think* i would say that if the upload api is very simple, let's look into implementing something from scratch.  we might even be able to do it with pure ansible using the uri module.  but if it's more than a simple authentication/http post roundtrip, then we should install things on the executor.19:11
* fungi checks to see if puppet-blacksmith is packaged for distros directly already in binary form19:11
tobias-urdini just went with it since it already implemented the upload logic https://github.com/voxpupuli/puppet-blacksmith/blob/master/lib/puppet_blacksmith/forge.rb19:12
tobias-urdinand was already in use here http://git.openstack.org/cgit/openstack-infra/openstack-zuul-jobs/tree/playbooks/legacy/puppet-httpd-forge-upload/run.yaml19:12
fungiyeah, no sign of puppet-blacksmith in ubuntu, so we'd need to build it(s extensions) from source i guess if it's required19:12
tobias-urdinbut yeah i think we can replicate it with some super simple python or even ansible19:13
*** sdake has joined #zuul19:29
*** daniel2 has quit IRC19:37
*** daniel2 has joined #zuul19:40
dkehnclarkb: in https://zuul-ci.org/docs/zuul/admin/components.html#components the executor.finger_port default is 7900 and the fingers.port default is 79, I'm assuming one of them needs to change?19:50
clarkbdkehn: on the executor side it listens on a hgih port so you don't need root19:50
clarkbdkehn: the finger gateway service listens on 79 by default which is finger procol default and proxies to the high port on executors19:51
dkehnclarkb: ok, so no change required19:51
clarkbshouldn't be19:51
dkehnthanks19:51
openstackgerritTobias Henkel proposed openstack-infra/nodepool master: docker: don't daemonize when starting images  https://review.openstack.org/63558419:53
dkehnclarkb: in the docker-come.yaml is there a necessity to define ports: ?19:53
dkehnfor the executor19:54
dkehnthese are running on different containers19:54
dkehnor should the fingergw be running on the same as the executor19:54
tobiashdkehn: fingergw runs in its own container19:55
tobiashso yes, you probably need to declare the finger_port19:55
tobiashthis is also necessary for websocket streaming via zuul-web19:55
dkehntobiash: I've defined in for the fingergw contain as 79 , I'm guessing then I should define the excutor"s port 7900, does that sound correct?19:56
tobiash++19:56
tobiashdkehn: and you also need to make sure that the executor knows its hostname (or configure it in zuul.conf)19:57
dkehnack19:57
tobiashzuul-web and fingergw will use this hostname to connect to the executor19:57
dkehntobiash: can you point to an example setup19:58
tobiashdkehn: in case the executor cannot resolve its hostname you can configure it here: https://zuul-ci.org/docs/zuul/admin/components.html#attr-executor.hostname19:59
tobias-urdinfungi: corvus tried to implement it in ansible, i can do all authenticate and try to upload using the uri module19:59
*** sdake has quit IRC19:59
tobias-urdinbut there is no way to read the binary data of the tarball and send it, so i guess i'll need to revert to using python19:59
*** sdake has joined #zuul20:00
fungioh, so it needs to unpack the tarball? can we possibly just archive the tarball content it needs for that step separate from the tarball itself?20:00
fungilike, if there's some metadata file in the tarball, just retrieve a bare copy of that from the build along with the tarball itself?20:01
tobias-urdini need to sent a "file" field in the POST body with the tarball binary data, just a plain read of the file20:01
tobias-urdinbut i can't read binary blobs from ansible iiuc20:02
tobias-urdini can't use "src" for uri module because i can't map that loaded file to the "file" body field20:02
fungioh... got it. ansible is actually incapable of reading a non-text file into a variable?20:03
tobias-urdincan't use lookup('file', 'path/to/tarball.tar.gz') atleast20:03
fungiansible can also call arbitrary python functions, right?20:03
tobias-urdintries to parse it and gives20:03
tobias-urdin Error was a <type 'exceptions.UnicodeDecodeError'>, original message: 'utf8' codec can't decode byte 0x8b in position 1: invalid start byte20:03
fungiahh, it decides the file content should be utf-8 i guess, when it's really just raw binary data20:04
*** sdake has quit IRC20:09
*** sdake has joined #zuul20:11
*** sdake has quit IRC20:13
*** sdake has joined #zuul20:14
*** bhavikdbavishi has quit IRC20:14
*** saneax has quit IRC20:37
*** sdake has quit IRC20:44
*** sdake has joined #zuul20:48
tobias-urdinfungi: we can prob do this with ansible now21:06
tobias-urdinhere is a module http://paste.openstack.org/show/744763/21:06
tobias-urdinhere is usage http://paste.openstack.org/show/744764/21:06
tobias-urdinjust requires python requests module to be installed on the executor node21:06
corvustobias-urdin: the slurp module might work21:12
corvustobias-urdin: it base64 encodes the data, but i think there's a base64 decode filter21:13
corvusbut yeah, a module should be fine21:13
corvussince you've already written it :)21:13
tobias-urdinnot sure were i should place it though21:13
corvustobias-urdin: in the 'library' dir underneath the forge upload role21:14
tobias-urdinyeah but you think i should just keep the upload-puppetforge role in infra/zuul-jobs?21:14
corvusyep21:15
tobias-urdinokok, on it21:16
corvusthis should be useful to anyone21:16
*** rlandy has quit IRC21:33
openstackgerritTobias Urdin proposed openstack-infra/zuul-jobs master: Rework upload-puppetforge role to use module  https://review.openstack.org/63594121:34
fungiand much, much cleaner, thanks!21:38
tobias-urdinthink i shot myself in the foot though since it takes the full path to a tarball21:48
*** sdake has quit IRC21:58
*** krasmussen has joined #zuul22:07
*** remi_ness has quit IRC22:09
openstackgerritTobias Urdin proposed openstack-infra/zuul-jobs master: Rework upload-puppetforge role to use module  https://review.openstack.org/63594122:11
krasmussenHey, has anyone seen a `AttributeError: 'MergeJob' object has no attribute 'updated'` error on startup of the zuul scheduler before? Trace can be found here: https://pastebin.com/daYyXBUk22:11
openstackgerritJames E. Blair proposed openstack-infra/zuul-jobs master: Remove "--verbose" from yarn commands  https://review.openstack.org/63597322:23
corvuskrasmussen: yes, there's a patch in review to fix that: https://review.openstack.org/63325922:26
*** remi_ness has joined #zuul22:26
*** klindgren has joined #zuul22:27
dkehnls22:29
corvusno such file or directory22:30
dkehnhaha22:30
dkehnwrong window22:30
krasmussenI guess you could have gone with `irc: ls: command not found`22:32
krasmussenAlso thanks corvus I'll take a look :)22:32
*** remi_ness has quit IRC22:35
*** panda has quit IRC22:46
*** panda has joined #zuul22:49
openstackgerritTobias Urdin proposed openstack-infra/zuul-jobs master: Rework upload-puppetforge role to use module  https://review.openstack.org/63594122:56
openstackgerritMerged openstack-infra/zuul-jobs master: Remove "--verbose" from yarn commands  https://review.openstack.org/63597323:08
*** sdake has joined #zuul23:33
krasmussen@corvus sadly I am still looking at the same stacktrace after applying that patch locally :( any other thoughts?23:40
corvuskrasmussen: ha, that patch has a logic error23:42
krasmussenWell, I dealt with the `if not hasattr(job, 'updated') and not job.updated` and seperated those out already.23:43
corvuskrasmussen: but yeah, that patch should only produce a more sane error message, there's still probably an underlying problem23:43
corvuskrasmussen: i think you may need to check your merger or executor logs to find out what actually happened23:44
krasmussenI do see a `Exception: Cat job <gear.Job 0x7f129021a438 handle: b'H:10.32.55.158:2' name: merger:cat unique: 83e940b9166149fda0a4ccc7ce6d9bb4> failed `23:44
krasmussenBut I'm also new enough to zuul to where that is greek to me.23:44
corvuskrasmussen: at that point, the scheduler is asking mergers (executors contain an internal merger, so they participate in this too) to fetch files from git.23:44
corvuskrasmussen: if you look at the merger or executor logs, you should see an actuall error in them about why they couldn't clone or fetch from some git repo23:45
corvuskrasmussen: (thanks for testing that patch, i glossed right over the boolean error)23:45
corvuskrasmussen: that unique id is also used on the mergers, so grepping for "83e940b9166149fda0a4ccc7ce6d9bb4" should get you near the right spot23:46
krasmussenHum... my merger logs are pretty much empty.23:47
corvustry the executor(s) then23:48
krasmussenStill nothing... kinda just adding debug info and making my way through.23:56

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