Monday, 2024-08-12

*** dtantsur_ is now known as dtantsur02:24
*** darmach6 is now known as darmach08:58
opendevreviewJan Gutter proposed zuul/zuul-jobs master: [wip] Fix k8s-crio buildset registry test  https://review.opendev.org/c/zuul/zuul-jobs/+/92601309:38
opendevreviewJan Gutter proposed zuul/zuul-jobs master: [wip] Fix k8s-crio buildset registry test  https://review.opendev.org/c/zuul/zuul-jobs/+/92601310:13
opendevreviewJan Gutter proposed zuul/zuul-jobs master: [wip] Fix k8s-crio buildset registry test  https://review.opendev.org/c/zuul/zuul-jobs/+/92601310:52
opendevreviewJan Gutter proposed zuul/zuul-jobs master: [wip] Fix k8s-crio buildset registry test  https://review.opendev.org/c/zuul/zuul-jobs/+/92601313:27
opendevreviewJan Gutter proposed zuul/zuul-jobs master: Fix k8s-crio buildset registry test  https://review.opendev.org/c/zuul/zuul-jobs/+/92601314:50
clarkbinfra-root a reminder that I am out tomorrow. I suspect that it may be another skipped meeting day tomorrow. I think that is fine, but there are a couple of topics I wanted to bring up more asynchronously today so that they don't get lost in the shuffle15:51
clarkbFirst up a reminder that we are in the OpenDev Service Coordinator nomination period until August 20. If you are interested and have questions feel free to reach out and I'll do my best to respond quicky15:52
clarkbSecond there is discussion about whether or not we should switch gitea to forgejo on the mailing list: https://lists.opendev.org/archives/list/service-discuss@lists.opendev.org/thread/CWVR5HRTHGWZTKQEFCOOP77GFFVUXBA4/15:53
clarkbIf others have more information / better informed opinions I think it would be great to ensure we've recorded them and make a stronger decision at the end if possible15:53
clarkbThird Etherpad has made a 2.2.2 release that changes how all the js (including plugins) for etherpad is bundled up and loaded into your browser. THis has unfortunately broken with our use of the ep_headings plugin. There is a separate ep_headings2 plugin which I've updated the change to use just to confirm the issue was in the ep_headings plugin and fungi reports the held node15:57
clarkbfunctions now. The next concern is what happens to existing pads when you switch from ep_headings to ep_headings2. The upstream ep_headings2 project has an old closed issue indicating there might be errors. We probably need to deploy a current version of etherpad with ep_headings then update to ep_headings2 and see what happens to some test pads (or use a prod db loaded onto the test15:57
clarkbnode I guess)15:57
clarkbI don't think the etherpad thing is particularly ugent; however, it would be good to try and build a better understanding of the situation.15:57
clarkbI personally probably won't get to that in the near future as I'm out tomorrow and I'm also starting to realize I need to dive into summit preparation as I've presenting on zuul and hosting a forum session15:58
clarkbthat is it for my ansynchronous braindump. Feel free to follow up here or if it is easier we can start threads on the mailing list for these topics15:58
opendevreviewJan Gutter proposed zuul/zuul-jobs master: [wip] Update ensure-kubernetes with podman support  https://review.opendev.org/c/zuul/zuul-jobs/+/92497016:37
opendevreviewJan Gutter proposed zuul/zuul-jobs master: [wip] Update ensure-kubernetes with podman support  https://review.opendev.org/c/zuul/zuul-jobs/+/92497016:41
opendevreviewJan Gutter proposed zuul/zuul-jobs master: [wip] Update ensure-kubernetes with podman support  https://review.opendev.org/c/zuul/zuul-jobs/+/92497017:35
clarkbjrosser: noonedeadpunk: it came to my attention that some openstack ansible jobs have relatively complicated scenario selection logic based on job name: https://opendev.org/openstack/openstack-ansible/src/branch/master/zuul.d/playbooks/pre-gate-scenario.yml#L27-L84 You should be able to use job level vars to select the scenario instead which should be much simpler. Have a parent job17:40
clarkbthat doesn't do anything by default (can also be abstract) then child job sets a unique name and sets teh var related to that name17:40
clarkblooks like maybe it is already checking for the scenario var anyway so might just be able to delete all that code if you set the value at the job level17:40
jrosserclarkb: unfortunately that will not work outside zuul?17:55
clarkbjrosser: it would if you set the flag in your inventory or otherwise add the ansible var17:56
clarkbbut its executing in the context of zuul (its checking the zuul job name)17:56
clarkbgenerally we recommend against this beacuse it means job names affect the behavior of jobs which is something that is often unexpected to people and leads to confusion if you have to rename things17:56
jrosserwe would have to make a job per repo then too?17:56
clarkbI think you would continue to have as many job as you do today. The difference would be explicitly setting the scenario rather than inferring it from the job name17:57
jrosseras the openstack service name (as determined from the repo name) is magically added to the scenario currently17:57
clarkbhttps://opendev.org/openstack/openstack-ansible/src/branch/master/zuul.d/playbooks/pre-gate-scenario.yml#L40-L55 this section?17:58
jrosserso openstack_ansible_os-ironic will deploy ironic with no specific job or var needed to do that17:58
clarkbjrosser: right but you already hvae an ironic job for that so you can set the appriopriate scenario on that job?17:59
jrosserI think it’s worth remembering that we are the complete opposite of a monorepo, so a lot of this is done to concentrate the job definitions in one place17:59
clarkbin that case it shouldn't add any new jobs to the mix, you just reduce the logic in the job and set the scenario upfront17:59
corvus(also, you can set a job variable on the project-pipeline config for the job (you can also set a job variable at the project level); both are ways of adjusting a job variable for a specific project invocation without creating a new job)18:00
clarkbyes concentrating job definitions is fine. I'm just suggesting that having complicated logic to determine the job behavior at runtime is an anti pattern.18:00
clarkbbecause you now have to debug that pile of jinja to understand why jobs are doing what they do reather than reading a var18:01
jrosserim still not seeing how that would work with project templates18:02
jrosserwhich ultimately is what gets specified in most places rather than actual jobs18:02
clarkb(there are other benefits to being explicit too like simpler statistics gathering for pass/fail rates, more accurate job runtime estimates, and so on)18:03
corvus(this is what my 2 examples looks like: https://paste.opendev.org/show/bpPf9PMn4BHMxruwjOKO/ )18:03
corvusfirst example works well with templates18:05
jrossereven though we use the same templates across dozens of repos?18:08
jrossersorry i feel pretty stupid here that i can't see how this does not involve a very large nuber of extra job definitions18:09
jrosserthe thing is that in dozens of our repos there are not actually any jobs defined, looking at ironic as an example https://github.com/openstack/openstack-ansible-os_ironic/blob/master/zuul.d/project.yaml18:12
corvusjrosser: from a high-level perspective: it looks like the job is configuring itself based on two pieces of information: the job name, and the repo.  instead of encoding information in the job name, you should be able to encode it in the job definition as a variable.  that's like the minimal version of the thing clarkb is saying, i think.  that's almost axiomatic -- if the data is in the job name, then you can just move it to the job variable18:12
corvuswith no other changes.18:12
jrosserbut there is no job definition18:12
clarkbjrosser: https://opendev.org/openstack/openstack-ansible/src/branch/master/zuul.d/project-templates.yaml#L170-L185 the jobs are still definied18:13
corvusjrosser: the other bit of information, that's currently being obtained from zuul.project is the project under test.  maybe you leave that the same, or maybe you use a project variable to set the scenario for that project.  that's a little more distributed configuration, but could still be a net benefit.  it's a little less axiomatic that you can just make that change.  so it's not as minimal.18:13
jrosseryes, and those cover many many different values of the scenario based on the repo they are used from18:13
jrosseri am pretty reluctant to change this - we only need one place to manage our jobs or add / remove / non-voting an entire OS (for example) across dozens of repos18:16
clarkbAt a high level I would probably suggest not doing that bceause it is confusing that job openstack-ansible-deploy-aio_metal_tls-ubuntu-jammy can behave vastly different when run against ansible-role-uwsgi or openstack-ansible-os_ironic. I'm not going to stop you from doing that but it makes comapring last known good runs useless in the naive case (eg the very case I might run into if18:17
clarkbhelping to debug a transition in success reliability)18:17
clarkbbut as corvus mentions you can still approximate that via project level vars (or just keep that portion of the behavior selection in the jinja block)18:18
opendevreviewJames E. Blair proposed zuul/zuul-jobs master: ensure-podman: add tasks to configure socket group  https://review.opendev.org/c/zuul/zuul-jobs/+/92591618:19
fungiclarkb: catching back up on the etherpad upgrade (sorry, just got a few minutes to jack into the net), did you see the same problem i did with numbered lists on the held node?18:30
clarkbfungi: I haven't tested it myself yet. I guess I should. Also makes me wonder if that is an etherpad problem or a plugin problem. Presumably it is an etherpad problem18:31
clarkbfungi: the list you created is all 1.'s but creating new lists in chrome and firefox in incognito tabs works as I expect18:33
clarkbfungi: maybe you need to hard refresh or clear your cache to get the list output to work properly18:34
fungimaybe, or it could be that it relies on some feature client-side that simply doesn't work in the browser i was testing with18:37
clarkbit seems to work for me doing a bit of other testing. I think the main issue is testing the behavior of existing ep_headings pads without that plugin being present anymore. I really hope it just renders some markup and people cna manually convert in pads they still use. But that issue I found makes me worry it will just break18:41
opendevreviewJames E. Blair proposed zuul/zuul-jobs master: ensure-podman: add tasks to configure socket group  https://review.opendev.org/c/zuul/zuul-jobs/+/92591618:44
fungiclarkb: what's odd is that this same browser can do numbered lists successfully on the production server (i just tested to confirm), so i wonder what's changed in that regard19:27
opendevreviewJames E. Blair proposed zuul/zuul-jobs master: ensure-podman: add tasks to configure socket group  https://review.opendev.org/c/zuul/zuul-jobs/+/92591619:43
opendevreviewJames E. Blair proposed zuul/zuul-jobs master: ensure-podman: add tasks to configure socket group  https://review.opendev.org/c/zuul/zuul-jobs/+/92591620:13
opendevreviewJames E. Blair proposed zuul/zuul-jobs master: Add ability to exclude a specific platform  https://review.opendev.org/c/zuul/zuul-jobs/+/92616420:13
clarkbfungi: is that with cache claered between trying the different etherpad versions. I just wonder if the old version js is possibly polluting things20:17
fungisame browser and version, but on two different computers20:18
fungii have a pair of identical netbooks, the one i tested on yesterday is not the one i'm travelling with today. neither had connected to the production etherpad before, but also as these are travel devices i have them configured to not keep any local cache20:19
clarkbhuh so possibly browser realted? I used firefox and chrome in my test20:20
fungithis one is chromium/webkit-based20:20
fungibut yeah, seems to be a browser-specific regression in the new etherpad version. not a very widely-used browser though so not a big deal20:21
clarkbfor testing ep_headings content under ep_headings2 do you think it is worthwhile restoring from a prod db or should we just use a test pad. I think a test pad is probably sufficient though it won't cover all the possible heading cases20:22
clarkbactually maybe it could at least at small scale since there is a finite number ofthem20:22
fungiwe can probably create a test scenario on a held node from the same version as prod and then dump it into the db for the current held node20:23
clarkbThere are 8 formats/headings if you include "normal"20:26
clarkbso ya it should be straightforward to generate a pad or a set of pads that cover all 8 and then see what happens when loaded without ep_headings installed and with ep_headings2 installed20:26
clarkbreminder that I won't be around tomorrow and won't chair the meeting. I suspect that skipping is what will happen and we can asynchronously discuss the items above (and any others) until next week. tonyb that means you don't have to wake early :)23:27

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