Monday, 2020-03-23

*** jamesmcarthur has quit IRC00:02
*** jamesmcarthur has joined #zuul00:14
*** jamesmcarthur has quit IRC00:56
*** jamesmcarthur has joined #zuul01:24
*** jamesmcarthur has quit IRC01:29
*** armstrongs has quit IRC02:35
*** jamesmcarthur has joined #zuul02:46
*** jamesmcarthur has quit IRC02:53
*** swest has quit IRC02:59
*** jamesmcarthur has joined #zuul03:01
*** swest has joined #zuul03:13
*** jamesmcarthur has quit IRC03:21
*** jamesmcarthur has joined #zuul03:22
*** jamesmcarthur has quit IRC03:29
*** bhavikdbavishi has joined #zuul03:44
*** jamesmcarthur has joined #zuul04:04
*** jamesmcarthur has quit IRC04:14
*** jamesmcarthur has joined #zuul04:15
*** evrardjp has quit IRC05:36
*** evrardjp has joined #zuul05:36
*** bhavikdbavishi has quit IRC05:41
*** jamesmcarthur has quit IRC05:43
*** bhavikdbavishi has joined #zuul06:22
*** saneax has joined #zuul06:39
*** bhavikdbavishi has quit IRC07:25
*** dpawlik has joined #zuul07:44
*** jcapitao has joined #zuul08:08
*** avass has joined #zuul08:22
*** tosky has joined #zuul08:32
*** arxcruz|off is now known as arxcruz|rover08:37
*** jpena|off is now known as jpena08:52
*** saneax has quit IRC09:15
*** saneax has joined #zuul09:32
*** bhavikdbavishi has joined #zuul09:36
*** dpawlik has quit IRC10:11
*** dpawlik has joined #zuul10:13
*** avass has quit IRC10:42
*** sshnaidm is now known as sshnaidm|pto10:53
*** harrymichal has joined #zuul11:05
*** harrymichal has quit IRC11:09
*** harrymichal has joined #zuul11:09
*** harrymichal has quit IRC11:14
*** rlandy has joined #zuul11:44
*** evrardjp has quit IRC11:44
*** evrardjp has joined #zuul11:50
*** rfolco has joined #zuul11:58
*** jcapitao is now known as jcapitao_lunch12:03
*** evrardjp has quit IRC12:27
*** avass has joined #zuul12:37
*** evrardjp has joined #zuul12:38
*** jpena is now known as jpena|lunch12:56
*** jcapitao_lunch is now known as jcapitao13:23
*** bhavikdbavishi has quit IRC13:39
* AJaeger updated zuul-website for OpenDev changes, please review https://review.opendev.org/71426113:41
*** zxiiro has joined #zuul13:42
*** sgw has joined #zuul13:42
openstackgerritMerged x/pbrx master: Fix tox-py35 job  https://review.opendev.org/70090113:54
*** jpena|lunch is now known as jpena13:59
*** avass has quit IRC14:41
*** evrardjp has quit IRC15:07
*** evrardjp has joined #zuul15:11
*** bhavikdbavishi has joined #zuul15:22
*** jamesmcarthur has joined #zuul15:43
tristanCcorvus: the stack at https://review.opendev.org/714165 adds a convenient integration test. That change belows already have >= 2+2 , would you mind if I +Workflow those changes?15:45
tristanCThe changes below*15:45
*** panda is now known as panda|off15:46
tristanCThe zuul-operator doesn't setup nodepool yet, i was planning on adding the launcher service by extending the integration test to use a container nodeset. Just waiting for feedback on the open changes.15:49
corvustristanC: yes i think it's fine to +w those, i'll look at the rest asap15:49
Shrewscorvus: is the nodepool zk+tls change ready for review now?15:51
corvusShrews: i believe so15:52
corvusShrews: also zuul15:52
Shrewsk. will look at them both15:52
corvusShrews: (i think at the end of my stack on zuul there's complete end-to-end usage with quick-start)15:52
Shrews*nod*15:52
*** y2kenny has joined #zuul15:57
y2kennyHi, I have got more question for you experts.  For the executor and scheduler images on DockerHub, how are they generated and what version are they?  It seems to be updated very frequently but there's no tag associated with them.16:00
clarkby2kenny: they are generated by zuul jobs that run whenever changes merge. This means every time we land a change those images get updated16:01
y2kennyah ok.  So it's the tip of the tip.16:01
clarkbya I think we may push tagged versions for each zuul reelase too16:02
clarkband that tag would correspond to the zuul version?16:02
clarkbmordred: corvus ^ is that the case16:02
y2kennyI think that would be a great idea16:02
y2kennyat least I can fix my production deployment at a specific tag16:03
*** klindgren_ has joined #zuul16:03
*** klindgren has quit IRC16:03
mordredclarkb: we do not push docker hub tags for zuul releases yet16:04
clarkby2kenny: fwiw we run zuul from near tip and every change is reasonably well tested. This doesn't eliminate risk, but we do everything we can to make running zuul from trunk possible16:04
mordredthere is an issue that needs to be solved before we can which is tied with the upcoming "require db" step16:05
clarkbmordred: we could rebuild the images right?16:05
mordredso - it's a thing we'd like to do but are not doing atm16:05
clarkbas an intermediate step16:05
mordredclarkb: we could - but then those images would not have gone through any testing16:05
clarkbya, but risk there seems low particularly if we keep testing image builds in general16:05
*** mattw4 has joined #zuul16:06
y2kennyI am ok with running at tip.  But as an admin supporting a system, it would be nice to have a fixed tag to fall back to if there are any accident at the tip16:06
mordredyeah.  it's potentially worth discussing16:06
mordredy2kenny: yah. for sure16:06
y2kennyI am sure you guys have excellent CI practice ;)16:06
corvuswe try to walk the walk :)16:08
*** panda|off has quit IRC16:09
y2kennyAnother question... for the scheduler, is it fair to say that the conf and tenant files are the only "critical states"?  As in, if I want to have failover mirror, it can bring things back up just the same as long as the conf and tenant files are shared?16:10
tobiashy2kenny: also the private keys of the repos16:10
y2kennyoh right, yes.16:10
y2kennybut other than those, I can replicate the schedler pretty much as if it's stateless?16:11
* mnaser believes so16:11
tobiashyes, except the current queue16:11
y2kennyright... I think can accept that small lost16:12
y2kennyI have been trying to disect the quick-start tutorial into a k8s cluster and I am trying to figure out how to map some of the pieces over16:13
tobiashthe cost depends on the size :), it can be quite significane on opendev or our environment hence the work on scale out scheduler16:13
mnasery2kenny: fyi there is a zuul-operator project and also helm charts16:13
mnaserhttps://opendev.org/zuul/zuul-helm16:13
mnaserhttps://opendev.org/zuul/zuul-operator16:13
y2kennymnaser:  I have seen those but I wanted to understand the zuul system as I go, that's why I am doing it the hard way.16:14
mnasery2kenny: gotcha, the helm charts might be a good reference point to look at in terms of volume mounts, why things are staefulset vs deployments, etc :)16:14
*** sshnaidm|pto has quit IRC16:15
tobiashmnaser: ah you chose statefulset for the scheduler, interesting16:16
mnasertobiash: statefulset with replica=1 to maintain a stable hostname i think was a goal16:16
y2kennywhich brings me to another question.  How do you debug the connectivity between the executor and the scheduler/gearman?16:16
mnasergood question.. i haven't had to :-P16:17
y2kennyis ssl required for the connection?16:17
mnaserit is not, but it is recommended16:17
clarkbsecrets are passed over that connection16:17
*** sshnaidm|pto has joined #zuul16:17
clarkbstrongly recommended for that reason16:17
tobiashmnaser: actually for the scheduler it doesn't matter the stable hostname is currently only required for executors. So for the scheduler it's just a matter of tast between statefulset and deployment with re-create strategy16:18
y2kennyso far I have been able to put zookeeper and nodepool in to my k8s cluster but keep the scheduler /gearman on a separate machine16:18
y2kennywhen I try to start a separate executor in the cluster to connect to gearman, the log seems to show something stuck16:19
tobiashy2kenny: openssl s_client is quite useful to debug connectivity issues to gearman16:19
tobiashy2kenny: I guess you're running gearman from the scheduler?16:20
y2kennytobiash: yes16:20
y2kennyI was able to netcat from the executor to gearman16:20
tobiashtry openssl s_client with the ca and client cert16:20
y2kennyat least with the status16:20
y2kennyok... I haven't turned on ssl16:21
y2kennyand I noticed for  the quick-start tutorial the executor connects to gearman directly on the same host16:22
y2kennyum... actually.. now that I looked into it... seems like it's connected?16:23
y2kennythat's weird16:23
*** klindgren has joined #zuul16:24
tobiashy2kenny: the openssl command for debugging ssl connections to gearman can be found here: https://zuul-ci.org/docs/zuul/howtos/troubleshooting.html#gearman-jobs16:25
*** klindgren_ has quit IRC16:25
y2kennytobiash: thanks16:26
y2kennyok... so may be the problem lied else where (or may be there is a delay)16:26
tobiashy2kenny: generating the gearman certs is described here: https://opendev.org/zuul/zuul/src/branch/master/tests/fixtures/gearman16:26
tobiash(as an example)16:27
tobiashactually I don't find that part in the docs16:27
y2kennywhat I am trying to do is to have a executor inside the cluster to talk to nodes that are only visible within the cluster.16:27
y2kennyInitially it didn't work because I forgot to set the zone in the executor config16:28
y2kennybut even after I set it, the nodes are still not reachable16:28
y2kennyin order to use zone, do I have to set it for all the executor?16:29
y2kennyi.e., for executor that's not configured with zone, it is actually any?16:29
y2kenny(so in order to exclude unreachable nodes from certain executor, all executor will have to have a zone setting?)16:31
*** hashar has joined #zuul16:33
*** panda has joined #zuul16:47
*** panda is now known as panda|off16:48
*** rfolco has quit IRC16:51
*** rfolco has joined #zuul16:51
*** jcapitao has quit IRC17:07
Shrewscorvus: hrm, i wasn't aware that our zuul vs. nodepool zookeeper configurations had become so radically different. Did I imagine that these had started out as identical??17:09
corvusShrews: no -- one's in a conffile, the other is in a yaml, so structurally they have to be different17:09
Shrewsi thought they at least had the same section names. i must've been drunk when i imagined that17:10
corvusi'm wondering if we should move some nodepool stuff into a conffile, to mirror what zuul is like -- conffile is service config, yaml is content.  but nodepool has some more grey areas there than zuul17:11
corvusy2kenny: i think tobiash and pabelanger are the zone experts... but let me see if i can answer that17:11
fungiShrews: my conffiles are best read in the same state of insobriety in which i write them17:12
Shrewsfungi:  you win Monday17:12
tobiashy2kenny: if you configure an executor for a zone it will process exclusivly jobs with nodes from that zone17:14
corvusand it looks like it will *not* run unzoned jobs17:15
tobiashcorrect17:15
corvusso i think it works the way i think y2kenny thought originally, and the answer to the question "in order to exclude unreachable nodes from certain executor, all executor will have to have a zone setting?" is no.17:15
corvusy2kenny: if it's not working as expected, you may want to double check that you set the zone attribute for the nodes in nodepool17:16
*** jamesmcarthur has quit IRC17:18
*** jamesmcarthur has joined #zuul17:18
clarkbwhy did https://review.opendev.org/#/c/714188/3 not build with a preview site artifact?17:19
tobiashrelated to that, I have a change up for review so a zoned executor can be optionally allowed to process unzoned jobs: https://review.opendev.org/67384017:19
clarkb(also it would be great if a non OSF staff member could review that and hopefully get it landed so we can avoid having 3 OSFers get that in)17:19
fungiand same for https://review.opendev.org/71311017:21
corvusclarkb: do we normally get preview site artifacts?17:22
clarkbI thought we did17:22
fungii don't think we have so far for that repo17:22
clarkbbut maybe I just always navigated the html dir instead17:23
fungiwe'd need to use the zuul preview service to get them to look right anyway what with there being a number of absolute urls in there17:23
corvusmaybe we used to have a success-url but then never updated it to an artifact?17:23
clarkboh that could be17:23
clarkbhttps://80d06003c63fddf1b683-19b813b48e429f09de2f1c9eaa005f3d.ssl.cf2.rackcdn.com/714188/3/check/zuul-website-build/802c0bf/html/users.html is the page that was updated fwiw17:23
corvusfungi: oh, it used to all be relative, did we slack off?17:23
fungicorvus: possible it's only 713110 which needs fixing for that then17:24
fungisince it does <img src="/images/...17:24
mordredI pulled off my +A in case we want to do that17:25
fungijamesmcarthur: ^ maybe we do want to drop the leading / on those17:25
jamesmcarthurfungi: corvus: np - can fix17:25
openstackgerritJimmy McArthur proposed zuul/zuul-website master: Add supporters to Community page  https://review.opendev.org/71311017:27
*** hashar has quit IRC17:30
openstackgerritMerged zuul/zuul-website master: Promoting Zuul User Survey  https://review.opendev.org/71418817:34
clarkbmordred: ^ jamesmcarthur has a new ps up if you want to ack it again17:34
mordredclarkb, jamesmcarthur: https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_357/713110/3/check/zuul-website-build/3571afe/html/community.html17:35
mordredlooks a little off ...17:35
jamesmcarthurhmm17:36
*** evrardjp has quit IRC17:36
jamesmcarthursomething is off for sure17:36
*** evrardjp has joined #zuul17:36
*** dpawlik has quit IRC17:37
jamesmcarthurgive me a few - working17:38
AJaegerhere's another change for zuul-website - update for opendev https://review.opendev.org/71426117:38
*** bhavikdbavishi has quit IRC17:40
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Set default secret mode to 0400  https://review.opendev.org/71450117:43
Shrewscorvus: the tls changes lgtm except for release notes. not sure what's up with the quickstart job change failing on the image builds17:48
*** y2kenny has quit IRC18:00
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Add integration test playbook  https://review.opendev.org/71416518:00
*** dpawlik has joined #zuul18:02
openstackgerritMonty Taylor proposed zuul/zuul-jobs master: Trim whitespace from uri password for docker promote  https://review.opendev.org/71450618:03
*** y2kenny has joined #zuul18:06
openstackgerritMonty Taylor proposed zuul/zuul master: Strip by default in tools/encrypt_secret  https://review.opendev.org/71450818:07
openstackgerritJimmy McArthur proposed zuul/zuul-website master: Add supporters to Community page  https://review.opendev.org/71311018:08
y2kennycorvus, tobiash: ok I will give it a try (sorry I was afk and went for lunch.)  I understand that the executor run exclusively zoned job but would non-zoned executor run zoned job?  (it looked that way when I tried it but I could be missing something.)18:10
tobiashy2kenny: if there is an executor existing that is configured for the zone no other executor will get the job18:11
y2kennyok.18:11
tobiashif there is no such executor, all non-zoned executors will get the job18:12
y2kennyIs there a way to check the number and status of connected executors from the scheduler/gearman side?18:12
y2kenny(or... is it the scheduler or gearman that is "executor-aware"? ... or  both?)18:13
clarkby2kenny: I think both but the easiest way to check is via gearman18:15
clarkby2kenny: if you connect to the port and enter 'status' no quotes and a return after that is the gearman protocol command to get back some info like that18:15
y2kennyok cool.  Thanks.18:15
clarkbit will show you 4 columns, registered job name, builds queued for this job, builds running for this job, and registered workers for this job18:16
clarkby2kenny: each executor will register as a worker for the execute function iirc18:16
clarkbso you'd look on that line to see how many executors are attached18:16
openstackgerritJimmy McArthur proposed zuul/zuul-website master: Add supporters to Community page  https://review.opendev.org/71311018:17
y2kennyclarkb: yes I see some zone info in there as well.  I will go play with this a bit18:22
*** jpena is now known as jpena|off18:27
*** panda|off has quit IRC18:50
*** panda has joined #zuul18:51
openstackgerritJimmy McArthur proposed zuul/zuul-website master: Add supporters to Community page  https://review.opendev.org/71311019:00
jamesmcarthurat long last, I believe I have fixed this if mordred: or corvus: want to give it another look: https://30472a6d122e9d2c7f5a-eb75a7eda94fb791869997c22d701b46.ssl.cf5.rackcdn.com/713110/6/check/zuul-website-build/cf3eaec/html/community.html19:06
*** jamesmcarthur has quit IRC19:07
*** saneax has quit IRC19:07
mnasercccccclcthbbnlicilnrivgbjugbhlhtiugnfkdrgvfv19:11
mnaseroops, yubikey19:11
openstackgerritMerged zuul/zuul-operator master: Update to dhall lang v14  https://review.opendev.org/71064919:11
openstackgerritMerged zuul/zuul-operator master: Add missing volumes for the web and merger service  https://review.opendev.org/71281119:11
mordredmnaser: I now own all of yoru things19:11
mnasermordred: let me know if you find something interesting19:12
*** jamesmcarthur has joined #zuul19:13
*** mattw4 has quit IRC19:13
openstackgerritMerged zuul/zuul-website master: Add supporters to Community page  https://review.opendev.org/71311019:17
openstackgerritOleksandr Kozachenko proposed zuul/zuul-jobs master: add role for collecting the kubernetes pod&kubelet logs  https://review.opendev.org/71452119:34
*** hashar has joined #zuul19:37
*** jamesmcarthur has quit IRC19:46
*** jamesmcarthur has joined #zuul19:47
*** jamesmcarthur has quit IRC19:49
*** jamesmcarthur has joined #zuul19:50
openstackgerritOleksandr Kozachenko proposed zuul/zuul-jobs master: add role for collecting the kubernetes pod&kubelet logs  https://review.opendev.org/71452119:56
openstackgerritOleksandr Kozachenko proposed zuul/zuul-jobs master: add role for collecting the kubernetes pod&kubelet logs  https://review.opendev.org/71452120:05
*** jamesmcarthur has quit IRC20:06
*** mattw4 has joined #zuul20:06
*** jamesmcarthur has joined #zuul20:07
*** jamesmcarthur has quit IRC20:12
openstackgerritMerged zuul/zuul-operator master: Add missing input defaults  https://review.opendev.org/71313820:17
*** jamesmcarthur has joined #zuul20:27
openstackgerritOleksandr Kozachenko proposed zuul/zuul-jobs master: add role for collecting the kubernetes pod&kubelet logs  https://review.opendev.org/71452120:28
clarkbmordred: on that trim change, would that remove all leading and trailing whitespace?20:31
clarkbthat could potentially be problematic for some passwds?20:31
clarkbhrm I guess docker wants it base64 encoded though? so maybe in this specific acse it is ok?20:31
mordredclarkb: yeah - it's mostly to align it with how we're running the docker login command currently20:33
mordredclarkb: but - honestly, I think maybe expecting passwords with leading or trailing spaces to work is likely to be a painful life choice no matter what20:35
clarkbmordred: I agree, but it is apparently a thing (see also that thread re horizon's behavior around this)20:35
clarkbpwgen doesn't even have an option for incorporating whitespace20:36
fungii think it's fine if the encrypt tool keeps an option to not strip leading and trailing whitespace20:36
mordredwell - that would mean not doing the | trim patch20:37
clarkbwhich I just approved20:37
clarkbI'll unapprove I guess?20:37
fungino, i'm talking about the earlier discussion in #opendev about improvements to the zuul_encrypt.py script20:37
mordredyeah. those exist too - I made two changes20:38
mordredone to update zuul_encrypt - and one to trim in the job20:38
openstackgerritMonty Taylor proposed zuul/zuul master: Strip by default in tools/encrypt_secret  https://review.opendev.org/71450820:42
mordredfungi, clarkb: ^^20:42
*** dpawlik has quit IRC20:43
*** dpawlik has joined #zuul20:53
mnasermordred: thanks to the hold the cool artifact is now we have a role to collect all k8s-y things21:02
mnaserwhich should come in handy (cc tristanC ^)21:02
mordredmnaser: woot21:03
*** panda is now known as panda|off21:05
tristanCmnaser: that's good, i hope we can improve namespace log collection as it's currently not very practical (e.g. in the `docker` dir we can have many empty files)21:08
mnasertristanC: yeah the POD is pretty much empty but at least we get the container logs cleanly there21:08
tristanCbtw, there are quite a few changes waiting for review in https://review.opendev.org/#/q/project:zuul/zuul-operator+status:open21:10
*** rfolco has quit IRC21:17
*** jamesmcarthur has quit IRC21:19
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Add job_volumes CR spec attribute  https://review.opendev.org/70664221:20
*** dpawlik has quit IRC21:20
openstackgerritTristan Cacqueray proposed zuul/zuul-operator master: Update attributes to camelCase  https://review.opendev.org/70719321:21
*** jamesmcarthur has joined #zuul21:22
*** jamesmcarthur_ has joined #zuul21:25
*** jamesmcarthur has quit IRC21:25
y2kennyA question about nodeset:  for each node in a nodeset, I am required to provide a name and a label.  From the documentation, that name seems to need to match the nodes name provided by nodepool but in practice that doesn't seem to be the case.  What am I missing around this nodes and labels?21:33
y2kennyIs my setup working because all my playbooks has hosts: all?21:34
clarkby2kenny: the label represents a class of node that nodepool can provide. Each node provided for that label will have a unique name in the cloud provider. From the job perspective the inventory will be filled out with the name in the nodeset21:35
fungihosts: all applies to any and all nodes besides "localhost" (the executor)21:35
clarkby2kenny: that allows you to not worry about specifics and focus on the groupings you've expressed in the nodeset when writing the job21:35
openstackgerritMerged zuul/zuul-jobs master: add role for collecting the kubernetes pod&kubelet logs  https://review.opendev.org/71452121:35
y2kennyclarkb: that make sense but how come nodeset.nodes.name is a required field?  Should I be able to just define a nodeset with labels only?21:36
*** hashar has quit IRC21:37
clarkby2kenny: no because they represent differing things. The label maps onto nodepools availalbe classes and the name is what you get in the ansible inventory21:37
clarkby2kenny: this would allow you to say I want a host called controller of nodepool class ubuntu-xenial-extra-large21:38
y2kennyOhhhh...21:38
clarkbthen you can refer to the controller as the logical entity without worrying if it is based on ubuntu or centos or whatever21:38
clarkbif you do a lot of cross platform tstuff this becomes really useful21:38
y2kennyI am wondering because the nodes name seems to be ignored.  What I've done is to launch 3 nodes container instead of having one node (from the quick start) and those extra nodes are still fully utilize.21:39
y2kennyso instead of having a node name ubuntu-bionic with label of the same, I have name node0, node1, node2 and label unchanged.21:40
y2kenny(this is the nodepool provider setting)21:40
y2kennybut in the base job nodeset, I am still using name=ubuntu-bionic, label=ubuntu-bionic21:41
clarkby2kenny: if you look at the inventory file for the job those names should be used there21:41
clarkbthat then allows you to refer to those nodes by name in the job content21:42
y2kennyum... I am not sure which inventory file  you are referring to.  Is it suppose to go under zuul.d/ or part of the playbook/ (I am familiar with inventory for ansible but not sure how that fit into zuul.)21:46
*** armstrongs has joined #zuul21:46
clarkby2kenny: it is part of the running job, and zuul-jobs has a role to collect it iirc. Let me show you an example from one of our jobs21:46
clarkby2kenny: https://zuul.opendev.org/t/zuul/build/c9194ef26dfa42199ac1c974b2e41efa/log/zuul-info/inventory.yaml21:47
clarkby2kenny: https://opendev.org/zuul/zuul-jobs/src/branch/master/roles/log-inventory is the role to log it.21:48
clarkbits a file used by ansible to know what it can talk to21:48
*** jamesmcarthur_ has quit IRC21:49
y2kennyum... this is different from the inventory file that I was thinking of.  (I was thinking of the one that's in .ini format with various groupings of hosts/nodes.)21:50
*** jamesmcarthur has joined #zuul21:50
clarkby2kenny: ansible accepts them in different serialization formats21:51
clarkby2kenny: they are functionally the same iirc21:51
y2kennyok.21:51
*** jamesmcarthur has quit IRC21:52
*** jamesmcarthur has joined #zuul21:53
y2kennybut I am still confused (sorry about this.)  Let me see if I can ask the question in a different way...21:53
fungihere's one with custom node names: https://zuul.opendev.org/t/openstack/build/2cf56378a5c542a78d3a048fb50348ec/log/zuul-info/inventory.yaml21:54
openstackgerritJames E. Blair proposed zuul/zuul-jobs master: Allow pull-from-registry to be used in base jobs  https://review.opendev.org/71454121:54
fungimimicking a production deployment, and renaming the various nodes with the names they might have in reality21:55
fungithis way we're able to run production deployment playbooks in the context of a multi-node zuul job21:55
*** jamesmcarthur has quit IRC21:55
fungiand even exercise the hostname patterns we tell ansible to filter for21:55
y2kennyok... yea... I haven't even think about the idea of a multi-node zuul job yet.21:56
fungiall happening speculatively on a proposed change21:56
*** armstrongs has quit IRC21:56
y2kennyI am still trying to understand how zuul map a job that requires node type X to a collection of node with type X21:57
*** jamesmcarthur has joined #zuul21:57
mordredy2kenny: when you put a label in a nodeset, you're telling zuul "please get me a node of type X"21:57
y2kennyso in my test setup, I have defined a nodeset with 1 node (named and labeled ubuntu-bionic)21:57
clarkblet me try "diagram" it21:57
* mordred lets clarkb go21:58
*** jamesmcarthur has quit IRC21:59
fungiy2kenny: that's a fairly typical way to do it with a generic job where the job doesn't care what the name of the node is, or where you don't have multiple nodes within the same build you need to differentiate betwen21:59
*** jamesmcarthur has joined #zuul21:59
y2kennyOk21:59
fungithe ability to specify node names in a nodeset is additional flexibility for when those things really do matter22:00
y2kennyso it is correct to say that the node.name in a nodeset is not the same as node.name in a nodepool's pool?22:00
y2kennylike no relationship?22:00
fungicorrect22:01
mordredthat's right22:01
y2kennyOOOOOOOOOOOOOOOO KAY22:01
clarkbhttps://etherpad.openstack.org/p/WRGEflEDZb22:01
y2kennylol22:01
fungithe nodeset is how you would define that mapping22:01
clarkbfwiw22:01
*** jamesmcarthur has quit IRC22:02
y2kennyI think I was confused about that for the longest time.  Now I think I get you mean with node name and inventory22:02
mordred\o/22:02
mordredyay!22:02
y2kennywell... may be not... let me check that etherpad thing22:02
y2kennyok... I think I got it22:04
y2kennyI haven't used the inventory stuff yet and that's probably why I got confused... as in, all my playbook are just hosts: all22:05
clarkbya it makes a lot more sense when you start doing multinode stuff where you run actions per subset of nodes22:05
y2kennydoes this mean you can actually use zuul to drive a test cluster?22:06
y2kennyI guess that's how you guys do openstack integration test and what not.22:07
y2kennyok... yea...  so the node.name in the nodeset is for the playbooks totally unrelated to the node.name in the nodepool22:08
*** jamesmcarthur has joined #zuul22:08
clarkbyup22:08
y2kennythe nodeset.node.label is related to the nodepool.node.label22:08
y2kennyOk22:08
clarkbon the nodepool side its the actual name in the cloud provider22:08
clarkbon the zuul side its a logical name so that jobs can refer to things less concretely22:08
y2kennyyes... I think I got it now22:09
y2kennythis multi-node testing thing may open up some possibilities22:09
y2kennyvery interesting.22:09
y2kennyThis is pretty unique right?  I don't recall having the mindset of multi-node testing when I was doing Jenkins.  As far as I can remember, it's always pick a node from an approriate pool and do a specified task on it (either test or build)22:11
y2kennyJust to make sure I really understand this, what I just describe is covered by the labels right?22:12
fungiwe basically hacked it together in jenkins ourselves at one point22:12
fungigiving a jenkins slave a set of "subnodes" that we granted it root ssh access into22:13
clarkb(though jenkins had no idea about them itself)22:13
fungiright, jenkins only knew about the "primary" node22:13
clarkband ya I think this is fairly unique22:13
fungiwhen we replaced jenkins with ansible, we no longer had a need for any node in a nodeset to be "special" in that way22:14
y2kennyyea... that sounds nasty.  I don't think we ever needed multi-node testing but our reboot/driver install requirements means that we have some custom test master that does things that jenkins doesn't know about22:14
y2kennyI'd say the test master is pretty much like the executor... but hacky and custom :)22:15
fungibut yeah, zuul tells nodepool it needs three nodes (maybe two ubuntu-bionic and one centos-8) and then nodepool assigns them and they become the nodeset for the associated build, then the job can reference each of them independently from the executor22:15
fungiy2kenny: you're not far off. our zuul executors are basically our jenkins master replacement. zuul v2 was a multi-jenkins-master aggregator22:16
fungiwe had a jenkins plugin which gave jenkins masters the ability to communicate with the zuul scheduler over gearman protocol22:18
mordred(and also we had some users who had similar use caess of having a magical machien that knew about other nodes and did things there without our jenkinses knowing about it -w hich always felt fragile)22:18
y2kennymordred: yes, totally agree with that.22:18
y2kennyok.  I think I will table this multi-node thing and revisit it down the road.  This is great, thanks guys!  I learned something today.22:21
mordred\o/22:24
corvusy2kenny: if it helps you visualize it (i'm a visual person) -- here's a job that uses 3 hosts, each of which represents some part of our production control plane.  there's a bastion ("bridge.opendev.org"), a load balancer ('gitea-lb01.opendev.org') and a web service ('gitea99.opendev.org'): https://zuul.opendev.org/t/openstack/build/e0395ebddaec4edb9b87643fbaaf5ecb/console22:39
y2kennyum... how come you guys have such a nice pretty console thing... I only have the Summary tab for my build.22:43
y2kennythanks for the example though.  That helps.22:43
clarkby2kenny: if you collect the job-output.json file: https://zuul.opendev.org/t/zuul/build/c9194ef26dfa42199ac1c974b2e41efa/log/job-output.json that is what the UI ses to render the console tab22:44
*** persia has quit IRC22:46
y2kennyok... I don't think I push the job-output.json to the web interface yet.  Only dumping it into the log folder as per the quick start tutorial (haven't gone around to customize that bit just yet.)22:47
clarkbyou might need to have it in the manifest too?22:47
*** persia_ has joined #zuul22:47
corvusoh, we might need a quickstart update for that22:48
clarkbhttps://opendev.org/zuul/zuul-jobs/src/branch/master/roles/generate-zuul-manifest22:48
corvusyep, i'll update qs22:48
openstackgerritMonty Taylor proposed zuul/zuul master: Be explicit about base container image  https://review.opendev.org/71454922:49
y2kennyThis multi-node thing is pretty good... now I can probably use zuul to create a test for my CI infrastructure.  Until now, all I've been doing is build a CI infra to test the product.  We have minimal check on infrastructure config change but this will probably enable a more elaborate infrastructure test.22:51
*** jamesmcarthur has quit IRC22:52
corvusy2kenny: yes, that combined with zuul's speculative execution of its own config (where you can make a change to a zuul job and zuul will run with that change when it tests it before it lands) is very powerful22:52
mordredy2kenny: that was always a hole for us too - and it was always a bit terrifying to roll out some changes to the CI infrastructure - because there's nothing like preaching everything has to be tested - and then not having the testing system itself be tested and you break something :)22:53
openstackgerritJames E. Blair proposed zuul/zuul master: Add generate-zuul-manifest to quick-start  https://review.opendev.org/71455122:55
corvusy2kenny: ^ there we go, i think that's the missing piece22:56
y2kennymordred: yup, that's exactly it.22:57
y2kennycorvus: cool, I will add it and give it a try.  I like pretty things.22:57
corvusit's pretty much the only way i look at logs now :)22:58
fungiit's certainly the first way i look at logs at the very least22:58
fungi(or sort of second if you count glancing at the abbreviated copy of the console log on the summary page, possibly third if i also looked at the console stream while the build was in progress!)22:59
*** jamesmcarthur has joined #zuul23:04
openstackgerritMerged zuul/zuul master: Add generate-zuul-manifest to quick-start  https://review.opendev.org/71455123:47
*** jamesmcarthur has quit IRC23:48
*** jamesmcarthur has joined #zuul23:52
*** jamesmcarthur has quit IRC23:58

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