Monday, 2018-04-02

*** EmilienM_ has joined #zuul00:04
*** odyssey4me has quit IRC00:11
*** odyssey4me has joined #zuul00:11
*** EmilienM_ is now known as EmilienM00:48
*** EmilienM has joined #zuul00:48
*** JasonCL has quit IRC00:48
*** JasonCL has joined #zuul00:49
*** JasonCL has quit IRC00:59
*** JasonCL has joined #zuul01:36
*** JasonCL has quit IRC01:45
*** JasonCL has joined #zuul02:49
SpamapSHrm. really wish we had left the tenant out of the API/console-stream urls. Would make the nginx/apache configs even simpler.02:49
* SpamapS disengages hindsight02:50
*** JasonCL has quit IRC02:54
*** JasonCL has joined #zuul03:02
* SpamapS finally updating his zuul master to do the javascript things. :-P03:05
*** JasonCL has quit IRC03:06
SpamapShmmm03:32
SpamapS$ curl http://127.0.0.1:9000/03:32
SpamapScurl: (52) Empty reply from server03:32
SpamapSthat can't be right03:33
SpamapSso03:37
SpamapSpip installing from a git checkout seems *not* to put a static dir under web03:37
SpamapShttp://paste.openstack.org/show/718143/03:38
SpamapSpip installed... but no statics03:38
tristanCSpamapS: i think you need yarn pre-installed, see zuul/_setup_hook.py03:39
SpamapSit is03:40
SpamapSand all the static content is present03:40
SpamapSIn fact ln -s /opt/source/zuul/zuul/web/static /opt/venvs/zuul/lib/python3.5/site-packages/zuul/web/static fixed it03:41
tristanCSpamapS: why would you prefer the console-stream urls out of the api/ path?03:44
SpamapStristanC: I would prefer that I can use location /03:49
SpamapSwithout having to capture the tenant and re-pass it.03:49
SpamapSIt's ok, turns out I can do that, because I dn't actually want static offload03:50
SpamapSwhat's getting me now is why yarn.lock changed03:50
SpamapSahh need --frozen-lockfile03:50
SpamapSand now that doesn't work either03:56
SpamapSseems our yarn.lock is broken03:58
SpamapSsomething went wrong04:30
SpamapSI torched the venv and the next install created the dir04:30
SpamapSoy, looks like I have to update all my webhooks too04:32
* SpamapS should try apps04:32
tristanCNodepool rawhide packages are now available: https://apps.fedoraproject.org/packages/nodepool , f28 and f27 are pending updates04:47
tristanCcan't do Zuul because fedora is already running ansible-2.4/2.504:49
*** eandersson has quit IRC05:16
*** eandersson has joined #zuul05:17
*** JasonCL has joined #zuul05:31
*** JasonCL has quit IRC05:36
SpamapSIIRC the move to 2.4 was slated for a "shortly after 3.0" status05:38
tristanCyes, but then the same issue will happen with 2.5 and the next versions. It seems like this can be mitigated with Fedora modularity where a module can pin a package branch, e.g. ansible-2.305:43
tristanCso i think we should wait for f28 or f29 to get a zuul module available for fedora users05:44
SpamapSI actually would love to drive a feature in to zuul to support multiple versions.05:46
tristanCthat would also be convenient :-)05:47
*** JasonCL has joined #zuul06:15
SpamapSfrankly I'd also like to drive streaming hooks into ansible06:19
SpamapSso new versions aren't so problematic. :)06:19
SpamapSOh and ponies06:19
*** JasonCL has quit IRC06:19
SpamapSwant ponies06:19
* SpamapS has upgraded our zuul.. yay06:19
*** xinliang_ has joined #zuul07:27
*** xinliang_ has quit IRC07:49
*** xinliang_ has joined #zuul07:49
*** xinliang_ has quit IRC07:51
*** xinliang has joined #zuul07:54
*** xinliang has quit IRC07:54
*** xinliang has joined #zuul07:54
*** JasonCL has joined #zuul08:57
*** JasonCL has quit IRC09:07
*** Wei_Liu has joined #zuul09:10
*** JasonCL has joined #zuul10:00
*** JasonCL has quit IRC10:24
*** JasonCL has joined #zuul10:52
*** JasonCL has quit IRC10:55
*** JasonCL has joined #zuul10:55
*** pwhalen has quit IRC11:46
*** pwhalen has joined #zuul11:47
*** pwhalen has joined #zuul11:47
*** weshay_mod is now known as weshay12:12
*** elyezer has joined #zuul12:13
*** odyssey4me has quit IRC12:17
*** odyssey4me has joined #zuul12:17
*** sshnaidm is now known as sshnaidm|bbl12:32
*** maeca has joined #zuul12:39
*** maeca has quit IRC12:42
*** gouthamr has joined #zuul12:47
*** ymartineau has joined #zuul12:58
*** ymartineau has quit IRC12:59
*** ymartineau has joined #zuul13:00
*** elyezer has quit IRC13:05
*** elyezer has joined #zuul13:16
mordredSpamapS: leaving tenant out of console-stream urls would not make apache configs any better - the apache rewrite rule needed for console-stream is to transform the scheme and is needed for apache to proxy websockets properly aiui13:19
mordredSpamapS: (although yes, given that console-stream is already parameterized via build we totally could have not put it under tenant13:20
*** dkranz has joined #zuul13:21
mordredSpamapS: and yay for being upgraded!13:21
openstackgerritMonty Taylor proposed openstack-infra/zuul master: Upgrade from angularjs (v1) to angular (v5)  https://review.openstack.org/55198913:25
*** JasonCL has quit IRC13:45
*** JasonCL has joined #zuul13:49
*** evrardjp has quit IRC13:52
*** JasonCL has quit IRC13:52
*** JasonCL has joined #zuul13:53
*** gouthamr has quit IRC13:53
*** JasonCL has quit IRC13:54
*** gouthamr has joined #zuul13:54
*** elyezer has quit IRC13:58
*** gouthamr has quit IRC14:00
*** gouthamr has joined #zuul14:00
*** JasonCL has joined #zuul14:01
*** JasonCL has quit IRC14:08
*** gouthamr has quit IRC14:09
*** gouthamr has joined #zuul14:09
*** elyezer has joined #zuul14:10
*** gouthamr has quit IRC14:14
*** sshnaidm|bbl is now known as sshnaidm14:16
*** gouthamr has joined #zuul14:18
*** JasonCL has joined #zuul14:18
*** gouthamr has quit IRC14:19
*** gouthamr has joined #zuul14:21
*** JasonCL has quit IRC14:26
*** JasonCL has joined #zuul14:27
*** gouthamr has quit IRC14:34
*** gouthamr has joined #zuul14:35
*** elyezer has quit IRC14:40
*** elyezer has joined #zuul14:42
*** ymartineau has quit IRC14:42
clarkbthat packaging conflict may make zuul (and I guess nodepool) better candidates for snaps or flatpak?14:44
corvusultimately we want to support more than one version of ansible simultaneously, so whatever solution we come up with should accomodate that.14:45
corvusclarkb: istr you had the idea that zuul could manage the installation of ansible internally?14:46
clarkbcorvus: ya using pyenv or whatever the new virtualenvin python3 is called14:46
SpamapSthere's a new one?14:46
clarkbgives you a programmtic interface to making virtualenvs with a stable interface14:46
clarkbso you can have the ansible 2.3 and 2.4 and 2.5 installs all in one zuul and have jobs pick the one they want14:47
SpamapSah that would be good then yeah14:47
corvusi don't know if that makes the fedora packaging problem better or worse.  but it sounds workable from my pov.14:47
clarkbI think that still goes nicely with eg flatpak because if done right all those venvs will leave in the flatpak itself after install and then when you uninstall zuul that all gets auto cleaned up14:48
clarkbbut my exposure to that type of packaging iscurrently minimal14:48
clarkbI tried it locally for some stuff before decided a docker image or 3 was better for me14:48
*** acozine1 has joined #zuul14:49
SpamapSmordred: well the non-static-offload config in nginx is... pretty simple. :)14:56
corvusSpamapS: show us with a doc change :)14:56
SpamapShttp://paste.openstack.org/show/718176/14:57
SpamapSgood idea14:57
* SpamapS still finding all the stuff that moved14:58
SpamapShave to add a /t/14:58
SpamapSOr maybe I should whitelabel .. not sure we'll ever have two tenants at GD.. ;)14:58
fungipresumably so long as zuul follows the fhs and drops those venvs somewhere sane line /var/lib/zuul/ansibleX.Y then cleanup at package removal should be fairly trivial to implement?14:58
corvusSpamapS: https://zuul-ci.org/docs/zuul/admin/installation.html#web-deployment-options14:59
fungii don't see that snap-packs buy you much there, but i could be lacking in imagination14:59
SpamapSYeah right now I'm "Basic reverse proxy"14:59
clarkbfungi: snaps and paks fully self contain the install so you rm the top level dir recursively and are done14:59
fungiexcept distro package managers already have smarts to deal with cleaning up after packaged applications/services which create files in well-defined places15:00
fungie.g., for a deb you just stick a line in a file which says that the software it installs will also be putting files under /var/lib/whatever15:01
fungiand that way it knows to remove that and its contents if you want to purge the package later15:02
clarkbya and you have to tell apt to purge but otherwise it tends to work15:02
fungiwell, that's a feature15:02
fungiplenty of circumstances where you may want to (perhaps temporarily) uninstall a package but not have its data wiped15:02
SpamapSIf it's not "data", you can have it removed on regular removal.15:02
fungiright15:02
SpamapSAnd that would be preferrable.15:03
SpamapSBut this gets into a weird space15:03
SpamapSIf you are wanting to be distro package managed..15:03
SpamapSI don't think you want python specialness in /var/lib15:03
SpamapSAnd the distro package would ideally build all supported versions of Ansible in /usr/lib.15:03
SpamapSand into the package15:04
SpamapSAnd then if you want to get crazy and do non-distro ansible, cleaning those up is your problem.15:04
fungithat assumes the people packaging ansible for the same platform are okay with the idea that they need to be able to have multiple working versions installed in parallel15:04
tristanCsupporting multiple ansible version may be easily solved if the zuul-executor delegate the playbook execution to a remote process, e.g. a container that would have the right ansible version pre-installed, like that no need to manage multiple venv15:04
fungimanaging multiple container installs of ansible is easier (or even different at all) than managing multiple versions of ansible in virtualenvs?15:05
fungia virtualenv is just a very pythonesque "container"15:06
tristanCassuming those version would be provided by your distributor instead of having zuul install stuff dynamically15:06
fungi(i'm sure people who have preconceived docker-driven ideas abotu what a container is or isn't will argue with me on that point, but whatever)15:06
fungitristanC: in that case, you're saying your distro is more likely to give you multiple container-packaged versions of ansible but not the ability to install multiple versions of ansible on the system15:07
SpamapSit's a python chroot ;)15:07
corvustristanC: we're not going to *require* containers15:08
fungisure, containers are chroots too, in my opinion15:08
fungiwith extra sauce15:08
SpamapSchroots and cgroups and namespaces, oh my15:10
fungiif there's no need to actually secure different ansible versions from encroaching on memory, network access, and so on for one another then the only actual benefit putting them in different containers is giving you is that they're in separate chroots15:13
tristanCfungi: iiuc, that's how fedora is planning to support multiple version of a single component yes15:14
mordredI'd say there are two overlapping concerns here a) how does zuul internally think about multiple versions of ansible and b) how are multiple versions of ansible installed/managed15:15
fungiwell, i suppose for people installing on fedora that might be a fine possibility to support, but i don't see us deciding that zuul will be a fedora-only application15:15
mordredfor b - it seems plausible that we might want to have both a 'zuul manages versions of ansible itself via virtualenv' and a 'zuul uses container system to fetch and execute specific versions of ansible'15:16
tristanCfungi: it's unclear how a distribution can support installing multiple version of, say ansible15:17
fungitristanC: debian and friends manage to install multiple versions of all sorts of libraries and applications if the package maintainers want to be responsible for multiple versions15:17
fungihowever, i don't think we should count on either of those possibilities15:19
tristanCbut isn't this cause to cause conflict on /usr/lib/python3.6/site-packages/ansible ?15:19
tristanCgoing to cause*15:19
fungi(that a distro will have available container packages or normal packages for the versions of ansible you need)15:19
fungitristanC: well, for starters it doesn't _have_ to put them in the default python path15:20
corvusas app developers, we can implement clarkb's suggestion.  if distro packagers have another solution, we can look at supporting that (perhaps through configuration options)15:20
mordredcorvus: yah15:20
pabelanger+1 ansible in a virtualenv works great, do that locally myself15:21
fungiand yeah, if zuul has a feature to create ephemeral virtualenvs for multiple ansible versions, i don't see any conflict between that and adding configuration to tell it to not do that and here are the explicit paths to the various ansible entrypoints it wants15:22
corvusfungi: ++15:22
tristanCfungi: that would works15:23
*** gouthamr has quit IRC15:23
fungiand that would, unless i'm missing something, make it entirely possible for the deployer to bring their own ansibles (whether that's in the form of distro packages, container pass-through, whatever)15:24
tristanCi think it's important to consider distribution integration as it simplifies management, for example package manager takes care of pulling security fix, as far as i can tell, pip/virtualenv doesn't let you install security fix15:24
fungiright, pip/virtualenv would basically be installing whatever the latest Z is in each of X.Y.Z15:25
*** pbrobinson_PTO is now known as pbrobinson15:25
fungiand trusting that if upstream is security-supporting those versions then they're pushing new releases to pypi as soon as they land a security fix15:25
fungiif the deployer wants to use a custom-patched ansible for whatever reason, then they should still be able to tell zuul where to find that15:27
*** gouthamr has joined #zuul15:27
tristanCcorvus: no need to requires container, but it seems like zuul-executor could have a driver to leverage k8s and completely isolate playbook run15:27
corvustristanC: i hope to be prepared to discuss containers later in the week after i write up notes from all the various discussions we've had.  it's not fruitful to have an irc discussion about it before we have a common reference point.15:29
fungihuh... this looks remarkably zuulish: https://concourse-ci.org/15:30
tristanCfungi: being able to tell zuul to not create virtualenv and use a provided ansible module would be ideal indeed15:30
mordredfungi: yah - it seems very much what v3 would have been like if we'd not used ansible for our job content15:31
fungioh, and it's written in go i guess15:33
*** JasonCL has quit IRC15:37
*** bhavik1 has joined #zuul15:43
*** gouthamr has quit IRC15:48
*** gouthamr has joined #zuul15:49
*** bhavik1 has quit IRC15:52
*** JasonCL has joined #zuul15:55
*** patriciadomin has quit IRC15:56
*** patriciadomin has joined #zuul15:58
*** JasonCL has quit IRC15:59
*** JasonCL has joined #zuul16:00
*** JasonCL has joined #zuul16:01
openstackgerritMerged openstack-infra/zuul master: zuul autohold: allow operator to specify nodes TTL  https://review.openstack.org/54340316:01
*** gouthamr has quit IRC16:07
*** gouthamr has joined #zuul16:09
*** JasonCL has quit IRC16:09
corvusnow that we're post-release, i am going through the unreviewed changes in chronological order.  i'm up to mid-february now.16:10
corvusi can only spend a few hours a day reviewing changes, so it will be a while before i'm caught up.16:11
*** JasonCL has joined #zuul16:12
Shrewscorvus: so, what's your definition of "user visible" changes (i think that was the phrase from your previous email)? b/c i would expect that 543403 would be a user visible change that deserves some documentation before we merge it16:14
Shrewsjust want to make sure we're on the same page with that stuff16:15
Shrewsoh, maybe that's self documenting from the help options16:17
Shrewsyep, nm. i forgot how the client doc worked  :)16:17
corvusShrews: good question -- i did evaluate that -- it has the same documentation as the rest of the autohold command (the cli args are documented, and that gets automatically pulled into the html docs).  i didn't think it warranted a release note because i don't think it would really change an operator's behavior.  that's debatable, but i think this case is borderline.16:17
corvusShrews: otoh, i think adding that feature to nodepool *would* warrant a release note, because that might prompt folks to go enable the setting.  except it landed pre-release, so that ship has sailed.  :)16:18
Shrews*nod*16:19
corvus(in fact, mostly today i've been -1ing changes with "add a release note".  even a change which had one.  oops)16:19
pabelangerShrews: mind looking at https://review.openstack.org/557942/ and https://review.openstack.org/558015/ updates for nodepool-dsvm testing16:20
Shrewspabelanger: certainly16:20
*** JasonCL has quit IRC16:23
*** jbryce has joined #zuul16:26
clarkbthinking about that does https://review.openstack.org/#/c/557859/ need a release note? I suppose a bugfix release note won't hurt16:26
clarkbin general do we want release notes for bugfixes or just for features?16:26
corvusclarkb: i'm mostly concerned with features; i think a bugfix note for that one might be good though; people may have run into problems with that (and perhaps disabled reporters to mitigate it).16:28
clarkbcorvus: ok I'll push a new patchset shortly with a bugfix note16:29
openstackgerritMerged openstack-infra/nodepool master: Add debian-stretch to nodepool-functional-py35-debian-src  https://review.openstack.org/55794216:32
*** gouthamr has quit IRC16:33
openstackgerritMerged openstack-infra/nodepool master: Enable AFS mirrors for ubuntu-bionic testing  https://review.openstack.org/55801516:37
openstackgerritClark Boylan proposed openstack-infra/zuul master: Report to all reporters even if one fails  https://review.openstack.org/55785916:53
clarkbnow with releasenotes16:53
Shrewspabelanger: Why do we need https://review.openstack.org/555103 ? It seems like we are testing DIB and not nodepool there.17:04
pabelangerShrews: yah, we are, it is to help catch issues before they hit production nodepool.o.o. Since we diskimage-builder landed a change that broke centos-7 a few weeks ago.  In this case, we're using nodepool as the test running for testing glean and diskimage-builder17:08
openstackgerritMerged openstack-infra/nodepool master: Reduce logging in _cleanupCurrentProviderUploads function  https://review.openstack.org/55779117:08
Shrewspabelanger: this can't be built into dib/glean testing itself?17:09
pabelangerShrews: ATM no, we use nodepool / devstack to boot those images.  We could maybe start to think about having each project run their own nodepool.yaml / check_devstack_plugins scripts17:11
clarkbShrews: pabelanger fwiw I think this integration testing has been invaluable to all the projects involved17:11
pabelangerbut it is helpful for openstack-infra to try and gate on common elements we use17:11
clarkbwe know longer guess if things work or have to do a bunch of testing locally17:11
clarkbso I'm all for just enabling whatever helps in it17:11
pabelangeryah, agree17:12
Shrewsyeah, that's fine. i was just genuinely curious as to why those projects didn't catch it themselves17:12
odyssey4meShrews fair point17:13
clarkbShrews: because to make sure glean works you need an openstack essentially, then you have to boot and check things worked (whcih nodepool already does)17:13
clarkbglean doesn't work outside of openstack without reimplementing a bunch of nova17:13
odyssey4meperhaps it'd make sense to have some cross-repo/project testing going on?17:13
clarkbodyssey4me: that is what is happening17:14
Shrewspabelanger: does that need updated with your new debian image?17:15
odyssey4meclarkb perhaps I'm missing something, but that looks like a test implemented in the nodepool repo to validate a dib feature?17:15
odyssey4mewould it not make better sense to have the test be in the dib repo?17:16
clarkbodyssey4me: the test is implemented in nodepool to validate nodepool works. It just happens taht because nodepool depends on dib it also validates dib works17:16
clarkbodyssey4me: I think this is fine17:16
clarkbodyssey4me: and the best way to check that dib image actually works is to boot it, make sure glean worked, and then ssh into it. So you wouldn't be making the test any smaller if it was in dib itself17:16
odyssey4meclarkb a test is definitely better than nothing :) but closest to the source is the best test17:16
*** JasonCL has joined #zuul17:17
clarkbit would do all the same things of build image, upload to openstack, boot it and ssh in. Basically all the things nodepool does for us17:17
clarkbif we want to reimplement nodepool in dib's test suite I'd be sad17:17
odyssey4meagreed, however doing a cross-repo test might be worth it17:18
clarkbit is a cross repo test...17:18
odyssey4meoh, sorry - I must be missing the cross-repo thing from dib to nodepool17:18
clarkbodyssey4me: the one test is used by dib, glean and nodepool17:19
clarkbodyssey4me: as they are relatively tightly coupled and depend on each other to function17:19
odyssey4mecurrently it looks like a nodepool patch tests dib... but not the other way around17:19
clarkbdib runs the same tests and glean too17:19
odyssey4meperhaps I'm missing something, let me look more closely at the repo tests - sorry, didn't mean to meddle17:20
*** JasonCL has quit IRC17:20
*** JasonCL has joined #zuul17:20
pabelangerShrews: Yah, likely, I can push up a patch shortly17:20
*** JasonCL has quit IRC17:21
*** JasonCL has joined #zuul17:24
*** JasonCL has quit IRC17:25
*** JasonCL has joined #zuul17:34
*** JasonCL has quit IRC17:34
openstackgerritPaul Belanger proposed openstack-infra/nodepool master: Test growroot in boot tests  https://review.openstack.org/55510317:39
pabelangerclarkb: Shrews: ^rebased to pick up debien-stretch17:40
*** jlk has quit IRC17:46
*** jlk has joined #zuul17:46
jlko/17:47
*** JasonCL has joined #zuul17:47
corvusjlk: howdy!  it looks like tobiash's fix was merged: https://github.com/sigmavirus24/github3.py/pull/817  are you going to do another release to pick that up?18:10
tobiash\o/18:10
jlkSure. Is this a "today" thing or "this week"? I can take a look at what else is in the pipeline for bugfixes/changes over there too.18:20
corvusjlk: my read of the situation is more like 'week'18:21
*** JasonCL has quit IRC18:22
*** JasonCL has joined #zuul18:41
*** JasonCL has quit IRC18:43
*** sshnaidm has quit IRC18:43
*** JasonCL has joined #zuul18:43
*** JasonCL has quit IRC18:45
*** qwc_ has left #zuul18:54
*** JasonCL has joined #zuul19:05
*** JasonCL has quit IRC19:06
*** JasonCL has joined #zuul19:16
*** JasonCL has quit IRC19:20
*** JasonCL has joined #zuul19:21
*** JasonCL has quit IRC19:22
*** sshnaidm has joined #zuul19:22
*** JasonCL has joined #zuul19:22
*** JasonCL has quit IRC19:24
openstackgerritDavid Shrewsbury proposed openstack-infra/zuul master: Reorganize "Zuul From Scratch" document  https://review.openstack.org/55698819:31
*** JasonCL has joined #zuul19:35
*** JasonCL has quit IRC19:37
*** JasonCL has joined #zuul19:38
*** harlowja has joined #zuul19:38
*** JasonCL has quit IRC19:40
*** JasonCL has joined #zuul19:41
*** gouthamr has joined #zuul19:42
*** JasonCL has quit IRC19:43
*** dtruong has quit IRC19:59
*** dtruong has joined #zuul20:11
*** maeca has joined #zuul20:31
*** JasonCL has joined #zuul20:58
*** JasonCL has quit IRC21:02
SpamapShm21:03
SpamapShttp://paste.openstack.org/show/718213/21:05
SpamapSIs anybody beside me testing/using webhook github support?21:05
SpamapSseems like something is borken21:05
clarkbwebhook being distcint from the application?21:05
clarkbI think we use the application and so does mrhillsman and tobiash21:06
mrhillsmanyep21:06
pabelangerSpamapS: tobiash fixed that21:08
corvusSpamapS, pabelanger: that's fixed in https://github.com/sigmavirus24/github3.py/pull/817 which is merged but not released21:09
SpamapSOH21:17
SpamapSty, will pull that in21:18
*** jbryce has quit IRC21:18
*** jbryce has joined #zuul21:19
*** gouthamr has quit IRC21:30
*** JasonCL has joined #zuul21:45
*** acozine1 has quit IRC21:49
jheskethMorning21:57
pabelangerclarkb: mind a review of growroot testing: https://review.openstack.org/555103/ cc ianw21:58
corvuspabelanger: why's that in nodepool?21:59
Shrewslol21:59
Shrewsi asked the same thing earlier  :)21:59
mordredcorvus: Shrews asked the same thing earlier21:59
mordredShrews: jinx21:59
corvusmordred: oh, i thought you were translating.  :)22:00
corvusShrews: it's a good question22:00
corvusmordred: tell Shrews i think it's a good question22:00
jlkIs there a meeting today?22:00
corvusjlk: like right now22:00
jlkokay I thought so22:00
corvusin #openstack-meeting-alt22:00
mordredShrews: tell corvus the scrollback on the topic is worth reading22:00
clarkbbasically nodepool and dib and glean are integration tested together. Because nodepool depends on both dib and glean working22:02
clarkbalso nodepool does all the things you need to test that dib + glean images actually work22:02
clarkbwhcih is why they are coupled together22:02
*** JasonCL has quit IRC22:08
SpamapS:(22:09
SpamapShttp://paste.openstack.org/show/718214/22:09
SpamapSand now that22:09
*** elyezer has quit IRC22:11
jlka 404 on setting the status?22:13
jlkthat's... unexpected.22:13
SpamapSyeah I dunno what's up there22:14
SpamapSI left my zuul stale too long... just deployed the last 40 or so days of changes and who knows what broke :-P22:14
jlkoof.22:16
jlkIt might be neat if we'd put out what the actual URL was that it tried to hit22:17
ShrewsSpamapS: stale zuuls are never as tasty as fresh zuuls22:18
*** elyezer has joined #zuul22:19
SpamapSindeed..22:19
SpamapSreally I need a zuul test suite22:19
SpamapSsomething that can like, create a new random org, some random repos, fill them with zuul config, spin up zuul, do some PR's, etc. etc.22:19
*** JasonCL has joined #zuul22:30
*** maeca has quit IRC22:33
*** gouthamr has joined #zuul22:37
corvusclarkb, pabelanger, Shrews: i think that change in particular is a red-flag.  nothing about nodepool cares about growroot.  it's not really reviewable by the nodepool team.22:43
Shrewscorvus: that's sort of how i felt, but i didn't have a good argument to counter the "coupled repos" thing22:44
clarkbcorvus: what I tried to explain earlier today is that is effectively an integration test between nodepool dib and glean. One of the benefits of it being run that way is nodepool depends on dib and glean and dib and glean need to do the steps that nodepool takes to be tested properly22:44
clarkbcorvus: so in the test its fairly tightly coupled together. If we want to move the test definition thats fine, we can cotninue to run it against nodepool22:45
clarkbbut I think having a single integration test for those three projects has been valuable22:45
corvusclarkb: yeah, i'm in favor of an integration test22:45
clarkb(technically I think shade is also integration tested there but it doesn't need the dib and glean stuff)22:45
jlkcorvus: mordred: Question for you two. If I wanted to have Zuul's tests ran when github3.py PRs were opened, and have the results reported as status, what's the way to accomplish that? I think you've done the same for ansible/ansible, and I couldn't work it out in my head while on my bike what the right arrangement is.22:45
corvusclarkb: i wonder though if we can construct it such that nodepool is just performing a basic test (boot + ssh), and dib builds on that to test more things?22:46
clarkbI don't think we should rewrite the test to not use nodepool and I don't think nodepool should stop running the test22:46
corvusjlk: i think we might even have documentation for this...22:46
SpamapSjlk: actually it must have been related to tobias's fix22:47
corvusjlk: https://docs.openstack.org/infra/manual/drivers.html#outbound-third-party-testing22:47
SpamapSpulling that in fixed the status 404's too22:47
jlkoh neat.22:47
jlk(to both)22:47
corvusjlk: though, as i think about it -- i'm not sure we're testing github3.py enough for that to be useful yet22:47
SpamapSProbably something bad coming back in the response propagating to the reporter22:47
clarkbcorvus: we've found that if growroot breaks it breaks dib built nodepool images. So I'm not personally too concerned with having that check fail in nodepool if it is broken22:47
corvusjlk: i think zuul's tests mock out too much of github3.py22:47
clarkbcorvus: we can define it elsewhere if that helps get the right reviewers looking at it though22:48
jlkcorvus: that's... probably an accurate observation.22:48
SpamapSWhat if we did what I suggested22:48
SpamapSan integration test22:48
corvusjlk: maybe we can change them to use betamax or something?22:48
pabelangerI agree, we are likely over reaching by adding growroot into nodepool-dsvm testing, but it has been very helpful to catch issues and new distro support using nodepool. Moving that into a nodepool.yaml file specific to DIB or glean, seems sane22:48
SpamapSthat basically ran with a semaphore on a closed org on github.com22:48
clarkbpabelanger: I think I'm saying its not an overreach for the integration test since nodepool images break if growroot breaks22:48
clarkbpabelanger: I think we should continue to test that22:49
clarkbpabelanger: on nodepool22:49
corvusSpamapS, jlk: yeah, as an addition to the unit tests (ie, its own job) i think that could be useful.22:49
jlkyeah at one time I wanted to use betamax for this22:49
SpamapSyeah a fake github server would do too22:49
jlkbut... it would have required a lot of changing the test structure22:50
clarkbpabelanger: but maybe we move the test definition if one of the concerns is nodepool reviewers won't know how to properly review growroot related things22:50
clarkbpabelanger: and then nodepool continues to run that same job22:50
pabelangerclarkb: I'm happy for it to live some place :) so whatever everybody is good with, works for me22:50
jlkbetamax uses a real github server (once) to record the interactions22:50
SpamapShttps://github.com/mzabriskie/mock-github-api22:50
jlkand then you can replay them over and over without connecting to a real server with real credentials22:50
clarkbif we take that appraoch either project-config or dib probably work fine22:50
corvusjlk, SpamapS: there's something about the idea of zuul doing this against live github with secrets that i find pretty compelling.  :)22:50
pabelangerclarkb: yah, that might work22:50
SpamapScorvus: me too :)22:50
SpamapSespecially if github wouldn't hate us for making random github orgs and deleting them on every check.22:51
clarkbcorvus: SpamapS just have to be careful of the 5k per hour api limit22:51
corvusjlk, SpamapS: anyway, either, or both of those (betamax / live) would be useful and in-scope for openstack's zuul to run against github3.py prs22:51
jlkthe amount of noise that the tests would create is but a drop in the ocean22:51
clarkbthe problem isn't the noise its that github does actively defend itself22:52
corvusclarkb: judicious use of the files: job attr on our part can help with that22:52
clarkbcorvus: ya that may be one way to address it22:52
corvusalso, once we're in the context of an org, we can use an app install for many of our api calls22:53
jlkwith beta max you can make use of an app installed project to record the interactions22:54
jlkit'll give you the larger API limit, and you'd only hit them when you record22:54
jlkafter that, there's no actual API hit22:54
corvusclarkb: is growroot so fundamental it's expected to be in every nodepool use of dib?  i'm trying to get at whether we're really testing nodepool here, or we're testing openstack's dib images.22:54
jlkgithub3.py's CI jobs never actually hit the github API22:54
clarkbcorvus: yes if you don't use growroot your / is only as big as your diskimage so you can't really write anything22:54
jlk(unless you delete a betamax recording or need to create a new one)22:55
clarkbcorvus: this is big enough for the old can I ssh in test which is why it worked without that in the past, but real world requires you have some disk to copy zuul repos for example22:55
clarkbcorvus: I don't really see it as openstack specific, if you make a dib image you want growroot22:56
clarkbor you'll have a full / and things will break when you use the image22:56
corvusclarkb: okay, i'm convinced this stands on its own as an enhancement to the nodepool dib tests.22:56
jlkcorvus: so back to the qeustion22:57
jlkquestion22:57
clarkbcorvus: and the reason for this is you want the images themselves to be as small as possible while still taking advantage of whatever disk you put on them22:57
clarkb*put them on22:57
clarkbcorvus: are you good with the change as is then without moving the job around or having tiers of that integration job?22:58
clarkboh cool you approved it I guess that answers that question. Thank you22:59
corvusclarkb: yep, i +3d it.  i think we might want to think about rejiggering it on principle, but i'm fine with the current state.  i'd push back harder on a change to nodepool that added, i dunno, a devstack element or something.22:59
clarkbcorvus: ya I think that is entirely reasonable22:59
jlkcorvus: if I were to A) install the app on github3.py, B) add it to project-config/zuul/mail.yaml, and C) add an entry for it in project-config/zuul.d/projects.yaml for third-party-check, then I'd list certain zuul jobs to run, right? And those jobs would have to know that the github3.py that zuul requirements lists would have to come from the zuul git repos instead of the pip mirror, right?22:59
jlkthat's the part I was also stuck on. How does the job magically take advantage of the speculative github3.py state22:59
corvusjlk: if it's the zuul unit tests, for example, if the job says "required-projects: sigmavirus24/github3.py" it will all magically happen23:00
corvusjlk: that's because the tox roles look at that variable and set up what we call "sibling" repos based on it23:00
corvusjlk: (if it finds that a required-project is in requirements.txt, it automatically installs it from the zuul-prepared source checkout)23:01
jlkI see23:01
jlkhow much of that is Zuul roles and not OpenStack roles?23:01
jlklike, is this a reusable pattern for projects outside of OpenStack?23:01
clarkbI want to say that is in the base tox role23:01
jlk(and what would we do for !Python)23:01
pabelangeryah, tox role in zuul-jobs23:02
corvusjlk: of course, as discussed, the unit test jobs won't actually be effective, but if we did the betamax thing, it would work.  any new jobs (like the live github test) that used tox could also take advantage of it easily.  non-tox would require a teensy bit of work.23:02
corvusjlk, pabelanger, clarkb: yep, it's all generic in zuul-jobs.  the only thing this bit of magic requires is the use of pbr.23:02
corvusjlk, pabelanger, clarkb: so basically, if you're a python project that uses pbr and tox, if you use the tox roles/jobs from zuul-jobs, you get this for free.23:03
openstackgerritMerged openstack-infra/nodepool master: Test growroot in boot tests  https://review.openstack.org/55510323:03
jlkokay23:03
jlkand it's only the "thing I want to test" that needs pbr, in this case the zuul project. github3.py doesn't need pbr23:03
corvusjlk: correct23:03
corvusat least, i'm pretty sure about the pbr thing.  i'm double checking23:04
jlkthe !Python extra work would be to figure out how to replicate this set up, eg for Ruby be able to install the gem from source checkout rather than from the gem servers23:04
clarkbit may not even need pbr, iirc the implementation is it does an install of tox env using the only install deps command23:04
corvusactually, i may have lied about pbr23:04
clarkbthen it does a for loop for each required project and installs them over the top23:04
clarkbpbr shouldn't be needed to do those two steps23:04
jlkah23:04
corvusclarkb: yeah, so i think we only requrie tox23:04
clarkbthen it runs the tox env telling it to not install any deps23:05
jlkso tox installs everything once, then installs all the potentially speculative ones over the top23:05
jlkTHEN installs the project (zuul) itself?23:05
clarkbjlk: ya tox does the project (zuul) as the step prior to running test commands23:05
corvushttps://zuul-ci.org/docs/zuul-jobs/roles.html#role-tox23:05
clarkbthats a built in tox behavior of splitting dep installs from project install23:05
corvushttp://git.zuul-ci.org/cgit/zuul-jobs/tree/roles/tox/library/tox_install_sibling_packages.py23:06
corvusand yeah, it has pbr and non-pbr support in there23:07
jlkah cool, and that's just to discover the name of the thing23:08
jlkI wonder if you can slap a betamax recording on a whole series of interactions...23:08
clarkbwhats neat is setuptools supports setup.cfg now too23:08
* clarkb checks if it supports that name query23:09
jlkbut not in a pbr compatible way IIRC23:09
clarkbjlk: overall that is correct but the name bit may be compat23:09
clarkb(its really annoying that it was implemented in a non compat way)23:09
clarkbmetadata.name is used the same way with setuptools23:10
clarkbso it should support both setuptools and pbr setup.cfg files23:10
corvusjlk: in fact, all you'd need is this project stanza: http://paste.openstack.org/show/718216/23:10
corvusjlk: tox-py35-on-zuul is an already existing job which is "run zuul's unit tests on changes to this other random repo"23:11
jlkinteresting!23:11
corvuswe run it on changes to zuul-jobs23:11
jlkI wish we could see what, if any, calls github3.py library gets during that test23:12
jlkand how much is mocked out23:12
clarkbfwiw the gerrit testing is fairly robust and it just uses a fake that doesn't even set up an ssh connection iirc23:15
clarkbso betamax'ing it is probably sufficient?23:15
jlkbetamax records python requests calls, which github3.py makes. If we could mount a cassette and then call something in zuul that would do a bunch of work agains the API, we should be able to record all of it23:15
corvusthere's something that the current approach (which is to emulate gerrit/github behavior) gives us -- the ability to construct new scenarios without interacting with gerrit or github.  basically, we've modeled the behavior of the remote services so that we can say "pretend there are 2 changes and then one of them ..."23:18
fungiclarkb: jlk: when setup.cfg support was added to setuptools they mostly used or at least aliased the same parameter names pbr used, and for newer things i've added in setuptools i've submitted matching support in pbr23:18
corvuswe could do all of that with betamax, but it'd be extra work on each new test to record a new cassette23:18
clarkbfungi: if you read they docs they explicitly call out a bunch of stuff that isn't supported. The entirety of metadata should be though23:18
jlkcorrect23:18
clarkbfungi: entrypoints and such are not23:18
jlkthere's the recording upfront cost23:18
clarkbcorvus: jlk how difficult is it to get betamax to represent a failure behavior that may not always be present in the upstream tool?23:19
clarkbwould you ahve to hand edit it in that case?23:19
fungiclarkb: yeah, there's not 100% alignment but my point was they went out of their way to avoid making things completely different from pbr23:19
corvusso we might want to consider that we really have two use cases -- the current system is handling modeling zuul behaviors against remote systems.  but we *also* want to verify our ability to interact with them.  so we may want to think about a new set of tests explicityl for that, rather than thinking of the current fakes as a limitation.23:20
jlkclarkb: hrm. Can you give an example?23:21
corvus(of course, we can use most of the existing test infrastructure to make that easy -- just copy the tests we want and don't swap in the fake github on those)23:21
jlkah, ZuulTestCase() has a configure_connections, which has a getGithubConnection() which sets up the fake.23:22
jlkSo we'd have to record a few things23:23
jlkWe'd have to recrord the initial bringup, where Zuul logs into GitHub and iterates over the project list repos23:23
jlkand also record various activities like "respond to a PR open event" and all the interaction that causes23:24
clarkbjlk: github 500s you or whatever response is due to api ratelimit for example23:24
jlkThat could all be in a single "test case", or maybe a whole class that gets a single cassette23:24
clarkbShrews: left some comments on the ZfS reorg change23:25
jlkclarkb: OIC. That is hard to setup, I"d say you'd want to manually mock that out23:25
clarkbjlk: ya that was my worry. There tend to be a small number of exceptional yet expected over the course of time cases that would be good to test for23:26
jlkclarkb: as corvus says though, we shouldn't think about moving our existing tests to be betamaxed. We could add to our existing tests a scenario in which a 500 is returned instead of some well formatted json.23:27
clarkbya23:28
jlkand we should record some NEW tests23:28
*** elyezer has quit IRC23:29
*** elyezer has joined #zuul23:36
*** gouthamr has quit IRC23:41
*** elyezer has quit IRC23:43
*** elyezer has joined #zuul23:44
jheskethcorvus: a while ago we were discussing having zuul handle gearman worker failures more gracefully23:46
jheskethcorvus: I had a pass at a patch here if you have time to take a look at the approach: https://review.openstack.org/#/c/554890/23:47
*** JasonCL has quit IRC23:47
jheskethgiving the discussions with zk retries etc it may also not be something that we still want to do23:47
jhesketh(one of the delays in the patch is that I'm having issues getting working tests for it)23:47
jheskethand if we want to drop gearman then that may also make it redundant23:48
*** JasonCL has joined #zuul23:52

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