Tuesday, 2020-02-04

openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Add upload-logs-gcs role  https://review.opendev.org/70371100:02
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Add index_links option to zuul manifest  https://review.opendev.org/70558000:02
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Google logs: Link to index.html files  https://review.opendev.org/70558600:02
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Add index_links option to zuul manifest  https://review.opendev.org/70558000:08
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Google logs: Link to index.html files  https://review.opendev.org/70558600:08
*** tosky has quit IRC00:22
*** mattw4 has quit IRC00:25
*** wxy-xiyuan has joined #zuul00:27
openstackgerritTristan Cacqueray proposed zuul/zuul-jobs master: install-docker: enable setting docker userland proxy  https://review.opendev.org/70275300:27
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Replace existing operator tasks with the new dhall function  https://review.opendev.org/70210600:27
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Replace existing operator tasks with the new dhall function  https://review.opendev.org/70210600:57
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Generate TLS certificats for the gearman service  https://review.opendev.org/70271600:57
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Handle service restart when connections are changed  https://review.opendev.org/70362400:58
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Add tenant reconfiguration when main.yaml changed  https://review.opendev.org/70363100:58
*** rfolco has joined #zuul01:07
openstackgerritTristan Cacqueray proposed zuul/zuul-jobs master: install-openshift: honor the docker_userland_proxy toggle  https://review.opendev.org/70558901:12
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Add OpenShift SCC and functional test  https://review.opendev.org/70275801:13
*** jamesmcarthur has joined #zuul01:30
*** jamesmcarthur has quit IRC01:43
*** jamesmcarthur has joined #zuul01:44
*** jamesmcarthur has quit IRC01:53
*** jamesmcarthur has joined #zuul02:03
*** jamesmcarthur has quit IRC02:07
openstackgerritTristan Cacqueray proposed zuul/zuul-jobs master: install-openshift: honor the docker_userland_proxy toggle  https://review.opendev.org/70558902:08
*** jamesmcarthur has joined #zuul02:15
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Add CONTRIBUTE file  https://review.opendev.org/70553502:17
*** jamesmcarthur has quit IRC02:45
*** jamesmcarthur has joined #zuul02:46
*** rfolco has quit IRC02:50
*** jamesmcarthur has quit IRC03:13
*** jamesmcarthur has joined #zuul03:13
*** bhavikdbavishi has joined #zuul03:15
*** bhavikdbavishi1 has joined #zuul03:18
*** bhavikdbavishi has quit IRC03:20
*** bhavikdbavishi1 is now known as bhavikdbavishi03:20
*** rlandy has quit IRC03:30
*** jamesmcarthur has quit IRC03:32
*** jamesmcarthur has joined #zuul03:48
*** jamesmcarthur_ has joined #zuul03:52
*** jamesmcarthur has quit IRC03:56
*** jamesmcarthur_ has quit IRC03:57
*** jamesmcarthur has joined #zuul03:58
*** jamesmcarthur has quit IRC04:04
*** jamesmcarthur has joined #zuul04:11
*** jamesmcarthur has quit IRC04:18
*** jamesmcarthur has joined #zuul04:48
*** jamesmcarthur has quit IRC05:00
*** jamesmcarthur has joined #zuul05:00
*** jamesmcarthur has quit IRC05:02
*** shanemcd has quit IRC05:06
*** saneax has joined #zuul05:08
*** shanemcd has joined #zuul05:10
*** bolg has joined #zuul05:21
*** yolanda has quit IRC05:24
*** jamesmcarthur has joined #zuul05:33
*** evrardjp has quit IRC05:33
*** evrardjp has joined #zuul05:34
*** raukadah is now known as chkumar|rover05:37
*** felixedel has joined #zuul06:34
*** felixedel has quit IRC06:40
*** felixedel has joined #zuul07:28
*** mugsie has quit IRC07:37
*** mugsie has joined #zuul07:41
*** evrardjp has quit IRC07:46
*** evrardjp has joined #zuul07:50
openstackgerritTobias Henkel proposed zuul/zuul master: WIP: Fix mqtt log url reporting when report-build-page is active  https://review.opendev.org/70398308:08
*** tosky has joined #zuul08:40
*** jpena|off is now known as jpena08:47
*** mhu has joined #zuul08:55
*** avass has joined #zuul09:20
*** bhavikdbavishi has quit IRC10:00
*** bhavikdbavishi has joined #zuul10:14
swestzuul-maint: anyone up for a second +2 review? https://review.opendev.org/#/c/704758/10:15
*** bhavikdbavishi has quit IRC10:52
*** felixedel has quit IRC10:55
*** felixedel has joined #zuul11:10
*** tosky has quit IRC11:14
*** mugsie has quit IRC11:14
*** saneax has quit IRC11:14
*** wxy-xiyuan has quit IRC11:14
*** AJaeger has quit IRC11:14
*** webknjaz has quit IRC11:14
*** adam_g has quit IRC11:14
*** mgoddard has quit IRC11:14
*** aluria has quit IRC11:14
*** zbr has quit IRC11:14
*** evgenyl has quit IRC11:14
*** dcastellani has quit IRC11:14
*** reiterative has quit IRC11:14
*** stevthedev has quit IRC11:14
*** Shrews has quit IRC11:14
*** dustinc has quit IRC11:14
*** decimuscorvinus has quit IRC11:14
*** mnasiadka has quit IRC11:14
*** andreaf has quit IRC11:14
*** donnyd has quit IRC11:14
*** kmalloc has quit IRC11:14
*** logan- has quit IRC11:14
*** irclogbot_2 has quit IRC11:15
*** openstackstatus has quit IRC11:16
*** ttx has quit IRC11:17
*** smcginnis|FOSDEM has quit IRC11:18
*** dmellado has quit IRC11:18
*** bstinson has quit IRC11:18
*** Miouge has quit IRC11:18
*** timburke has quit IRC11:18
*** tristanC has quit IRC11:18
*** arxcruz has quit IRC11:18
*** irclogbot_1 has joined #zuul11:18
*** johanssone has quit IRC11:18
*** tosky has joined #zuul11:18
*** mugsie has joined #zuul11:18
*** saneax has joined #zuul11:18
*** wxy-xiyuan has joined #zuul11:18
*** AJaeger has joined #zuul11:18
*** webknjaz has joined #zuul11:18
*** adam_g has joined #zuul11:18
*** mgoddard has joined #zuul11:18
*** aluria has joined #zuul11:18
*** zbr has joined #zuul11:19
*** evgenyl has joined #zuul11:19
*** dcastellani has joined #zuul11:19
*** reiterative has joined #zuul11:19
*** stevthedev has joined #zuul11:19
*** Shrews has joined #zuul11:19
*** dustinc has joined #zuul11:19
*** decimuscorvinus has joined #zuul11:19
*** mnasiadka has joined #zuul11:19
*** andreaf has joined #zuul11:19
*** donnyd has joined #zuul11:19
*** kmalloc has joined #zuul11:19
*** logan- has joined #zuul11:19
*** arxcruz has joined #zuul11:20
*** johanssone has joined #zuul11:20
*** timburke has joined #zuul11:20
*** dmellado has joined #zuul11:21
*** donnyd has quit IRC11:21
*** mnaser has quit IRC11:21
*** mnaser has joined #zuul11:22
*** smcginnis|FOSDEM has joined #zuul11:23
*** tristanC has joined #zuul11:23
*** dcastellani has quit IRC11:23
*** donnyd has joined #zuul11:23
*** ttx has joined #zuul11:23
*** dcastellani has joined #zuul11:26
*** Miouge has joined #zuul11:27
*** bstinson has joined #zuul11:31
*** sshnaidm|afk is now known as sshnaidm11:31
*** hashar has joined #zuul11:32
mordredswest: +A11:34
*** armstrongs has joined #zuul11:36
swestmordred: \o/ thanks!11:36
*** kgz has joined #zuul11:40
*** armstrongs has quit IRC11:51
*** armstrongs has joined #zuul11:54
*** zbr is now known as zbr|lunch12:06
*** armstrongs has quit IRC12:07
*** AJaeger has quit IRC12:11
*** AJaeger has joined #zuul12:24
openstackgerritAntoine Musso proposed zuul/zuul master: web: humanize time durations  https://review.opendev.org/70512012:24
*** jpena is now known as jpena|lunch12:31
*** rfolco has joined #zuul12:31
*** jpena|lunch is now known as jpena|off12:40
openstackgerritTobias Henkel proposed zuul/zuul master: DNM: Reproduce merger failure when changing default branch  https://review.opendev.org/70565912:47
openstackgerritTobias Henkel proposed zuul/zuul master: Allow different branches for config projects  https://review.opendev.org/70566312:57
openstackgerritTobias Henkel proposed zuul/zuul master: Add branch filter to tenant configuration  https://review.opendev.org/70566412:57
*** rlandy has joined #zuul12:58
openstackgerritTobias Henkel proposed zuul/zuul master: Add branch filter to tenant configuration  https://review.opendev.org/70566413:06
*** jamesmcarthur has quit IRC13:15
*** jamesmcarthur has joined #zuul13:16
tobiashcorvus: this implements what we discussed in berlin which would make it easier for downstream projects to update zuul-jobs in a controlled manner ^13:16
tobiashit also would make testing of trusted jobs easier13:16
*** jamesmcarthur has quit IRC13:25
*** jpena|off is now known as jpena13:28
*** jamesmcarthur has joined #zuul13:28
*** pcaruana has quit IRC13:43
*** jamesmcarthur has quit IRC13:44
openstackgerritAntoine Musso proposed zuul/zuul master: ansible manager: only failed if last ansible failed  https://review.opendev.org/70469914:06
openstackgerritTobias Henkel proposed zuul/zuul master: Add branch filter to tenant configuration  https://review.opendev.org/70566414:13
openstackgerritTobias Henkel proposed zuul/zuul master: Increase timeout of zuul-build-image  https://review.opendev.org/70568914:17
*** jamesmcarthur has joined #zuul14:18
*** rfolco has left #zuul14:32
*** michael-beaver has joined #zuul14:54
*** pcaruana has joined #zuul14:56
*** hashar has quit IRC14:57
*** zbr|lunch is now known as zbr15:04
openstackgerritJames E. Blair proposed zuul/zuul master: Correct info log on item report  https://review.opendev.org/70570915:11
corvustobiash: ^ i was curious how often we're hitting gerrit-unable-to-merge errors these days, and found that it's difficult to tell :/15:12
corvustobiash: what's up with push/depends?  do i just need to review the changes there?15:16
*** zxiiro has joined #zuul15:21
*** Goneri has joined #zuul15:23
tobiashcorvus: I thing it's best to start with the spec (https://review.opendev.org/643309)15:25
corvustobiash: k. i'm about halfway through now :)15:26
tobiashcool :)15:26
tobiashthere is also an implementation for cdep (https://review.opendev.org/685354) and also for direct push15:26
tobiashdirect push is https://review.opendev.org/#/q/topic:direct-push+(status:open+OR+status:merged)15:27
mordredneat!15:28
tobiash+3 on 70570915:28
corvusi need to grab breakfast, biab.15:30
*** felixedel has quit IRC15:30
tobiashzuul-maint: I've seen quite a few zuul-build-image timeouts so I think we should increase the timeout: https://review.opendev.org/70568915:32
*** jamesmcarthur has quit IRC15:33
*** jamesmcarthur_ has joined #zuul15:33
openstackgerritTobias Henkel proposed zuul/zuul master: Add branch filter to tenant configuration  https://review.opendev.org/70566415:37
openstackgerritTobias Henkel proposed zuul/zuul master: Evaluate CODEOWNERS settings during canMerge check  https://review.opendev.org/64455715:41
tristanCtobiash: could this be related to the changes we did to the manage-ansible pip cache?15:46
*** sshnaidm is now known as sshnaidm|afk15:46
tobiashtristanC: this hasn't been merged yet15:46
openstackgerritJan Kubovy proposed zuul/zuul master: WIP: Store unparsed branch config in Zookeeper  https://review.opendev.org/70571615:47
tristanCtobiash: https://review.opendev.org/#/c/703126/ got merged15:47
tobiashah yes, this definitely had an impact15:48
tobiashhowever the build time of that job was always close to the timeout so increasing the timeout makes still sense15:50
corvustobiash: okay, left some comments.  2 big things: 1) i don't understand the configuration settings, but that should be straightforward to correct.  2) it seems like the spec is advocating *not* using zuul-push in order to be able to revert.  is that your current thinking?  that you don't want to push reverts?15:54
tobiashcorvus: yes, imho force push should be avoided and can do more harm than it's useful in this case, but we should still combine it with direct push (at least for gerrit) to rule out merge algorithmic sources for failures15:55
corvus(there are 2 reasons for us to implement zuul-push: a) so we can push a revert if circular dependencies fail.  b) so we can test the exact git shas that are merged.  however, (b) requires significantly more work in that we have to be able to distribute those shas to all the workers, so it's a substantial redesign)15:55
corvustobiash: you and felix are both saying "force push" and i keep saying "regular push" :)15:56
corvuser, not felix, simon, sorry15:56
corvus"push a revert" is not the same as "force-push a rewind"15:57
corvusi would advocate "push a revert" so that we don't have to deal with people being confused by head pointer rewinding15:57
tobiashhrm I'm not sure I really like that better15:58
tobiashpushing a revert also means we're pushing something untested15:58
corvusthat's fair, it still has some problems, but nothing is perfect.  :)15:58
tobiashand can confuse users even more15:58
corvuswell, the idea would be to get back to the previous state, which presumably was tested15:59
*** mhu has quit IRC15:59
tobiashin my eyes the best compromise would be to do nothing there except a gate reset which will automatically enqueue the remaining parts again16:00
clarkbre codeowners, it would be nice to support that in gerrit too if possible16:01
*** bolg has quit IRC16:01
tobiashbecause pushing a revert can fail as well16:01
tobiashclarkb: how is that related to gerrit?16:01
clarkbtobiash: typically codeowners is per dir, so would give gerrit users fine grained control over approvals in subtress (but would require going outside of gerrit's structured approvals so might get messy)16:01
clarkb(this is why I say "if possible")16:02
tobiashclarkb: codeowners in github are enforced by github (and github doesn't give us the required api to check for that so we mimick that)16:02
clarkbah16:03
corvustobiash: at any rate, i'm getting the idea that direct-push may be harder with some of the newer drivers, and/or that people may be uncomfortable with enabling it.  circumstances have changed since the last time we talked about this in depth.  i think i'm willing to try the approach you suggest for now to see how things work in practice.  hopefully with my logging fix we can get a better handle on how likely16:04
corvusthat is to happen, and with a little bit of experience with circular deps in practice, we can understand whether we need to do something to handle reverts, or if crash-and-burn is okay.  so perhaps we should shelve direct-push for now and just proceed with circular deps as best-effort.  mordred, what do you think?16:04
corvusclarkb, tobiash: iiuc, codeowners is required for zuul to correctly predict github's behavior and is therefore user-invisible.  extending it to gerrit would be a user-visible feature where we would be "enhancing" gerrit via zuul.16:05
tobiashcorvus, clarkb: yes, exactly tht16:06
corvuspabelanger: have you had a chance to review the circular dep spec?16:08
clarkbya for some reason I thought it was only bot enforced wtih github too16:08
tobiashcorvus: I think direct push could still be useful on its own (optionally for certain drivers) in order to avoid cases where zuul is happy to merge and gerrit is not because of an automatically resolvable conflict16:08
corvusclarkb: probably used to be :)16:08
corvustobiash: ok, so look at direct-push as something unrelated to circ-dep except that it can reduce the chances of errors because cgit > jgit?16:09
tobiashyes, that are my thoughts16:09
corvustobiash: ok.  that sounds reasonable.  it's still a lot of code/complexity for that.  do you have an idea how often we're hitting errors like that these days?  (also, opendev's gerrit is very old, maybe jgit is better now?)16:11
corvustobiash: what gerrit version are you running?16:11
tobiashall other sources of errors are network related and especially with github we saw cases where we got an error back from github (500) and the merge was still done. In this case no matter what we do we do the wrong thing.16:11
tobiashcorvus: let me check16:11
corvusESUCCESS: Error: Success!16:11
tobiashwell, actually that's a more theoretical question, I cannot remember such a case in our system (or I didn't get reports)16:12
tobiashcorvus: we have almost the same version of gerrit running ;)16:13
tobiashbut most of our projects run on github nowadays16:13
*** mattw4 has joined #zuul16:18
tobiashespecially the github 500 with still successfull merge pulled me to the conclusion that the safest thing we can do in case of a failed merge is a gate reset which will pull in current repo states and does the right thing moving forward.16:18
tobiashwhich is also the thing zuul currently does :)16:19
openstackgerritMerged zuul/zuul master: Correct info log on item report  https://review.opendev.org/70570916:22
openstackgerritAndy Ladjadj proposed zuul/nodepool master: add ebs-optimized support for aws provider  https://review.opendev.org/70575516:42
*** noorul has joined #zuul16:42
noorulls16:42
noorulls -la16:42
noorulOops! sorry about that :(16:42
pabelangercorvus: I'll make some time this evening16:42
noorulofosos: hi16:42
*** jpena is now known as jpena|brb16:45
*** chkumar|rover is now known as raukadah16:48
sugaarhi, in zuul.conf [connection "mysql"] where needs to be provided the dns name of the ip address of the database? is that "name"? or connection "mysql"? i tried searching on https://zuul-ci.org/docs/zuul/howtos/zuul-from-scratch.html?highlight=zuul%20conf but I couldn't find it16:51
corvussugaar: it's here: https://zuul-ci.org/docs/zuul/reference/drivers/sql.html#attr-%3Csql%20connection%3E.dburi16:52
corvusthe "name" is the name of the connection inside of zuul (that's how you add it to pipelines) but isn't used for connecting to the db.  that's dburi.16:53
sugaarmm16:56
sugaarI think I understand, so in "dburi=mysql+pymysql://zuul:%(zuul_mysql_password)s@localhost/zuul" the "mysql" between "dburi=" and "+pymysq" is the dns that gets translated to the ip address right?16:57
corvussugaar: actually it's the 'localhost' in that16:58
corvussugaar: the mysql+mysql part tells sqlalchemy "use mysql dialect with the pymysql driver"16:58
sugaarso I didn't understand it that well XD16:59
sugaarI get it now16:59
corvusthen it's "://user:password@host/database"16:59
sugaarthanks corvus16:59
corvussugaar: you're welcome16:59
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Google logs: Link to index.html files  https://review.opendev.org/70558617:01
mnaserits kindof a bummer you dont really have a way to get a functional out of the box image with nodepool/dib without having to figure out how to get your own elements up and going.17:05
clarkbmnaser: I'm not sure that is true17:08
mnaserexample: no python-tox17:08
clarkbmnaser: the ubuntu element for example shoudl give you a VM that is ssh able if you set ssh key metadata17:08
mnaserclarkb: in my case the tox-* jobs dont work because python-tox is not installed17:09
mnaserand ensure-tox installs it inside --user which is well not within the usual $PATH17:09
mnaser(it seems openstack-infra drops it inside the infra-package-needs)17:09
corvushuh, the purpose of ensure-tox was specifically to handle this case17:09
mordredyeah - if we need to update paths - then we should do that17:10
mnaserensure-tox runs pip install with --user and therefore it installs into ~/.local/bin/tox17:10
mordredyeah. we should do whatever we need to do to make sure then that ~/.local/bin is in the path17:10
mnaserso unless i need to somehow rewire $PATH in my nodepool images, it doesnt really work17:11
mordredotherwise we have a bunch of useless roles in zuul-jobs17:11
clarkbmnaser: I think what corvus and mordred are getting at is that the zuul-jobs role(s) need to be updated instead17:11
mnaseri assumed that the jobs were ok because openstack-infra uses ensure-tox :)17:11
mordredyah. we should make sure those roles do the right thing17:11
clarkbbecause they install tox to handle this case and if that isn't working the bug is there (not in your image)17:11
mordredyup17:11
mnaser(sorry, i mean its baked in)17:11
mnaseri'm not sure what the best way to go about solving this though17:12
mordredwhich is to say - I agree with your assessment that this should all just work - and if it's not working it's a definite bummer :)17:12
pabelangerthe issue is .local/bin isn't in PATH for centos (maybe fedora), but should be fine for ubuntu17:12
mnasersounds like it might be a whack-a-mole thing17:12
mnaser.local/bin isnt in path for debian too (in my case)17:12
mordredmnaser: I think we can have ensure-tox (and similat things) drop ~/.local/bin into the path17:12
pabelangerso need to update bashrc17:12
mordredyes17:12
mordredthat is what ensure-tox should do17:12
mnaserso ensure-tox should make sure ~/.local/bin is in path *if* it installs tox17:13
mordredand we need to switch between adding it to bashrc or bash_profile based on distro - but I've actually got a patch up doing that for a different thing17:13
pabelangerbut yes, we still bake in tox for zuul.a.c today. haven't got around to fixing ensure-tox17:13
mordredmnaser: yes17:13
pabelangerI think the better fix, is to set tox_executable to full path, and avoid modifying PATH17:14
corvuspabelanger: why is that better?17:14
mordredhttps://review.opendev.org/#/c/704266/1/roles/ensure-python/tasks/pyenv.yaml17:14
mordredthere's an example of modifying bash rc files17:14
pabelangercorvus: it is possible something in local/bin could conflict with distro, and break?17:15
mordredit's not 100% solid yet - but that would be the idea17:15
pabelangerthe last time we tried to modify PATH, we had some fallout for executor side17:15
corvusmordred: would it make sense to make that a role and then have all the ensure-* roles include_role that?17:15
mordredcorvus: yes17:15
mnaserso an add-to-path role or something17:16
corvuspabelanger: i don't think we'd be modifying anything on the executor, this would be on the worker nodes.17:16
openstackgerritAndy Ladjadj proposed zuul/nodepool master: add ebs-optimized support for aws provider  https://review.opendev.org/70575517:16
mordredpabelanger: I think we can a) put ~/.local/bin at the end of path so it doesn't conflict with things BUT b) nothing shoudl be in local/bin other than things that jobs think they installed - so I'd like to see putting it at the front fail first and understand what the situation is17:16
corvusmordred: ++17:17
mordredbut in any case - we should definitely fix enxure-tox (and friends) so that mnaser doesn't have a sad about base images not working :)17:17
corvusmordred: is the path part of that patch gtg, or does it need more work?17:17
pabelangeryes, that was a poor example. I was trying to say, there are reasons for .local/bin, not in path by default (I don't know what that is), but if our job changes that, that is some drift on default installs.  I'd be okay with some way to opt into it17:17
mordredcorvus: I'm not sure - I wrote that as a morning drive-by - the distro to file mapping should be solid - but I need to test it more17:18
clarkbpabelanger: distros tend to not put random stuff in path, they put only what they control17:18
mnaserok so i can try and refactor that into an add-path-to-path .. role?17:18
mordredmnaser: yah17:18
corvusmnaser: ++17:18
mnaseranyone wanna volunteer come up with a better name17:19
mnaserheh17:19
clarkbif the names are case sensitive: add-path-to-PATH17:19
corvusmnaser: we can write a special test job for this that does an "apt-get remove tox" or whatever to make sure this is all tested in zuul-jobs17:19
mordredpabelanger: it's a good idea from a distro side to not have local.bin in path for safety. but for us, we're the user, so if we're installing software into ~/.local, I think it's fair for us to add it to path17:19
tobiashwe could also link the tox binary into /usr/bin/17:19
mordredI agree we should _not_ do that if we don't install things17:19
clarkbtobiash: that is what I do17:19
corvusmnaser: if you can get patches up for the role and ensure-tox, i'll write the test job to verify it all.17:19
clarkbtobiash: I install stuff in a venv then ln -s them to a location in my path17:20
mordredthe nice thing about --user and adding to path is that it means you don't actually need root for ensure-tox to work17:20
clarkb(its actually ~/bin but same idea)17:20
mnasercorvus: ok will do17:20
mordredwhich, although we have it - is still nice in terms of widest applicability for people running in environments where root may be more scarce - and nothing about installing tox should require root - and path and ~/.bashrc exist to allow stuff like this - so there's no reason to restrict ourselves from using them17:20
mnaseri can also do a depends-on check17:21
mnaserbecause our zuul is connected to opendev's gerrit17:21
mnaser\o/17:21
pabelangerwe should do what we did in ensure-twine: https://opendev.org/zuul/zuul-jobs/src/branch/master/roles/ensure-twine/tasks/main.yaml#L16 but using tox_executable as fact17:21
corvusmnaser: ++17:21
pabelangerthat results is the same issue, but twine works17:21
mnaseroh actually what do folks thing about setting a fact inside ensure-tox ?17:22
corvusmnaser: it won't persist between plays17:22
mnaserah yes17:22
corvusand we want to be able to have ensure-tox in pre-run and tox in run17:22
corvuspabelanger: yes, that approach is the other option.  i think we should settle on one for all the ensure-* roles though.17:23
corvusif we add-to-path then the end-use roles like tox or twine can be simpler.17:23
*** jpena|brb is now known as jpena17:24
mnasercorvus, mordred ok with 1 change that includes add-to-path and updating ensure-tox or rather me split em?17:26
corvuswfm17:27
pabelangeranother option, is update zuul user at DIB time, to have correct PATH17:27
clarkbpabelanger: I think we should avoid relying on image build specifics17:27
*** noorul has quit IRC17:28
clarkbif the jobs can ssh in they should be able to run17:28
clarkbthe reason for that is wedon't require dib17:30
clarkband don't support it or other automated image building with other provider backends17:30
pabelangergood point17:30
*** michael-beaver has quit IRC17:33
*** evrardjp has quit IRC17:33
*** evrardjp has joined #zuul17:34
openstackgerritMohammed Naser proposed zuul/zuul-jobs master: ensure-tox: add ~/.local/bin to $PATH  https://review.opendev.org/70578217:35
mnasercorvus, mordred ^ i'll test this locally too17:35
*** jamesmcarthur_ has quit IRC17:35
mordredmnaser: woot!17:36
clarkbmnaser: I don't think you need the distro switch17:36
clarkbthat behavioris bash defined not distro defined17:36
clarkbalso it won't apply on command or shell tasks by default17:36
clarkb(because they use sh instead which may not be bash)17:36
*** jamesmcarthur has joined #zuul17:37
mnaserclarkb: what do you suggest instead?17:38
clarkbmnaser: I think drop the distro checks and instead write a .shrc and source that in .bashrc17:40
mordredclarkb: I'm pretty certain you need the distro checks17:40
clarkbmordred: why? bash the program determines what it sources17:41
clarkbnot the distros17:41
mordredbecause just sourcing the .shrc in .bashrc isn't gauranteed to workk on the platforms where .bashrc doesn't get sourced automatically17:41
mordredclarkb: I'm pretty certain that's not 100% true17:41
mordredthe distros go out of their way to make different default choices17:41
pabelangerwhat is user is not using bash as shell in 705782?17:42
pabelangerif*17:42
clarkbreading more .profile is the sh login setup. .bash_profile is login setup for bash and it falls back to .profile if .bash_profile is not present17:42
clarkbrc is for interactive sessions that are not a login17:42
clarkbthat is bash behavior not distro behavior17:42
*** jamesmcarthur has quit IRC17:42
clarkbmordred: specific to homedir files17:42
pabelangermaybe we need a new role, setup-zuul-user. that base-minimal jobs can include, to problem setup user things, like shell.  Having ensure-foo randomily modify bash doesn't seem clean17:43
clarkbmordred: what the distros do in /etc is probably weird17:43
mordredok. I'd be happy to be wrong about that of course17:43
clarkbI think this means that .profile might work as long as we get a login shell17:43
mordredpabelanger: I do not believe we support users not using bash at all17:43
clarkbas that would cover bourne and bash17:44
pabelangermordred: do you know what windows uses?17:44
mordredpabelanger: powershell?17:44
mordredI don't expect these to work without modication on windows :)17:44
pabelangermostly thinking of tobiash, but have no idea is they use these jobs17:45
mordredclarkb: so I think the question is whether we get logic shells for each task17:45
clarkbmordred: yup17:45
mordredpabelanger: yeah - it's a good thing to think about - but I think in general most of these already dont' even come close to working on windows17:45
*** jamesmcarthur has joined #zuul17:46
pabelangerack, good to know17:46
mordredpabelanger: that said - I actually disagree with you about a thing for base-minimal ... because of a point you made earlier :) I think we should only modify path if we actually install something to a new location - and we won't know we've done that until we install or don't install something17:46
clarkband if we don't get a login shell I would write .shrc and .bashrc and source one from the other17:46
mordredso - although it does touch more things, I think we can modify things less frequently if we just modify things at point of use17:47
pabelangermordred: yah, I think the thing I am worried about, is modifying PATH on CI jobs, for tox. Because we install it from RPM and not pip, we don't actually need that on zuul.a.c now ( I just remember we stopped using pip install tox in dib). So, it would nice to only modify if pip install is invoked17:48
mordredpabelanger: yes - I think we should absolutely do that17:48
clarkbpabelanger: the job won't install it into the local/bin dir if you've installed it globally17:48
clarkband mnaser mentioned above only doing the path update if the install happens17:48
mordredyeah - and if we don't hit the "I need to install this" condition, then we shoudlnt' modify path17:48
mordredyeah17:49
pabelangerclarkb: 705782 needs to be upgraded, we modify PATH regardless17:49
clarkbpabelanger: it needs updating anyway since that won't work with default command and shell tasks on a bunch of systems (including ubuntu)17:49
mordredpabelanger: ++17:49
*** jamesmcarthur has quit IRC17:51
*** jamesmcarthur has joined #zuul17:51
*** igordc has joined #zuul17:53
clarkbthis sh stuff is bringing back memories helping univeristy students set up their computing environments17:53
clarkbrelated, you want the root shell to be statically compiled. This is why a lot of systems still use not bash for sh.17:55
clarkbIf you want to discover why this is important do a make world on freebsd after setting root's shell to bash from csh17:55
clarkbmordred: ^ did you hear about that? chromakode discovered that the hard way working on our drizzle db server17:56
clarkbits funny to think back on but at the time that was pain17:56
mnasernothing is easy :<17:58
corvusnot even goat farming17:58
pabelangerbut, goat simulator is fun17:59
openstackgerritAndy Ladjadj proposed zuul/nodepool master: add ebs-optimized support for aws provider  https://review.opendev.org/70575517:59
*** tosky has quit IRC18:01
*** jamesmcarthur has quit IRC18:12
*** jamesmcarthur has joined #zuul18:13
*** jamesmcarthur has quit IRC18:19
*** jamesmcarthur has joined #zuul18:25
fungiif goat farming doesn't work out, there's always long-haul trucking. something alluring about life on the open road18:33
*** jamesmcarthur has quit IRC18:34
*** jamesmcarthur has joined #zuul18:35
*** adamw has quit IRC18:36
*** jpena is now known as jpena|off18:37
*** jamesmcarthur has quit IRC18:40
*** jamesmcarthur has joined #zuul18:40
mnaserpoo18:41
mnaser"Destination /home/zuul/.bash_profile does not exist !" under debian18:41
mnasermaybe i should add debian to fedora/ubnutu list mordred ?18:41
openstackgerritMohammed Naser proposed zuul/zuul-jobs master: ensure-tox: add ~/.local/bin to $PATH  https://review.opendev.org/70578218:44
*** jamesmcarthur has quit IRC18:48
mnaserWARNING: The scripts tox and tox-quickstart are installed in '/home/zuul/.local/bin' which is not on PATH.18:48
mnaserhmm18:48
mnaserthats with the depends-on patch above18:48
mnaseri think clarkb theory was correct bc bash is not used?18:48
fungiwhy not append to ~/.profile?18:49
mnaserclarkb: what files should i ideally update? it seems like you had a grasp on things18:49
clarkbmnaser: I left a comment on the change18:49
clarkbbut ya .profile should be used by both sh and bash. If we don't get login shells then update .shrc and .bashrc (and have one source the other)18:50
mnaserto avoid touching a lot of pieces, i wonder if i can start by seeing if it works with .profile only initially18:51
fungilong story short, making sure things happen for specific users on login to various distros is nontrivial18:52
fungibut yeah, i recommend trying ~/.profile next18:52
* fungi is still catching up18:52
mnaser(i can only try on debian right now fwiw)18:52
openstackgerritMohammed Naser proposed zuul/zuul-jobs master: ensure-tox: add ~/.local/bin to $PATH  https://review.opendev.org/70578218:52
clarkbthe breakdown is .profile and .bash_profile are sourced by login shells. .shrc and .bashrc are sourced by non login shells. If .bash_profile does not exist then .profile will be sourced by bash, but that is not the case with .shrc and .bashrc18:54
clarkbso we have to account for login vs not (depending on how ansible shell tasks work) and whether or not files exist18:54
clarkbdefinitely start by trying .profile and if it works its probably simplest. If not then .shrc + .bashrc may be required18:55
mnaser^ that one didnt work18:55
fungipoop18:57
mnaser(by that one, means adding into .profile and this is on debian buster)18:58
clarkbprobalby because it ships a default .bash_profile18:58
clarkb?18:58
clarkbthough the sh shell tasks should pull in .profile if they use a login shell so actually probably because not a login shell18:59
mnaseri run debian sid on my laptop which i imagine isnt far away from buster19:00
mnaserand uh19:00
mnaserhttp://paste.openstack.org/show/789129/19:00
*** mattw4 has quit IRC19:00
mnaseri am confused now19:00
clarkbmnaser: probably not a login shell19:00
clarkbthat file is only sourced if it is a login shell19:01
mnaserah ok19:01
*** mattw4 has joined #zuul19:02
mnaseri'm starting to feel discovering the tox location might be more robust19:02
mnaserwhats annoying is .shrc doesnt exist in debian it seems19:03
*** michael-beaver has joined #zuul19:04
funginot existing isn't the same as not getting used19:05
mnaserwell in that case i'd have to make 2 branches of code19:06
fungiif we append then that should cover cases where it exists as well as those where it doesn't (as long as our append action will create nonexistent files)19:06
mnaserone that makes sure the file exists / at least empty, and the other is lineinfile19:06
mnaseroh lineinfile has create19:06
mnaser"If specified, the file will be created if it does not already exist."19:06
fungiahh, so ansible doesn't have something like `echo ... >> foo` where foo is appended to when it exists but created when it doesn't?19:06
mnaser"By default it will fail if the file is missing."19:06
fungiaha, so it does19:07
fungijust needs an extra toggle19:07
mnaserok so bashrc and shrc19:07
fungiadd it to .shrc, and then add a line to .bashrc to source .shrc19:07
fungior optionally add it to both .shrc and .bashrc, since adding an entry to .bashrc to source .shrc would need some idempotency checks19:08
mnaseryeah i think adding it to both might be easier and cleaner19:08
mnaserso i dont end up sourcing other things19:08
fungito avoid sourcing contents of .shrc multiple times19:08
openstackgerritMohammed Naser proposed zuul/zuul-jobs master: ensure-tox: add ~/.local/bin to $PATH  https://review.opendev.org/70578219:08
mnaserso nice to test it in another repo on another gerrit :)19:09
mnaserah i forgot something19:09
openstackgerritMohammed Naser proposed zuul/zuul-jobs master: ensure-tox: add ~/.local/bin to $PATH  https://review.opendev.org/70578219:09
pabelangermnaser: we should only update PATH, if pip install is done.19:10
mnaserpabelanger: yep, i plan to do that once i get it work minimally :p19:10
pabelanger++19:10
mnasersigh19:12
mnaserthat didnt even work19:12
mnaserbtw we should totally install using pip3 first before pip but thats a whole another thing19:13
mnaserso the shell command notes: "It is almost exactly like the command module but runs the command through a shell (/bin/sh) on the remote node."19:27
mnaserso it means command doesnt actually use a shell at all?19:27
pabelangeryah, that is different with shell task19:27
mnaserlooks like it actually uses subprocess.Popen19:30
pabelangerif tox role using command?19:30
pabelangererr19:31
pabelangeris*19:31
pabelangerI wonder19:31
pabelangerif we do use set_fact for full path19:32
mnaseryes it is19:32
pabelangerthen set cacheable: true19:32
mnaser(using command)19:32
pabelangerit should persist over playbooks19:32
pabelangerbecause, we have fact cache19:32
pabelangermaybe that is better way19:32
mnaserya either that or just have a actual `environment` in every single place..19:34
mnaser(that we have command)19:34
mnaserand we append the path there19:34
pabelangertox_environment should work19:35
pabelangerbut, then you still have fact issue19:35
mnaseryeah you'd have to carry the fact that you have a local install19:36
pabelangerIf cacheable works, I think that is miminal change19:37
mnaserif cacheable works then i think we can just fact of tox_executable19:37
pabelangeragree19:38
openstackgerritMohammed Naser proposed zuul/zuul-jobs master: ensure-tox: save tox_executable fact  https://review.opendev.org/70581619:41
mnaser..testing here19:41
*** avass has quit IRC19:43
openstackgerritMohammed Naser proposed zuul/zuul-jobs master: ensure-tox: save tox_executable fact  https://review.opendev.org/70581619:46
*** armstrongs has joined #zuul19:46
mnasermordred: i see you did work on pyenv, i'm considering building debian python packages for different python versions (for example, buster doesnt have 3.6 but has 3.7...)19:53
mnaseri'm not sure if there's been discussions around how to ship python quickly independent of the distro19:54
fungithere were a bunch of ideas tossed about last week before fosdem19:54
mordredmnaser: I don't know about quickly ... but I've been extremely pleased as a pyenv user myself19:55
fungione challenge is going to be caching the interpreter builds somewhere so that they're not recompiled from source in every job19:55
clarkbI could never get pyenv to work on suse fwiw19:55
clarkb(becuse of distro patching)19:55
clarkbpython upstream will take patches to build python on weird random platforms but not linxu distros apparently19:55
mordredwell - it works nicely on debuntu and osx19:55
mnasermordred: i think the issue here is building python on every commit19:55
mnaserif we cache whatever pyenv builds across builds then i'm all for it19:56
*** armstrongs has quit IRC19:56
mordredyeah. I think it would be pretty possible to cache the python builds from pyenv - they go into directories19:56
clarkbmordred: ya its a problem due to how suse packages its curses stuff19:56
mordredmnaser: you know - I have an idea19:56
mnasera cache would totally be something i know a lot of users be interested in19:56
fungisomething like the wheel build jobs opendev uses, but cache tarballs of the pyenv result which a job can fetch and splat out into its filesystem19:58
clarkbone thing you need to be careful of is the linkking to all those external libs19:58
clarkbthe cache would have to be per distro release arch19:58
fungiit would need to be per-platform, yep19:58
mordredfungi: yes19:58
clarkbfungi: ya19:58
mordredclarkb: and yes19:58
mnasercould even be a zuul job really19:58
mordredso - my thought is - do it like the cache tarball idea fungi just had - but splat the tarball into an otherwise empty docker image19:58
mordredso that we get transit and region caching easily19:59
mordredthen have the untarring be a docker export19:59
clarkbdoesn't dockerhub already provide python version specific iamges?19:59
mnaser^19:59
mordredyes - but those are images19:59
mordredthey have an install of python baked into the image19:59
mordredthat's not what we want here - we want a python that's built for the target host system19:59
mordred(because of the shared libs thing clarkb mentioned)19:59
clarkbright I guess if using docker why not just run a container then20:00
mordredright - because that adds a bunch of other things into the mix - you'd need to bind-mount the world, then you'd be using the libs from the image and not the host20:00
mordredI'm just suggesting using docker as a transport mechanism for the tarball content - not as an actual runnable container image20:00
mordredsince it's already addressable and we already have per-region caching mirrors set up20:01
clarkbya I guess my grip with that is docker is pretty terrible at http20:01
mordredBUT - we could also just use tarballs - they won't be that big20:01
clarkbI would rather use anything else to get http caching :)20:01
mordredheh20:01
clarkbwe have to live with it for docker itself though20:01
tristanCfwiw i heard nixos and cachix is a good solution to distribute and share such things too.20:02
mordredyeah - mostly just we're already dealing with it - what's another couple of images20:02
fungiif we do it like our wheels, we'd distribute via afs and cache with apache20:02
fungier, cache with afs, serve with apache20:02
mordredfungi: that's a very good point20:02
clarkbtristanC: fwiw you can run nix without nixos20:02
clarkbtristanC: and that may be more applicable here, except that doesn't use the host libs like mordred wants20:02
clarkb(all the software would be in nix managed space isntead)20:02
fungithough if we do it to dockerhub we could still cache with apache20:02
tristanCclarkb: yeah, that's how i'm using it, you don't even need to be root to install things20:03
mnaserthe other dockerhub advantage is well.. other users can take advantage of it20:03
mordredclarkb, tristanC: we'd also have to figure out region mirror/cachine and whatnot20:03
mnaseraka i dont need to build them too20:03
mordredmnaser: you could also take advantage of http hosted tarballs20:04
mordredin either case we'd need an untar step20:04
mnaserexcept dockerhub can sustain the traffic and our infra.. maybe not =P20:04
mordreduh20:04
mnaserbut maybe i can just borrow opendev's mirrors for my own zuul20:04
mordredI'd go the other way20:04
mnaserit doesnt run far away20:04
mnaser=P20:04
clarkbmnaser: see earlier mention about dockerhub http woes20:04
clarkbmnaser: it fails a lot20:04
mordredmnaser: you can also run your own afs client and run your own mirror20:05
mnaserthat sounds like work monty20:05
mordredour afs volumes are public20:05
mordredmnaser: :)20:05
mnaserbut that might be something that i could look into20:05
clarkbour caching has significantly improved the reliability of dockerhub by not actually requesting data from them often :)20:05
mordredwell - in any case - I think the first step is some zuul jobs that do a crap-load of pyenv install steps and a bunch of tarring20:06
clarkbthe other thing to consider is if using pyenv version on $distro is worthwhile for testing20:06
clarkbseems like python gets patched a lot of various distros so using the distro python is useful if you expect people to deploy using a distro python20:06
mordredclarkb: I think it's a better choice than distro python myself - but I've gone off the deepend20:06
clarkbmordred: right but you aren't your users20:07
mordredclarkb: well - but the issue at hand here is testing something on an os that doesn't have a particular python version20:07
clarkbif users are going to use ubuntu or rhel python then testing that is useful. If they use container images from dockerhub then testing those container images is useful20:07
mordredI don't think this is useful for versions of python that do exist in the distro20:07
clarkbmordred: right and that is only useful if we expect users to do that in the wild20:07
mordredyeah20:07
mordredmnaser: what is driving your desire for using a python that's not in a given distro?20:08
clarkbotherwise I guess we can say "we test pythonx.y" but then when peopel deploy it on rhel with all the patching there it still may not work20:08
fungii think that software which wants to test "does this work with the default python3 on ubuntu 18.04" should use the default python3 on ubuntu 18.04, and folks who want to test "does this work with upstream python3.6" should use a pyenv build of 3.6 on whatever platform20:08
mordredclarkb: to be fair - I'd be fine with that and would be happy pointing the finger ata . distro that has broken python20:08
fungithose are not the same thing, and we ought to make both possible20:08
mnasermordred: in this case, a zuul user wans to run their unit tests for py35, py36, py37 .. the ensure-python role does apt install python$version-dev .. python3.6 doesnt exist in debian buster in this case20:08
mordredfungi: ++20:08
openstackgerritMerged zuul/zuul master: Allow skipping child jobs from paused job again  https://review.opendev.org/70475820:08
fungieven if it means compiling python3.6 on ubuntu 18.04 which already provides a packaged python3.6 interpreter20:09
fungiit's a conscious decision for one or the other20:09
mordredthe unittest case is a really good example where caring about the distro version of python is less likely the target20:09
clarkbright I'm not opposed to making these possible but I think this is a subtle thing that few users end up considering20:09
clarkband it is actually important when you deploy to production20:09
mordredyou want python 3.5, 3.6 - you don't necessarily care about the distro the node is running20:09
fungi(disclaimer: i test my personal software on compiled upstream python versions independent of my system python packages)20:09
mordredfungi: yeah - you and me both20:10
mnaseryes, in this case, the user doesnt care about the distro, they want "does unit tests run on python X"20:10
mordredyah.20:10
mordredso it seems like a worthwhile thing to be able to provide people20:10
clarkbfor that use case I think I'm with tristanC actually20:10
mordredeven if there are some caveats for when people should or shouldn't use it20:10
clarkbtools like nix exist for that specific problem space20:10
fungiclarkb: it's an argument i've gone round and round with the openstack tc on when the pti got rewritten to be specific to python versions independent of distro platforms20:11
mordredclarkb: they might - but every time I've tried to use nix I've fallen down a rabbit hole of complexity20:11
mordredI like pyenv because it's so stinking simple20:11
mordredbut - that's just me20:11
clarkbnix exists to allow anyone with a linux install (and not even root) to grab software of arbitrary and possibly conflicting versions and run it20:11
clarkbmordred: the issue is pyenv doesn't solve this for ruby or perl or golang or rust20:11
fungii still just make altinstall in a git clone of cpython20:11
mnaseri'm almost tempted to make a custom dib image with a bunch of python versions and use a psecific nodeset for that20:12
fungiwith various tags checked out for the versions i want20:12
mnaserbuuuuut that seems like it solves things for me and not everyone20:12
clarkbmordred: python is a subset of the problem (and we hit it first because we doa lot of python)20:12
mordredclarkb: indeed20:12
mordredwell - I will try nix again and see if it pisses me off less this time20:12
mordredI WANT to like it20:13
mordredjust so far I have not20:13
fungiit seems like docker images are the way folks test arbitrary language ecosystem interpreter versions these days20:13
mordredyup20:13
mordred"directory /nix does not exist; creating it by running 'mkdir -m 0755 /nix && chown mordred /nix' using sudo"20:13
fungifor example, i can no longer compile python3.4 on my dev workstation due to requiring a too-old libssl20:13
mnaseryeah.. its really easy to use docker20:14
mordredthis is why I love the docker.io/library/python base images20:14
mnaseralso most ci tools let you use docker images to run jobs inside btw20:14
mnaserwhich i notice is a huge driver for a lot of poeple :\20:14
clarkbmnaser: so does zuul fwiw20:14
mnaserbut i mean in a much more native way20:14
fungiwe just don't make a big deal about it because it's just a command line either way20:14
fungibut sure, maybe we should advertise it more visibly20:15
clarkbright its the difference between "being able to do it" and "being forced to do it"20:15
fungi"we let you call `docker run ...`20:15
fungiright, a lot of recent ci systems are built to expect and *only* support using docker images20:15
mnaseryep, i'm just saying it is an easy "way out" for users .. for example, this python issue would be simplified for the use case of running containers20:16
tristanCmordred: nix can be a bit complex, but i find it quite simple for things like `nix-env -i python3.7` . then with a common `ensure-nix` role, you have a generic solution to the requirements installation problem20:16
fungiwhich of course makes the decision on whether or not to do something in docker a lot easier when you20:16
mnasers/running containers/running unittests/20:16
fungi're using one of those20:16
clarkbmnaser: right so another option is to write zuul jobs that act in that manner20:16
clarkbmnaser: then all users need to do is supply an image name and command20:16
mnaseryep20:16
clarkbwe can make that simple for users too20:16
clarkb(In the case of the k8s pod provider I think that is basically how it works too right?)20:17
mnasernot really because the nodesets/labels are defined inside nodepool20:17
clarkbah20:17
clarkbso ya would still be a job level thing then20:18
tristanCmordred: fwiw, i'm using nix in a container, here is my recipe: https://github.com/podenv/hub/blob/master/runtimes/nixos/create.dhall#L1920:18
mnasermordred, clarkb, fungi, tristanC: for what it's worth, i think at the end of the day, our users dont care how python shows up, as long as it shows up quickly (no long build times) and the right version.20:20
clarkbmnaser: right that was my earlier concern :)20:21
mnaserwe're the ones who care the most about the how, so if nix is a solution, i dont mind its extra complexity if it solves the issue20:21
clarkbmnaser: because distros publish python they call pythonX.Y that is not compatibile with pythonX.Y20:21
clarkb(that subtle thing means it can be important that you test the right pythonX.Y)20:21
mnaseri think in that case we'd have like tox-py3-ubuntu-bionic or whatever, and tox-py3720:22
fungiit's "better" these days, but i'm still scarred by red hat backporting python3.1 features into their "python2.6"20:22
mnaserand ubuntu bionic py3 means whatever it gets there20:22
fungimnaser: sounds great to me, yep20:23
openstackgerritClark Boylan proposed zuul/zuul-jobs master: Use unique loop vars to avoid conflicts  https://review.opendev.org/70533720:23
clarkbmnaser: ya I think being explicit is a good way to address that20:24
mordredclarkb, mnaser: ++20:26
*** felixedel has joined #zuul20:29
mnasernow going a few steps back20:29
*** felixedel has quit IRC20:29
mnasermordred, pabelanger, corvus, clarkb: https://review.opendev.org/#/c/705816/ resolved it for me in a depends-on change20:29
mnaserits not ideal but because command uses Popen it's hard to pass the envirnment on20:30
*** hashar has joined #zuul20:31
mordredmnaser: how does tox_executable persist everywhere it needs to?20:31
pabelangercachable: true20:31
pabelangershould put it in fact cache20:31
mordredOH20:31
mnaser^ yep20:31
mordredTIL20:31
mnaserand i have it working here, i can link in private if anyone wants to see the run20:31
mordredhonestly - I think that's a nice solution to that specific issue - especially given command and environments20:32
mnaserya the alternative was going and adding environment to a whole bunch of other calls20:32
mordredI'm a little sad we can't extend PATH sanely though20:32
mordredbut - that's life20:32
mnasersame, it seems so .. trivial20:32
clarkbis cache based on inventory name or real name?20:33
clarkbbecause that may break if based on inventory name since a lot of jobs share the inventory name20:33
clarkb(I think it is inventory name based on ansible cache behavior we have seen on bridge.o.o)20:34
clarkbor is that all contained in the per build stuff?20:34
clarkbif its per build then ++ good fix20:34
hasharhi !20:36
mnaserclarkb: i think this is all in the per build stuff / inside the bwrap in zuul-executor20:37
mnaserhttps://opendev.org/zuul/zuul/src/branch/master/zuul/executor/server.py#L352-L35420:38
corvusmnaser, mordred: wow, there's a few hundred lines of scrollback and 705816 isn't what we talked about earlier.  can you tldr why we're changing the approach?20:43
mnasercorvus: tl;dr is none of the solutions involving adding export PATH worked because command uses subprocess.Popen which reads environment from the 'parent' process20:44
corvusgot it, thx.20:44
mnaseri tried .profile, .bashrc/.shrc, .bash_profile, etc20:44
mnaserso using cacheable makes the fact survive multiple tasks/plays so it lives the entire lifetime of the job (as this stuff goes inside the bwrap of zuul-executor)20:45
mnaserand its working for me (i tested it with a depends-on)20:45
corvusmnaser: one more q: how does this compare to pabelanger's earlier suggestion of doing a test in the run role (like twine) instead of using a cacheable fact?20:45
mnasercorvus: i inspected how twine did it.  it executes a `which` and uses the output which i suspect wont be much more productive if we dont have this inside $PATH20:46
mnaserwe *could* work around by running which with an overridden $PATH, and use that output20:47
corvuskk, and i see pabelanger is on board.  705816 lgtm as is, just wanted to make sure i understood20:47
corvusmordred: ^ can you leave a vote there too?20:47
mnaseralright i'm heading off (eu tz), i'll check in buffer tomorrow if there's anything developed since then :)20:49
* mnaser &20:49
mordredcorvus: yeah - I think it's great (although I'm sad there isn't a better way to manipulate PATH more systemically)20:58
corvushuzzah, consensus!21:00
openstackgerritMerged zuul/zuul-jobs master: ensure-tox: save tox_executable fact  https://review.opendev.org/70581621:11
*** adamw has joined #zuul21:17
*** zxiiro has quit IRC21:20
fungimordred: well, there is... adjust files in /etc21:38
openstackgerritJames E. Blair proposed zuul/zuul master: Add disallowed-labels tenant option  https://review.opendev.org/70585621:48
corvusi'm thinking about how to automate deployment of gerrit's zuul, and i think that having a dedicated tenant with the option of requesting a special node with service account access to the k8s cluster may be useful, but i don't want to have to exhaustively list all the allowed nodes for the main tenant.  I'd rather just put "disallow-labels: deployment.*" on the main tenant and be done with it.  so i wrote21:50
corvusthat change ^21:50
corvustristanC: ^ you have experience with allowed-labels i think?21:51
mordredfungi: well - I'm not convinced that would do it - we keep persistent connections open ... so I'm honestly not sure which files get read when and what we'd need to do to re-read them21:53
openstackgerritMerged zuul/zuul-jobs master: upload-afs: rename to upload-afs-roots; add afs-upload-synchronize  https://review.opendev.org/70536821:56
openstackgerritJames E. Blair proposed zuul/zuul master: web: link to index.html if index_links is set  https://review.opendev.org/70558521:59
*** sgw has quit IRC22:04
*** adamw has quit IRC22:04
*** adamw has joined #zuul22:05
*** sugaar has quit IRC22:12
fungimordred: good point22:24
corvusmordred, fungi: we could probably hup the ssh connection but i don't think we want to do that on a typical job (sort of defeats the purpose of the optimization in the first place)22:27
pabelangerhttps://review.opendev.org/653130/ is something that we do in zuul.a.c, just haven't pushed more on it. (also specific to test-setup role)22:30
corvusyeah like that.  handy if you need it, but we probably don't want to do it when we don't22:30
*** sgw has joined #zuul22:34
*** hashar has quit IRC22:34
ianwcorvus: were you generally ok with making a new principal for project.tarballs and migrating per https://storyboard.openstack.org/#!/story/2006598  #38607 ?22:38
corvusianw: lets move to infra22:49
*** Goneri has quit IRC22:57
*** tosky has joined #zuul22:57
*** jamesmcarthur has joined #zuul23:00
*** jamesmcarthur has quit IRC23:20
openstackgerritJames E. Blair proposed zuul/zuul master: Add disallowed-labels tenant option  https://review.opendev.org/70585623:35
*** zxiiro has joined #zuul23:36
*** tosky has quit IRC23:55
*** igordc has quit IRC23:55

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