Monday, 2019-08-26

*** jamesmcarthur has joined #zuul00:17
*** jamesmcarthur has quit IRC01:33
*** jamesmcarthur has joined #zuul02:14
*** jamesmcarthur has quit IRC02:37
*** jamesmcarthur has joined #zuul03:04
*** jamesmcarthur has quit IRC03:33
*** bhavikdbavishi has joined #zuul03:44
*** threestrands has joined #zuul04:37
*** threestrands has quit IRC04:37
*** threestrands has joined #zuul04:37
*** raukadah is now known as chkumar|rover04:37
*** dkehn has quit IRC05:04
*** AJaeger has quit IRC05:45
*** AJaeger has joined #zuul05:48
*** aluria has joined #zuul05:56
openstackgerritJan Kubovy proposed zuul/zuul master: Fix weak dependencies to work with child_jobs  https://review.opendev.org/67793606:39
*** themroc has joined #zuul06:43
openstackgerritJan Kubovy proposed zuul/zuul master: Fix weak dependencies to work with child_jobs  https://review.opendev.org/67793606:50
openstackgerritJan Kubovy proposed zuul/zuul master: Fix weak dependencies to work with child_jobs  https://review.opendev.org/67793607:10
*** jpena|off is now known as jpena07:11
*** sshnaidm|afk is now known as sshnaidm07:16
*** threestrands has quit IRC07:24
*** hashar has joined #zuul07:45
*** jangutter has joined #zuul08:06
*** themroc has quit IRC08:15
*** themroc has joined #zuul08:16
*** bhavikdbavishi has quit IRC09:45
*** saneax has joined #zuul09:59
*** sanjayu_ has joined #zuul10:43
*** saneax has quit IRC10:43
*** badboy has joined #zuul10:55
badboyhi guys10:56
badboyquick question, is it possible to set Zuul up to be triggered by abandon event?10:56
*** badboy has quit IRC11:03
*** gtema_ has joined #zuul11:20
*** jpena is now known as jpena|lunch11:25
*** hashar has quit IRC11:38
*** badboy has joined #zuul11:44
*** gtema_ has quit IRC11:46
tristanCbadboy: it seems like all event types ( https://www.gerritcodereview.com/cmd-stream-events.html#events ) are available for trigger, e.g. you could try change-abandoned11:51
badboytristanC: thank you, will try that!11:54
*** rlandy has joined #zuul11:59
*** rlandy is now known as rlandy|ruck11:59
*** badboy has quit IRC12:01
*** weshay_MOD is now known as weshay12:07
*** jpena|lunch is now known as jpena12:30
*** mgoddard has quit IRC12:47
*** jamesmcarthur has joined #zuul12:47
*** mgoddard has joined #zuul12:47
fungithat ought to work. we run (or at least used to, i haven't checked) jobs on change-restored events which are the inverse of change-abandoned12:53
fungigerrit considers abandoned changes to be closed though, so if you're trying to report to one it will only allow commenting and not voting12:54
pabelangermorning13:31
pabelangerwe are seeing a newish error with swift upload logs13:31
pabelangerhttp://paste.openstack.org/raw/764544/13:31
pabelangermodule 'keystoneauth1.exceptions.http has no attribute 'HTTPError'13:32
pabelangerunsure if related to vexxhost or python lib13:32
pabelangermnaser:^ incase you want to look13:32
mnaserseems like a 504 from our side that made that happen13:33
mnaserwe saw some issues earlier, mainly because of the sheer amount of objects being uploaded all at once (see discussion on zuul-discuss)13:33
mnasersomething like ~60-65% of all objects uploaded in a day (2.5m in opendev case) are ara-report files13:33
pabelangerokay, so though is opendev might be impacting swift?13:34
fungiwe experienced similar issues with ara's raw files format initially as well, basically we ran out of inodes on the filesystem where we were trying to store them13:36
pabelangerthat might explain why we've seen an increase in POST_FAILURES for zuul.a.c recently13:36
fungias pointed out on the ml thread, it's not actually the identical static files (icons, scripts, stylesheets) which account for the bulk of those files, it's the data. think of it as a database format where every row for every table is in its own file13:37
*** jeliu_ has joined #zuul13:42
AJaegerpabelanger: I saw a patch merged for this, let me find it...13:43
AJaegerpabelanger: I4afe8c9fc8239a31d62a2a1d09794211b506647213:43
*** jamesmcarthur has quit IRC13:44
*** hashar has joined #zuul13:45
*** jamesmcarthur has joined #zuul13:47
pabelangerodd, we should be running this now13:48
AJaegerpabelanger: so, is running it the problem? Meaning: Do you have another keystoneauth version running then we do?13:49
openstackgerritJens Harbott (frickler) proposed zuul/zuul-jobs master: Fix handling of dangling symlink on manifest generation  https://review.opendev.org/67855213:52
*** jamesmcarthur has quit IRC13:52
pabelangerAJaeger: let me check which version I have installed13:52
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Check path for existance in generate_manisfest.py  https://review.opendev.org/67855313:52
pabelangerkeystoneauth1==3.16.013:53
AJaegerpabelanger: I don't know what OpenDev uses...13:55
pabelangerokay, thanks. It sounds like, we might be exposing this issue, only if upload to vexxhost times out13:55
AJaeger3.17 just came out - a pull shows both 3.16 and 3.1713:55
pabelangerwhich, seems to happen more, now that opendev is also uploading there13:56
pabelangerdue to volume of ara bits13:56
*** mgoddard has quit IRC13:56
openstackgerritJens Harbott (frickler) proposed zuul/zuul-jobs master: Fix handling of dangling symlink on manifest generation  https://review.opendev.org/67855213:57
*** mgoddard has joined #zuul13:58
AJaegerzuul-maint, could you review this, please? ^13:59
fungion ze01, pip list reports keystoneauth1 (3.17.0)14:00
fungihowever, the executor daemon on it last restarted 17 days ago14:00
fungiso if it's importing keystoneauth at start, then it hasn't been using anything newer than that date14:01
AJaegerand the diff between 3.16 and 3.17 shows nothing related to this AFAIU14:02
openstackgerritMerged zuul/zuul-jobs master: Fix handling of dangling symlink on manifest generation  https://review.opendev.org/67855214:14
fungiwell, 3.16 is also newer than the last executor restart14:15
fungii have a feeling it's running on 3.15.0 comparing release dates for keystoneauth1 with process start times14:16
mordredfungi, AJaeger: keystoneauth1.exceptions.http.HttpError is the correct exception name14:17
clarkbfungi: because ansible is the result of new forks it should use current sdk install14:17
mordredso I think if we're trying to catch HTTPError that's a bug14:17
mordredthere is also an HTTPClientError14:18
fungiclarkb: ahh, this is being called by ansible, not imported by zuul? in that case i concur, it'll be 3.17.014:18
fungier, well, possibly not14:19
fungithat's the system context version14:19
openstackgerritMohammed Naser proposed zuul/zuul-jobs master: Add tests for manifest generation for missing files  https://review.opendev.org/67857314:19
fungiansible will use the one in the corresponding venv for its ansible version, right?14:19
mnaser^ this is not really that clean..14:19
mnaseri think its ok enough, but if someone wants to polish it, please feel free to, i gotta dig into other things :<14:20
*** jamesmcarthur has joined #zuul14:21
*** michael-beaver has joined #zuul14:21
openstackgerritMonty Taylor proposed zuul/zuul-jobs master: Update keystoneauth exception name  https://review.opendev.org/67857514:21
mordredfungi, clarkb, corvus ^^14:21
fungiyeah, these ansible venvs have keystoneauth1 versions contemporary to their initial creation, so 3.13.1 for all the ansible venvs except the ansible 2.8 venv which has 3.14.014:21
corvusthat's untestable code that we just added, so it's not surprising it didn't work the first time out14:24
*** jamesmcarthur has quit IRC14:28
corvusmnaser: test looks good -- left a nit and a question about which behavior we want14:29
openstackgerritMerged zuul/zuul-jobs master: Update keystoneauth exception name  https://review.opendev.org/67857514:38
*** gtema_ has joined #zuul14:41
*** gtema_ has quit IRC14:44
*** sanjayu_ has quit IRC15:11
clarkbcorvus: I wrote a bunch of zuul changes on friday. With exception of this first one https://review.opendev.org/678049 the others https://review.opendev.org/#/c/678286/ https://review.opendev.org/#/c/678312/ should be straightforward docs updates if you have a moment15:14
clarkbcorvus: the docs updates were things that noorul ran into that we helped noorul work through so are real issues people are having15:14
corvusfungi, clarkb: mordred and i are talking to the folks working on the gerrit checks plugin tomorrow about closing some of the gaps so zuul could maybe use it15:15
corvusclarkb: thanks i'll take a look15:16
fungias was https://review.opendev.org/678243 but looks like i have a docs build error15:18
fungiwill update in a moment15:18
*** jamesmcarthur has joined #zuul15:18
openstackgerritJeff Liu proposed zuul/zuul-operator master: Add PerconaXDB Cluster to Zuul-Operator  https://review.opendev.org/67731515:19
corvusfungi: a new user wanted to use the logging config?15:20
*** dkehn has joined #zuul15:20
fungicorvus: yes, to turn on debugging15:20
corvusi thought that was a flag?15:20
*** jamesmcarthur has quit IRC15:22
*** jamesmcarthur has joined #zuul15:22
fungihrm, if so i didn't find it when searching the zuul docs15:22
corvushrm, apparently that only happens if it runs in the foreground15:22
funginor did i find anything at all related to configuring service logging15:23
corvushonestly, i'd rather we finally fix that rather than encourage folks to add logging configs15:23
fungiahh, okay15:23
fungiso proxy the logging module configuration via one of the existing service config files?15:23
corvushttps://review.opendev.org/63564915:24
corvusfungi: ^15:24
fungioh, neat15:24
fungiso when zuul is containerized, users don't expect it to create log files?15:25
fungialso, for the record, noorul was following the zfs instructions not the quickstart, since it was for something related to the bitbucket driver15:26
corvusfungi: that is true for many users of containers15:26
fungiso i don't know if the container stuff is relevant to the zfs instructions15:26
fungibut maybe manually starting the service with logging to foreground still would be15:26
corvusfungi: yeah, but that means that noorul would merely have to add "-d" to the invocation rather than loarn the python logging file format15:26
corvusfungi: that change severs the two15:26
corvusfungi: all 4 cases in the matrix are supported :)15:27
fungilet me figure out where i left my bottle of red pills15:28
corvushrm15:28
corvuswait, maybe that only handles three?15:28
clarkbworth noting that journld also works like docker in this case15:29
corvusfungi, clarkb, tobiash: ^ check my comment on that.  it's late and i'm making small mistakes now15:29
clarkbthey both grab all the stdout/stderr and record them15:29
* corvus eods15:31
fungithanks corvus! enjoy the cool se evening weather15:31
clarkbcorvus: I think you generally don't want to write to stdout in the daemon case because daemonization closes teh fd's15:32
openstackgerritMonty Taylor proposed zuul/zuul master: Apply changes to command module from ansible 2.6  https://review.opendev.org/67859415:33
fungiyes, closing inherited fds is necessary to be able to fully disassociate from the calling process15:34
mordredpabelanger: ^^ you might want to look at that one15:34
fungiobviously for container and systemd use cases you may choose not to daemonize15:34
mordredpabelanger: flaper87 noticed that we're missing a new parameter added in ansible 2.615:34
fungioh?15:35
clarkbfungi: ya in those two cases you are not supposed to daemonize and then if you write to stdout they collect those as logs15:35
* flaper87 +1'd15:35
fungiahh, 67859415:35
*** noorul has joined #zuul15:36
clarkbmordred: does that need to be version specific so that < 2.6 don't get weird errors?15:37
clarkboh I guess we convert argv to args so that may actually just backport the support to 2.5. May still cause problems if people test their 2.5 ansible with zuul and it works then deploy and it fails15:38
*** mattw4 has joined #zuul15:38
*** mattw4 has quit IRC15:39
*** mattw4 has joined #zuul15:39
*** mattw4 has quit IRC15:42
*** noorul has quit IRC15:42
*** mattw4 has joined #zuul15:42
openstackgerritMerged zuul/nodepool master: openstack: handle safely invalid network name  https://review.opendev.org/67750115:47
*** mattw4 has quit IRC15:52
*** stewie925 has joined #zuul15:58
*** noorul has joined #zuul16:00
*** jpena is now known as jpena|off16:02
*** noorul has quit IRC16:07
openstackgerritJeff Liu proposed zuul/zuul-operator master: Add PerconaXDB Cluster to Zuul-Operator  https://review.opendev.org/67731516:07
*** noorul has joined #zuul16:11
noorulhi16:14
noorulDoes merger care about all the branches in the repo?16:14
openstackgerritMerged zuul/zuul master: Document js tool installation in scratch doc  https://review.opendev.org/67828616:14
funginoorul: yes, because a change could be proposed for any branch of a repository16:15
fungiit will only calculate merges for the target branches of changes in the set it's considering, but i believe it prepares all branches from the configured remote16:16
fungilocal copies of all branches that is16:16
clarkbyes it does that to load configs for all branches16:16
fungiahh, right, that too, for the cat jobs16:17
noorulI see this exception http://paste.openstack.org/show/764710/ in the log. But it is not marking the build as MERGE_FAILURE16:20
fungiif things were working correctly, the scheduler should then report that failure16:23
fungihave you checked the scheduler log around that timestamp?16:23
noorulIt says merge failure, http://paste.openstack.org/show/764712/16:28
fungidoes the change ahead of it which it's conflicting with still have builds in progress?16:31
noorulYes16:31
fungibecause zuul won't report until it decides for sure it won't be able to merge. if the change ahead of it fails a build and gets kicked out of the queue, then this change will no longer conflict and will be tested normally16:31
noorulfungi: I see16:32
fungiif the change ahead of it (with which it's conflicting) succeeds all its builds and merges, then this change will be kicked out because it can no longer be merged to the branch, and then the scheduler should report a merge failure on it16:32
noorulfungi: Is the scheduler responsible for updating build status as MERGE_FAILURE?16:33
noorulfungi: I see that in this scenario using Gerrit, the build status is set as MERGE_FAILURE16:33
noorulbut not in the case of stash. I think that stash driver has nothing to do here.16:34
fungiyes, it will happen as part of the buildset reporting process. it will request an updated merge from the mergers if the change ahead of it is ejected16:34
openstackgerritMerged zuul/zuul master: Set git user config in from scratch document  https://review.opendev.org/67831216:34
fungiotherwise it will report the merge failure16:34
*** igordc has joined #zuul16:37
*** jamesmcarthur has quit IRC16:40
corvusclarkb: my intent wasn't to write to stdout in the debug case, but rather to change the debug level of the default file output handler which is configured if no logger config is specified.  i only intended to suggest that the setDebug() method be called if the debug arg is present regardless of which output handler is used16:48
clarkbgotcha16:48
corvusi don't know what i actually wrote on the review because i'm tired, but that's what i meant :)16:49
*** hashar has quit IRC16:49
noorulcorvus, clarkb: Is it possible for you to take a look at stash PR to figure out why I am not able to get the merge failure from Zuul?16:53
*** hashar has joined #zuul16:57
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Fix handling of dangling symlink  https://review.opendev.org/67861916:58
openstackgerritMerged zuul/zuul master: bindep: add unzip and bzip2 for rpm platform  https://review.opendev.org/67843316:58
*** bhavikdbavishi has joined #zuul17:01
*** jamesmcarthur has joined #zuul17:04
openstackgerritAndreas Jaeger proposed zuul/zuul-jobs master: Add tests for manifest generation for missing files  https://review.opendev.org/67857317:05
noorulSometimes both the PR tests run parallely17:09
noorulhttps://imgur.com/a/0KBjOXA17:09
mordredclarkb: re: the patch for adding the argv to command module  - https://review.opendev.org/#/c/650431/7 pabelanger has a patch up to remove 2.5 support anyway (since it's EOL)17:09
mordredclarkb: so I was kind of not worrying about it too much17:09
clarkbya I'm on the side of the fence that just because ansible eols aggressively doesn't mean we have to. There is typically little reason to upgrade ansible as a user and comes with quite a bit of headache to do so17:11
clarkbI think if ansible was backward compatible and upgrades just worked I'd care less17:11
clarkbI expect zuul users don't want to do large amounts of job churn frequently either17:12
mordredyeah17:14
mordredclarkb: we could also copy the current command module to the 2.5 directory replacing the symlink17:15
mordredwhich shouldn't be too hard17:15
*** hashar has quit IRC17:18
openstackgerritMonty Taylor proposed zuul/zuul master: Apply changes to command module from ansible 2.6  https://review.opendev.org/67859417:18
mordredclarkb: there's doing that17:18
*** armstrongs has joined #zuul17:19
*** mattw4 has joined #zuul17:19
*** noorul has quit IRC17:20
*** chkumar|rover is now known as raukadah17:21
mugsieShrews: re - https://review.opendev.org/#/c/554432/ - that is working for me locally :/17:27
mugsieand the unit test seems to be loading and running fine as well17:27
Shrewsmugsie: I’m surprised since I didn’t see a config definition for ‘driver’, but I only did a quick pass before an appointment17:28
armstrongsQuick question I noticed when I run a shell command from a vm in nodepool it streams the stdout but when you run it on a container using the kubernetes driver it doesn't stream the stdout and you have to view it in the output in the json or ara report. Is there any way to get the stdout to behave the same on cotainers as vms?17:28
*** jamesmcarthur has quit IRC17:29
mugsieI basically copied AWS's config layout, but I can update to add in the extra stuff you pointed out tomorrow at some point17:29
clarkbarmstrongs: the way console streaming works we run a little daemon on the test node to collect and stream taht data. As is I don't think people want to pollute containers with that by default, but that should all just be a base job config thing iirc17:32
clarkbarmstrongs: there is long term ongoing work to have ansible do what zuul does for streaming out of the box and once that happens it shouldn't matter what platform is used17:32
armstrongsclarkb: could you point me towards what I need to put in the base job if you have an example. Also thanks for the info 😊17:35
clarkbarmstrongs: zuul/zuul-jobs/roles/start-zuul-console17:36
armstrongsAh awesome thanks again17:37
clarkbwe have that in our base job pre run playbook17:37
fungiarmstrongs: https://opendev.org/opendev/base-jobs/src/branch/master/playbooks/base/pre.yaml#L1817:37
armstrongsCool will give it a go17:38
tristanCarmstrongs: zuul-console may not work in kubernetes as it requires a tcp access to the pod netns from the zuul-executor. iirc kubectl connection doesn't have access to the pod netns and rely on the exec api of kubernetes17:40
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Fix handling of dangling symlink  https://review.opendev.org/67861917:45
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Add tests for manifest generation for missing files  https://review.opendev.org/67857317:46
*** jamesmcarthur has joined #zuul17:49
*** jamesmcarthur has quit IRC17:58
clarkbany other zuulian want to review https://review.opendev.org/#/c/676717/ I think that will improve memory overhead for running zuul jobs which will help opendev18:02
*** armstrongs has quit IRC18:08
*** jamesmcarthur has joined #zuul18:12
*** bhavikdbavishi has quit IRC18:32
*** noorul has joined #zuul18:40
SpamapSclarkb:I wonder if we could make the zuul_console daemon a sidecar that is automatically added to every pod.18:51
*** noorul has quit IRC18:52
SpamapSWouldn't be too hard.. emptyDir shares the socket, envvar added to the main pod with the ID.18:52
clarkbor we can push ansible to add support in tree18:53
clarkbwhich I believe they want anyway18:53
clarkbthen it will work for ansible always hopefully18:53
SpamapStristanC: that TCP access that the executor needs doesn't need anything other than a port to contact. Why would it need access in the netns?18:53
clarkbI'll add this ti my list of things to bring up at ansiblefest dev day18:54
SpamapSJust grab the IP of the container and the sidecar should have the usual port defined.18:54
clarkbthe other item is the exec per task18:54
SpamapSclarkb: That would be nice. :)18:54
*** noorul has joined #zuul18:57
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Fix handling of dangling symlink  https://review.opendev.org/67861919:01
*** noorul has quit IRC19:01
SpamapSUgh.. https://opendev.org/zuul/nodepool/commit/da2701e0b19cbe75cdbd79cfeafaf7c643546fc7 broke us btw. I understand, using the Dockerfile in the repo may not be something that is part of releases. Just, FYI.. that broke us. We're having to redo a bunch of stuff to be able to deploy Nodepool 3.8.0. :-P19:04
clarkbSpamapS: it broke because the uid you had been using wasn't 10001?19:06
SpamapSclarkb:correct.19:06
SpamapSPermissions problems.. have to rework our Kubernetes pod specs19:06
clarkbI think we saw that as forward compatible because you can specify whatever you want it to be, but ya if you don't specify you get the default19:07
*** noorul has joined #zuul19:07
SpamapSnot a huge deal. I just want to raise that this was yet another thing that changed under us. I am not upset, or anything. I just .. it happens a lot.. I feel like we're doing the wrong thing or something.19:08
*** armstrongs has joined #zuul19:09
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Add tests for manifest generation for missing files  https://review.opendev.org/67857319:11
*** noorul has quit IRC19:12
tristanCSpamapS: i meant access to the tcp port of the zuul-console daemon, which is not exposed by default iiuc19:14
SpamapStristanC:right but we can expose it in the k8s driver by running it as a sidecar and sharing the socket in. That way your pod image is clean, you don't even need python. :)19:14
SpamapSwell.. n/m.. you do.. because ansible19:15
tristanCSpamapS: i'm not sure how that will work, the kubectl connection doesn't have ip an address, thus the zuul_stream wouldn't be able to contact the right ingress entrypoint. and even so, how would you map the default port to the zuul-console netns?19:17
*** noorul has joined #zuul19:17
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Fix handling of dangling symlink  https://review.opendev.org/67861919:19
tristanCanother solution to get the output in job-output.txt (but not live) would be to tweak zuul_stream and make it dump the result object when the connection is kubectl19:22
*** noorul has quit IRC19:22
SpamapStristanC: We could make a nodeport for it.19:27
*** noorul has joined #zuul19:28
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Fix handling of dangling symlink  https://review.opendev.org/67861919:28
ShrewsSpamapS: I, for one, wasn't really considering the nodepool Dockerfile a "production" piece of code, rather something that we used for our testing. While you obviously were. Perhaps that's the something that isn't quite right there and we need some more better testing around that.19:29
ShrewsIn which case, this feels more like a "packaging testing" issue and feels out of place within nodepool repo itself.19:30
ShrewsBut I'm often told that I'm a weird person19:30
clarkbya I think some of the pain there is SpamapS is running zuul and nodepool completely disjoint from many of us. github not gerrit, aws/k8s with nodepool, kubernetes to host the services, etc. Different groups of us use pieces of that collection but their isn't full overlap iirc19:31
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Add tests for manifest generation for missing files  https://review.opendev.org/67857319:31
clarkbI think we can cover a lot of those gaps with better testing19:31
*** noorul has quit IRC19:32
tristanCSpamapS: isn't nodeport unique per node? it seems like only the first job will be able to spawn the zuul-console service19:34
tristanCSpamapS: also, setting nodeport requires admin privilege on okd19:34
*** armstrongs has quit IRC19:35
*** noorul has joined #zuul19:36
ShrewsI'd love to solve the us-breaking-SpamapS issues. Some areas we can improve with additional testing (like the Dockerfile thing), others, like the AWS driver, I'm not sure we'd ever be able to do anything about.19:37
clarkbShrews: this is a bit of hand waving but openstack does/did have ec2 api layer19:40
clarkbI have no idea how good a stand in for aws that is, but is a potential opetion19:40
fungiseems it's still semi-active: https://opendev.org/openstack/ec2-api/commits/branch/master19:42
Shrewsyeah, i don't know anything about that either19:42
*** noorul has quit IRC19:43
clarkbI think logan- said they use it in some capacity, might have insight on applicability to this use case19:43
*** stewie925 has quit IRC19:44
fungihttps://review.opendev.org/650397 was the last commit of substance to merge and was related to testing, but was reviewed fairly quickly19:45
fungi~4 months ago19:45
*** hashar has joined #zuul19:46
fungiand it's still considered an official team in openstack: https://governance.openstack.org/tc/reference/projects/ec2-api.html19:46
Shrewsi would expect issues with a driver test using a translation API rather that actual API most users would be using19:47
Shrewsbut also... something is better than nothing sometimes19:47
clarkbShrews: ya that could happen. It might however catch bugs in improper use of the api?19:47
*** noorul has joined #zuul19:48
clarkbprobably won't know how useful it is until we try it and I'm not sure if the investment makes that worthwhile19:48
ShrewsI think users of that driver (with a much more vested interest in it) would have to do the investing. But I think that's only 1 person, atm19:49
*** noorul has quit IRC19:52
*** jamesmcarthur has quit IRC19:53
SpamapSclarkb: I really hope to move to the kubernetes operator once it exists. That should help me align better.19:53
SpamapSSign me up as a beta tester.19:53
SpamapStristanC: You can't make a nodeport in a namespace you have control over?19:54
SpamapStristanC: we may be talking about doing this on a different level. I'm suggesting that we make a way for Zuul to tell Nodepool that it wants these things when it asks for a pod.19:54
SpamapSlike, in the nodepool request, when it asks for a label that is k8s based, it should be able to also tack on a little thing that tells it to run the sidecar and create a nodeport.19:55
SpamapSSo, not talking about doing it from the ansible. Do it in nodepool and zuul.19:56
*** mattw4 has quit IRC19:58
openstackgerritMerged zuul/zuul-jobs master: Fix handling of dangling symlink  https://review.opendev.org/67861919:59
openstackgerritJeff Liu proposed zuul/zuul-operator master: Add PerconaXDB Cluster to Zuul-Operator  https://review.opendev.org/67731520:00
tristanCSpamapS: yes I understand it needs to be done by nodepool, but multiple zuul build can run on one kubernetes host which may have only one public ip (nodeip)20:02
openstackgerritDmitriy Rabotyagov (noonedeadpunk) proposed zuul/zuul-jobs master: Add tests for manifest generation for missing files  https://review.opendev.org/67857320:02
tristanCSpamapS: thus the first build may get the correct nodeport, and we can somehow tell zuul that the console of the kubectl connection is the kubernetes nodeip, but that will only work for the first build20:03
tristanCSpamapS: okd doesn't let regular user use nodeport as they should be using regular ingress route, which are either based on http vhost or dynamic port mapping, which isn't supported by the zuul_stream module.20:04
SpamapStristanC:nodeports are unique ports. So you'd get back the node IP and a random port for zuul to use as the console port.20:05
SpamapSingresses are for http.. :-P20:05
SpamapSWe can make zuul_stream read an environment variable or something.20:05
SpamapSAnyway, point is, I think it can be done just with k8s primitives and some plumbing between zuul and nodepool. But, I defer to the implementors. I will not be able to work on this myself. :_/20:06
*** hashar has quit IRC20:08
tristanCSpamapS: oh right, if we can make the zuul_stream callback and the zuul_console use an arbritary port, that would work20:11
tristanCbut i've not been able to change the zuul-console listening port without changing the ansible role vars (the python module that spawn the daemon doesn't have access to the environment or site vars)20:12
clarkbit can scan /proc for that info20:14
clarkbwe did that atone point to find the pid iirc20:14
clarkbthough maybe that means we cant find the pid to find tge port20:15
SpamapSYeah not claiming it's easy.. like clarkb said.. Ansible needs to put this in the core so we can simplify it.20:15
SpamapSI bet if it's done right we can drop the zuul_console daemon and just multiplex the output from the python modules that get uploaded.20:16
* SpamapS kind of wishes he could just work on that for 3 months.20:16
*** mattw4 has joined #zuul20:17
*** mattw4 has quit IRC20:28
*** mattw4 has joined #zuul20:39
*** dolpher has joined #zuul21:01
dolpherHow the user zuul is created in nodepool image? is there a dib element for doing that?21:03
clarkbdolpher: https://opendev.org/openstack/project-config/src/branch/master/nodepool/elements/zuul-worker that is the element we use21:07
flaper87Is this a valid job definition? http://paste.openstack.org/show/765019/ (specifically line #5 where I'm using an ansible variable that is defined in a previous ansible play using zuul_return)21:07
flaper87the zuul_return is called in the `run` playbook. I should probably try running this task in the `pre-run` and then consuming the returned value from the `run` playbook21:13
clarkbI don't think there is shared values between the phases21:14
clarkbzuul_return will share the info between jobs though21:14
tristanCflaper87: it depends, zuul_returns are passed between buildset dependent jobs21:14
SpamapSI've used a file on disk to pass info between pre/normal/post21:15
flaper87oh, mmh, then that's not what I need :/21:15
dolpherclarkb: thanks, looks like nodepool-base depends on it, so can I use the nodepoll-base element in a 3rd party CI env? or any other suggested/required elements to include?21:16
flaper87I need to generate an auth token from a trusted playbook and pass the token to the job so that the job can use it to authenticate to a service21:16
clarkbdolpher: I think those elements are largely going to be geared towards opendev's images. In general you shouldn't need much more than an adduser and setting the ssh key (which you could even use something like cloud init to set at runtime too)21:18
clarkbif those elements work for you then great, they tend not to change much, with dns fiddling being the most likely changes based on history iirc21:19
clarkbflaper87: I believe that will make your auth token exposable21:19
dolpherclarkb: got it, thanks!21:19
clarkbflaper87: if you need to keep the token secure I think that the consumer of the token will also need to be in a trusted repo21:20
clarkbflaper87: if you don't need to keep the token secure then you can likely do what spamaps does and write to disk and load from there on subsequent playbooks21:25
*** igordc has quit IRC21:26
flaper87clarkb: SpamapS gotcha, thanks! I'll play with that although I think the answer is that I do have to keep this secure.21:26
*** mattw4 has quit IRC21:28
*** jeliu_ has quit IRC21:28
clarkbflaper87: the problem with what you are planning of handing a secure set of data to untrusted playbook is that I could push a change that is tested pre review that cat's that data to the console21:29
clarkb(or whatever method I want to sneak it off of the test node)21:29
clarkbif hwoever it is fully in a trusted repo you can only do that post review21:29
clarkbthe idea being it won't get approved if it does something bad like that21:29
SpamapSflaper87: The thing you said, generating a token, is exactly what I do. The pre has AWS access keys to generate an STS token. I write the token, which has a timeout of exactly the same as the job timeout, into ~/.aws/credentials.21:31
SpamapSActually I've been meaning to open source that role21:32
SpamapShttp://paste.openstack.org/show/765021/ <-- pretty simple actually21:34
*** mattw4 has joined #zuul21:36
SpamapSclarkb: Oh this reminds me! I've been thinking a realy cool enhancement to zuul_stream would be that you could feed it a list of hashes of secrets from the trusted phase, and it would XXXXX any strings that match those hashes in the output stream.21:43
SpamapSThat wouldn't prevent malicious compromise (they can just encrypt it to a key), but it would prevent accidentally printing stuff.21:43
fungii guess it also would be tricky to find what substrings to check against the hashes21:51
fungisince for any output stream of nontrivial length the possible substrings (even below a reasonably small max string length) would be nigh innumerable21:52
clarkbyou'd have to tokenize based on whitespace or some other rule? otherwise ya arbitrary length strings21:54
SpamapSYou could do some interesting optimization with run length.22:02
SpamapSlike if you know hash=abc123 and len=47, you can stop checking when there are only 46 chars left. You only have to check the output of things from the console.. it's not that much data.22:03
SpamapSadd in character classing (class==binary is check every byte, class==word means check non-whitespace, etc)22:04
SpamapSAnyway, just a fun thought.22:04
clarkbdoes specifying hash lenght compromise the one way ness of the hash ? (I think for short values it probably does?)22:04
* SpamapS goes back to using the hell out of zuul as it is. ;)22:04
clarkbso many rainbow tables22:05
SpamapSclarkb:yeah, for short values RL would be a big help for rainbow tables and such.22:05
SpamapSUse a fast hash algorithm with a strong one to back it up, like rsync uses crc32 before others, and you can just check every damn byte with minimal overhead.22:06
SpamapSbut.. yeah.. fantasyland is over22:06
funginot exposing the raw length of secrets is one of the reasons for using oaep in our encoding choice22:21
fungiso we only leak a loosely quantized length22:21
fungiknowing exactly (or even almost) how long a secret is can mean a significant reduction in work factor for brute-force guessing22:22
fungiand even moreso for educated guessing22:23
SpamapSIndeed. I think just a fast, collission-prone-but-secure hash, followed by a very slow one like sha512, would allow efficient filtering w/o the length.22:28
SpamapSnot sure what that faster hash is.. would be fun to play with a few and find the right balance.22:28
SpamapSHm, but if something wrapped a secret, you'd have to accept that as a potential oops-around.22:29
SpamapS(The whole idea in my head assumes you'd print the secret on a single line)22:29
SpamapSn/m on this22:29
SpamapSfun mental exercise22:29
* SpamapS withdraws22:29
fungioh, and also, pkcs1 is a kdf, not just a raw hash, for a reason. publishing a plain hash of the secret also significantly speeds attempts at guessing the value because a simple hash is much faster to compute than applying a typical kdf22:36
fungithere's a massive market for special-purpose sha256 or sha512 hash generating processors22:37
fungithose hashes aren't designed to be slow or computationally intensive to calculate22:37
SpamapSI wonder if instead of focusing on hashing, the right thing is focusing on getting the secret into a secure place that can filter the output in real time.22:37
SpamapSBut.. this is again just an oops-preventor.. so. not worth spending much time. :)22:38
fungii like where you're going with the idea22:38
fungibut yes, the execution is going to be fraught with pitfalls, risking compromising the strength of the mechanisms protecting secrets it's attempting to catch leaks of22:39
fungithough i believe we do have some tests in zuul which encrypt a known secret, use it in some jobs, and then search the resulting logs for a leak of that secret22:40
fungigranted that sort of testing can miss unlikely branches in execution or similar corner cases, so it also not a panacea22:41
SpamapSfungi: Oh hm, that technique would be an interesting way to test if a change is doing something naughty with a secret....22:41
SpamapSfungi: you could conceivably run the job w/ a known secret in the secret value, and do the same check.22:42
fungiright22:42
SpamapSExcept it would probably fail when using said secret, which is usually the point of secrets.22:42
SpamapS(like, I mean, a real job)22:42
fungiyeah, would have to be a fairly abstract job without external interactions i suppose22:43
SpamapSYeah that's not realy the thing I want to prevent. I want to prevent somebody from leaving their debug stuff in. ;)22:43
SpamapSAll we have in defense of that now is code review.22:43
fungiand you would likely need to mock up possible failure scenarios in it, since the most common problem is "i tried to log into this remote service and failed, here are the credentials i used..."22:43
SpamapSYeah, no, the only thing I can think of is that you run a filter in front of the logs that knows the exact strings it's not supposed to print.22:44
SpamapSThere's a company out there, Netskope, that does this with things like Google Docs and Dropbox. You securely feed them all of your secrets, with 0 context, and they will scan all of your google docs and dropbox files for those specific strings.22:45
fungithis is verging into the wonderful world of proxies (you love that planet, i know). i'm familiar with an entire industry built around scanning and blocking egress traffic which includes known trigger words/phrases22:45
SpamapSBut you have to trust them to have those secrets.22:45
fungiyeah, the big enterprise solutions involve transparent proxies at your border which you trust (because you audited the source code in them yourself? doubtful, but anyway...)22:46
fungibasically application-layer gateways serving the "data loss prevention" concerned industrial sectors22:48
fungiyou have to rub them down with snakeoil every morning22:49
*** mattw4 has quit IRC23:02
clarkbianw when your day starts thoughts on the latest patchset for https://review.opendev.org/#/c/678049/ wouldbe great23:24

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