-@gerrit:opendev.org- James E. Blair https://matrix.to/#/@jim:acmegating.com proposed: [zuul/zuul] 826789: Add some ZK data size stats https://review.opendev.org/c/zuul/zuul/+/826789 | 00:20 | |
-@gerrit:opendev.org- Zuul merged on behalf of Alfredo Moralejo: [zuul/zuul-jobs] 826648: pin oauthlib version for python2.7 https://review.opendev.org/c/zuul/zuul-jobs/+/826648 | 06:38 | |
-@gerrit:opendev.org- Felix Edel proposed on behalf of Tobias Henkel: [zuul/zuul] 772695: Perform per tenant locking in getStatus https://review.opendev.org/c/zuul/zuul/+/772695 | 09:08 | |
-@gerrit:opendev.org- Tobias Henkel proposed: [zuul/zuul] 826878: Cache serialized tenant status https://review.opendev.org/c/zuul/zuul/+/826878 | 12:13 | |
-@gerrit:opendev.org- Benjamin Schanzel proposed: [zuul/nodepool] 826882: Avoid runtime errors in zk node iterator https://review.opendev.org/c/zuul/nodepool/+/826882 | 12:35 | |
@jim:acmegating.com | tobiash: +2 with comment on 826878 | 14:09 |
---|---|---|
@tobias.henkel:matrix.org | corvus: thanks, good point | 14:11 |
@gobi_g:matrix.org | Hi guys, | 14:12 |
I have a doubt. | ||
While zuul running a job for a MR, if any a new commit added to that MR means zuul will cancel the job. | ||
We can use dequeue-on-new-patchset to avoid this. | ||
If we use this it will create another job for new commit. But whether it will skip the merge of first commit once the job done? | ||
@gobi_g:matrix.org | Or anyway to continue the job of first commit but not merge unless any new commit for the same MR? | 14:17 |
@fungicide:matrix.org | karthi: it sounds like you're talking about the gitlab driver? as far as i'm aware, a merge request is tested as a single unit rather than testing the individual commits from the mr separately, so if that mr changes by the addition of a new commit, zuul necessarily needs to cancel tests it was performing on the old state of the mr and start testing its latest state instead | 14:35 |
@gobi_g:matrix.org | I'm creating resources for testing. If the job cancelled means I can't able to delete those resources. | 14:39 |
@gobi_g:matrix.org | So is there any option to skip the merge part? | 14:40 |
@fungicide:matrix.org | i'm probably misunderstanding what you're asking, since i don't know what you mean by "creating resources" but it sounds like you could either use a cleanup phase in your jobs to properly tear down the resources it created on cancellation, or you could use separate merge requests which are dependent on one another if you want those commits tested separately (zuul is made to sequence changes like this) | 14:42 |
@gobi_g:matrix.org | Okay got it 👍 | 14:43 |
@gobi_g:matrix.org | Is there any doc for setup zuul + gitlab? | 14:44 |
@jim:acmegating.com | karthi: https://zuul-ci.org/docs/zuul/latest/drivers/gitlab.html | 14:44 |
@gobi_g:matrix.org | Thanks 👍 | 14:46 |
@gobi_g:matrix.org | I have a static nodepool. I created a nodeset with two worker nodes. I labelled it both as wnode. | 14:51 |
When I pass the nodeset to job, it uses a node in both worker nodes. Both marked as in-use. | ||
But job runs in only one worker node. | ||
@gobi_g:matrix.org | Anyone know how to solve this? | 14:51 |
@fungicide:matrix.org | karthi: each of the nodes in your nodeset is included in the ansible inventory for that build of the job. if you want the job to use multiple nodes then it needs to be written to do that, for example by assigning specific tasks to specific nodes from the build inventory | 14:54 |
@fungicide:matrix.org | if you wanted to perform parallel compilation, you could have one task which configures and starts up a distcc worker on all hosts in the inventory, and then a subsequent task which begins compilation on one host which will farm out its work to the others | 14:58 |
@gobi_g:matrix.org | I'm using two nodes for high availability and run more jobs. | 14:59 |
@gobi_g:matrix.org | I have to run a job in single node by selecting which worker node have more available nodes. | 15:00 |
@gobi_g:matrix.org | Like round robin method. | 15:01 |
@fungicide:matrix.org | i don't completely understand what you're asking, it may be a matter of unclear terminology. for a particular build (a single running of the job), do you want all nodes in the nodeset to be used? or do you only want one node to be used? | 15:03 |
@gobi_g:matrix.org | > <@fungicide:matrix.org> i don't completely understand what you're asking, it may be a matter of unclear terminology. for a particular build (a single running of the job), do you want all nodes in the nodeset to be used? or do you only want one node to be used? | 15:03 |
One node to be used | ||
@fungicide:matrix.org | in that case, you should only have one node in your nodeset | 15:03 |
@fungicide:matrix.org | you can apply a consistent node label to all the servers you want to use, but provide a single-node nodeset so that a given build will get an available server with that node label assigned | 15:04 |
@fungicide:matrix.org | nodepool keeps track of what nodes are available with a particular label, and then fulfills node requests from the available nodes with the requested label | 15:06 |
@gobi_g:matrix.org | So in playbook I have to pass the label. | 15:06 |
-@gerrit:opendev.org- James E. Blair https://matrix.to/#/@jim:acmegating.com proposed: [zuul/zuul] 826898: Fix bootstrapping zk data model version https://review.opendev.org/c/zuul/zuul/+/826898 | 15:07 | |
@jim:acmegating.com | zuul-maint: ^ can you please review that with high priority? | 15:08 |
@jim:acmegating.com | i observed those problems when restarting opendev | 15:08 |
@fungicide:matrix.org | karthi: not exactly. in the playbook you would refer to the host name supplied by the invenfory from the job, which is determined by the names you put in a nodeset. the nodeset's host names are mapped to specific node labels when you define the nodeset | 15:08 |
@fungicide:matrix.org | here's an example: https://opendev.org/opendev/system-config/src/commit/4d5958dce7e41cb9c358b45e4d07da92ed95b8f4/zuul.d/system-config-run.yaml#L237-L244 | 15:14 |
@fungicide:matrix.org | you'll see that there are names and labels in the nodeset added to that job | 15:14 |
@fungicide:matrix.org | the names are what you would refer to as hosts in your job's playbooks | 15:14 |
@fungicide:matrix.org | the labels are assigned to nodes managed by nodepool | 15:14 |
@gobi_g:matrix.org | Got it. Till now I thought about creating nodeset with groups in that added nodes (my existing setup). | 15:16 |
@gobi_g:matrix.org | Now got it. | 15:16 |
@fungicide:matrix.org | in that particular example, we're testing a mock deployment of mailserver software from a bastion host we call bridge.openstack.org which is running on a node of type (label) ubuntu-bionic, to two nodes named lists.openstack.org and lists.katacontainers.io both of which use nodes of type (label) ubuntu-focal | 15:17 |
-@gerrit:opendev.org- James E. Blair https://matrix.to/#/@jim:acmegating.com proposed: [zuul/zuul] 826898: Fix bootstrapping zk data model version https://review.opendev.org/c/zuul/zuul/+/826898 | 15:17 | |
@jim:acmegating.com | zuul-maint; ^ slightly simplified | 15:17 |
@jim:acmegating.com | * zuul-maint: ^ slightly simplified | 15:17 |
@gobi_g:matrix.org | > <@fungicide:matrix.org> in that particular example, we're testing a mock deployment of mailserver software from a bastion host we call bridge.openstack.org which is running on a node of type (label) ubuntu-bionic, to two nodes named lists.openstack.org and lists.katacontainers.io both of which use nodes of type (label) ubuntu-focal | 15:19 |
That's is the case. Thanks. In that if we pass Ubuntu-focal as host means it will run job in either one right? | ||
@fungicide:matrix.org | yes, if you put a node label of ubuntu-focal on multiple nodes and then have a nodeset which uses one ubuntu-focal node, any build using that nodeset will be given an available ubuntu-focal node by nodepool | 15:22 |
@gobi_g:matrix.org | Thankyou so much | 15:22 |
@fungicide:matrix.org | another less specific example is https://opendev.org/opendev/system-config/src/commit/4d5958dce7e41cb9c358b45e4d07da92ed95b8f4/zuul.d/system-config-roles.yaml#L29-L34 | 15:23 |
@fungicide:matrix.org | in that one, the build uses two available ubuntu-xenial nodes and names one base and the other puppet4 | 15:23 |
@gobi_g:matrix.org | Example if we want to test a patch on different os means we will create a group with two nodes and pass the group as host. Am I right? | 15:24 |
@fungicide:matrix.org | then the job's playbooks have tasks which run on ``host: base`` and other tasks which run on ``host: puppet4`` | 15:24 |
@gobi_g:matrix.org | > <@fungicide:matrix.org> then the job's playbooks have tasks which run on ``host: base`` and other tasks which run on ``host: puppet4`` | 15:26 |
This for different os case right? | ||
@fungicide:matrix.org | karthi: yes, if you wanted to test a patch on an ubuntu-bionic node and an ubuntu-focal node there are multiple ways to do that. you could have two job variants and pass a nodeset containing an ubuntu-bionic node to one and an ubuntu-focal node to the other, or you could have one job which passes a nodeset containing an ubuntu-bionic node and an ubuntu-focal node and then write the job's playbooks to separately test on both nodes in the inventory | 15:27 |
@gobi_g:matrix.org | Okay | 15:28 |
@fungicide:matrix.org | most of the timel, for testing a patch on multiple platforms, single-node jobs which refer to separate platforms are easier to satisfy than a multi-node job which needs one of each platform | 15:29 |
@gobi_g:matrix.org | Thanks for all the detailed explanations | 15:29 |
@fungicide:matrix.org | if you wanted to test a change on 5 different platforms with a 5-node job, nodepool would have to wait until one node of each label was available to be scheduled | 15:29 |
@fungicide:matrix.org | but if you did that as 5 different jobs one for each platform, then nodepool can satisfy the individual node requests as those nodes come available | 15:30 |
@jim:acmegating.com | and the reporting is nicer/easier to read | 15:31 |
@jim:acmegating.com | you get a distinct result for each platform | 15:31 |
@gobi_g:matrix.org | Nice one. Thanks for this information. | 15:31 |
@jim:acmegating.com | here's a change tested on lots of platforms: https://review.opendev.org/826158 | 15:31 |
@gobi_g:matrix.org | > <@jim:acmegating.com> here's a change tested on lots of platforms: https://review.opendev.org/826158 | 15:34 |
Nice. Can you please share the job definition for this? | ||
@clarkb:matrix.org | I can review the zuul fox first thing after the school run | 15:38 |
@fungicide:matrix.org | karthi: those jobs are defined here: https://opendev.org/zuul/zuul-jobs/src/commit/6c3e76af1ad4de35911012a3db09d72508a35dcb/zuul-tests.d/general-roles-jobs.yaml | 15:40 |
@jim:acmegating.com | specifically, the bindep jobs, for example, start here: https://opendev.org/zuul/zuul-jobs/src/branch/master/zuul-tests.d/general-roles-jobs.yaml#L207 | 15:41 |
@fungicide:matrix.org | you can see they basically all inherit from the same parent job and just alter the description and nodeset | 15:41 |
@gobi_g:matrix.org | Okay. I can't find the pipeline for this job. | 15:44 |
@jpew:matrix.org | Is there a way to get nodepool to read the `userdata` (cloud-config) from a file? | 15:46 |
@fungicide:matrix.org | karthi: at the very end of that same file | 15:46 |
@fungicide:matrix.org | the check pipeline definition starts at line 698 | 15:47 |
@gobi_g:matrix.org | 😅 yeah it's there | 15:47 |
@gobi_g:matrix.org | Thanks for all the details fungi and corvus | 15:49 |
@fungicide:matrix.org | jpew: it may be possible to supply userdata in your clouds.yaml, i'm looking for viable examples now as i couldn't find a clear answer in the openstacksdk docs | 15:54 |
@fungicide:matrix.org | oh, i should have checked the nodepool docs first | 15:58 |
@fungicide:matrix.org | jpew: https://zuul-ci.org/docs/nodepool/openstack.html#attr-providers.[openstack].pools.labels.userdata | 15:58 |
@fungicide:matrix.org | looks like the aws driver also supports that, maybe azure as well looking at the source code, but seems it may be missing from the docs if so | 16:00 |
@jpew:matrix.org | That has to be the content of the file right? | 16:00 |
@fungicide:matrix.org | yes, i think you would encode/embed the file content in that parameter | 16:01 |
@fungicide:matrix.org | you're looking for a way to supply it in a separate file then? | 16:01 |
@jpew:matrix.org | Yes, it would be nice | 16:15 |
@jim:acmegating.com | i've gone ahead and approved https://review.opendev.org/826882 since it's a bugfix that i think we can get included in the next opendev restart | 16:32 |
-@gerrit:opendev.org- Zuul merged on behalf of Benjamin Schanzel: [zuul/nodepool] 826882: Avoid runtime errors in zk node iterator https://review.opendev.org/c/zuul/nodepool/+/826882 | 17:52 | |
-@gerrit:opendev.org- Zuul merged on behalf of James E. Blair https://matrix.to/#/@jim:acmegating.com: [zuul/zuul] 826898: Fix bootstrapping zk data model version https://review.opendev.org/c/zuul/zuul/+/826898 | 18:33 | |
@jpew:matrix.org | I'm trying to setup authentication with Zuul 4.11 and keycloak, and I'm having trouble; does the keycloak server need to be publically accessible? I'm currently running it on the same server as zuul, but it doesn't have it's own FQDN | 20:57 |
@clarkb:matrix.org | jpew: I haven't used it myself yet, but I beleive it uses openidconnect which uses a redirect process to do the auth. And that redirect process happens in your browser so the browser needs to be able to know how to talk to keycloask | 20:58 |
@clarkb:matrix.org | * jpew: I haven't used it myself yet, but I beleive it uses openidconnect which uses a redirect process to do the auth. And that redirect process happens in your browser so the browser needs to be able to know how to talk to keycloak | 20:58 |
@jim:acmegating.com | Clark and i just finished a rolling restart of opendev's zuul on master; i was able to see the cluster acknowledge the old api version and the upgrade to the new one, so that's looking good. | 23:26 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!