Thursday, 2025-10-23

-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] 964389: Annotate image upload logs with iba/upload uuid https://review.opendev.org/c/zuul/zuul/+/96438905:44
-@gerrit:opendev.org- Zuul merged on behalf of Simon Westphahl: [zuul/zuul] 964459: Reset the success flag before each run playbook https://review.opendev.org/c/zuul/zuul/+/96445909:12
-@gerrit:opendev.org- Zuul merged on behalf of Simon Westphahl: [zuul/zuul] 964382: Implement support for min-retention-time https://review.opendev.org/c/zuul/zuul/+/96438209:21
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] 964683: Add metrics for image upload duration and state https://review.opendev.org/c/zuul/zuul/+/96468310:31
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] 964689: Prevent error in stats to stop pipeline processing https://review.opendev.org/c/zuul/zuul/+/96468912:58
-@gerrit:opendev.org- Simon Westphahl proposed: [zuul/zuul] 964683: Add metrics for image upload duration and state https://review.opendev.org/c/zuul/zuul/+/96468313:05
-@gerrit:opendev.org- Simon Westphahl proposed:13:54
- [zuul/zuul] 964689: Prevent error in stats to stop pipeline processing https://review.opendev.org/c/zuul/zuul/+/964689
- [zuul/zuul] 964694: Replace slash when normalizing statsd name https://review.opendev.org/c/zuul/zuul/+/964694
@daniilgankov:matrix.orgThat was my mistake, I missed that job.semaphores are already being inherited (by extending).14:34
But is there a way to work with semaphore as a resource pool? A semaphore has its max count. But a job does not know which index is acquired. Maybe it is possible to implement something like items in semaphore. So, if semaphore.items are [item-0, item-1], its max is 2 and the job is locking semaphore.item-0 from such a resource pool. The semaphore is locked when all its items are locked. Can I propose something like this?
@daniilgankov:matrix.orgIs maybe there any other solution available in Zuul now? I have a pool of similar resources from which any one must be locked by a job and if all are locked, the job must wait for it.15:06
@clarkb:matrix.orgOne approach would be to use a static node with a 1:1 mapping to each resource. Then only have as many static nodes as you have resources and delegate via node assignment15:08
@clarkb:matrix.orgBut no I don't think there is a built in solution 15:09
@daniilgankov:matrix.orgI used this solution until I have Kubernetes nodes in my nodepool. AFAIK, different pools cannot be used together, so there's no way to use static and Kubernetes nodes in one nodeset. I've also tried to generate multiple pools with similar resource pods, but I cannot limit only one pod inside a pool.15:13
@daniilgankov:matrix.org* I used this solution until I have Kubernetes nodes in my nodepool. AFAIK, different pools cannot be used together, so there's no way to use static and Kubernetes nodes in one nodeset. I've also tried to generate multiple pools with similar resource/control pods, but I cannot limit the same pods between pools.15:15
@fungicide:matrix.orgnot yet, but that's something that the zuul-launcher (replacement for nodepool) will be capable of15:16
@fungicide:matrix.orgmixing resources from different pools/providers i mean15:16
@daniilgankov:matrix.org15:21
> something like items in semaphore
Is this a viable idea?
@nitarek123:matrix.orgQ:15:30
To include roles to be used by a job
```
roles:
- zuul: project/abc
```
So including roles from a repository works only if the roles/ directory is present in the top-level directory of the repository, right? Is there any way to qualify the roles directory with anything else before it, like .zuul.d/roles/ instead?
@nitarek123:matrix.orgThis is actually probably downstream from actually just getting roles noticed, since it doesn't get picked up upon as of now:15:34
```
.zuul.d
├── filter_plugins
│ └── zuul_helpers.py
├── jobs
│ ├── base.yaml
│ ├── builds.yaml
│ ├── checks.yaml
│ ├── generated
│ │ └── test_*.yaml
│ ├── performance.yaml
│ └── templates.yaml
├── playbooks
│ ├── builds
│ │ ├── build1
│ │ │ └── run.yaml
│ │ ├── build2
│ │ │ ├── run.yaml
│ │ │ └── vars
│ │ └── build3
│ │ └── run.yaml
│ ├── checks
│ │ ├── commit
│ │ │ └── run.yaml
│ │ ├── frozen-jobs
│ │ │ └── run.yaml
│ │ └── source
│ │ └── run.yaml
│ └── tests
│ ├── pre.yaml
│ ├── test1
│ │ └── run.yaml
│ ├── test2
│ │ └── run.yaml
├── roles
│ ├── archive-builds
│ │ └── tasks
│ │ └── main.yaml
│ ├── checkout-submodule-trees
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ └── tasks
│ │ └── main.yaml
│ ├── unarchive-downloads
│ │ ├── defaults
│ │ │ └── main.yaml
│ │ └── tasks
│ │ └── main.yaml
└── zuul.yaml
```
@clarkb:matrix.orgThere is a way to specify alternative config loading dirs. I don't know if that was done for roles too15:42
@fungicide:matrix.orghttps://zuul-ci.org/docs/zuul/latest/job-content.html#var-zuul.playbook_context.playbooks.roles.role_path maybe?15:43
@fungicide:matrix.orgi'm not spotting any examples of us using that anywhere in opendev though15:48
@nitarek123:matrix.orgThat's not mutable right? That's just the information ansible provides us. I'm seeing in the inventory.yaml that:15:50
```
playbooks:
- path: untrusted/project_0/project/abc/.zuul.d/playbooks/builds/build1/run.yaml
roles:
- checkout: master
checkout_description: playbook branch
link_name: ansible/playbook_0/role_0/abc
link_target: untrusted/project_0/project/abc
role_path: ansible/playbook_0/role_0/abc/roles
- checkout: main
checkout_description: project default branch
link_name: ansible/playbook_0/role_1/abc-zuul-config
link_target: untrusted/project_1/project/abc-zuul-config
role_path: ansible/playbook_0/role_1/abc-zuul-config/roles
- checkout: master
checkout_description: zuul branch
link_name: ansible/playbook_0/role_2/zuul-jobs
link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs
role_path: ansible/playbook_0/role_2/zuul-jobs/roles
```
@nitarek123:matrix.orgSo it does qualify the abc path with roles/ but I'm not sure how to teach it to look somewhere else apart from `roles/`, like `.zuul.d/roles/` in my case15:51
@fungicide:matrix.orgoh, yeah i think you're right15:52
@fungicide:matrix.orghowever, you can put a roles directory at the root of a different git repository and reference roles contained there15:57
@nitarek123:matrix.orgHmm, I'll consider that or symlinking roles to the current spot. Thanks.15:58
@jim:acmegating.comnitarek123: keep in mind that ansible has some implicit role locations as well, such as adjacent to playbooks.  so if root/playbook/playbook.yaml is running, it can use roles from root/playbook/roles/...16:01
@fungicide:matrix.orgdoes it look for a roles tree in the current or any parent directory of the playbook? is that why roles at the root of the repo works?16:03
@nitarek123:matrix.orgParent directory of the playbook is what I've observed. Like in my case, if a playbook is at `.zuul.d/playbooks/checks/commit/run.yaml`, it'll look for roles at: `.zuul.d/playbooks/checks/commit/roles/`16:06
@jim:acmegating.comwhat zuul does is described here: https://zuul-ci.org/docs/zuul/latest/config/job.html#attr-job.roles  (especially the paragraph that starts with "A project which supplies a role").  the rest is ansible, so i'd recommend consulting ansible's docs for that.16:08
-@gerrit:opendev.org- James E. Blair https://matrix.to/#/@jim:acmegating.com proposed: [zuul/zuul] 964710: Launcher: fix passing username and other attrs https://review.opendev.org/c/zuul/zuul/+/96471016:50
-@gerrit:opendev.org- Clark Boylan proposed: [zuul/zuul-jobs] 964724: Find tox/nox siblings with normalized package names https://review.opendev.org/c/zuul/zuul-jobs/+/96472418:17
-@gerrit:opendev.org- James E. Blair https://matrix.to/#/@jim:acmegating.com proposed: [zuul/zuul] 964710: Launcher: fix passing username and other attrs https://review.opendev.org/c/zuul/zuul/+/96471018:22
-@gerrit:opendev.org- Clark Boylan proposed: [zuul/zuul-jobs] 964724: Find tox/nox siblings with normalized package names https://review.opendev.org/c/zuul/zuul-jobs/+/96472418:29
-@gerrit:opendev.org- Clark Boylan proposed: [zuul/zuul-jobs] 964724: Find tox/nox siblings with normalized package names https://review.opendev.org/c/zuul/zuul-jobs/+/96472418:44
@clarkb:matrix.orgzuulians ^ that is hopefully a quick review impacting some users in opendev19:00
@clarkb:matrix.orgbasically python package names can come in many equivalent but not equal forms so we need to check for equivalence not equality19:00
-@gerrit:opendev.org- Zuul merged on behalf of Clark Boylan: [zuul/zuul] 962449: Record missing info in job-output.json https://review.opendev.org/c/zuul/zuul/+/96244920:27
-@gerrit:opendev.org- Zuul merged on behalf of James E. Blair https://matrix.to/#/@jim:acmegating.com: [zuul/zuul] 963634: Fix test_launcher_image_expire_failed_upload https://review.opendev.org/c/zuul/zuul/+/96363421:42

Generated by irclog2html.py 4.0.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!