Monday, 2026-01-26

opendevreviewDr. Jens Harbott proposed openstack/openstack-zuul-jobs master: Remove bionic nodeset from unit and functional test jobs  https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/95866808:56
fricklerclarkb: maybe in order to finally make progress with the legacy cleanup, we could create a base job that always fails and reference that for the remainders that cannot yet be deleted? https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/96540209:13
opendevreviewDr. Jens Harbott proposed openstack/openstack-zuul-jobs master: Add jobs for Python 3.14  https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/96851009:37
opendevreviewDr. Jens Harbott proposed openstack/openstack-zuul-jobs master: Add jobs for Python 3.14  https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/96851009:39
opendevreviewMatt Crees proposed openstack/openstack-zuul-jobs master: Add openstack-python3-jobs-nova template  https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/97321714:32
*** haleyb_ is now known as haleyb15:10
timburkeclarkb, password got rotated again, so i should be good to share the one that needed escaping: aU"HL]nX@7$&j!z16:48
clarkbtimburke: cool so now I think we can throw that in a test change applied to that role and see how it breaks with logging enabled16:48
timburkei sprinkled in some backslashes pretty liberally; not sure *all* of them were strictly necessary, but i could get the `docker login` part to work by encrypting aU\"HL]nX\@7\$\&j\!z16:49
clarkbpretty sure we have tests that cover all of this in zuul/zuul-jobs. I just need to find the right place to replace the password there then also drop the no_log: true lines16:49
timburkenew password definitely seems like it should be friendlier for ansible & json, but the promote job still fails when getting the JWT :-/16:50
timburkeyet something like `curl -v https://hub.docker.com/v2/users/login/ -H Content-Type:application/json -d '{"username": "screamingfrenzy", "password": "'"$(cat /tmp/secret)"'"}'` comes back 200...16:52
clarkbtimburke: remote:   https://review.opendev.org/c/zuul/zuul-jobs/+/974753 DNM Testing docker roles with fun characters in passwords17:01
clarkbtimburke: in theory that should exercise this end to end with the fake docker hub registry in the test job. Then we can address quoting once we get a concerete error message17:02
timburke👍17:02
clarkbtimburke: https://zuul.opendev.org/t/zuul/build/0c224ed70bf141f1ae8466ecb349524d/log/job-output.txt#1149-117317:09
clarkbtimburke: I think it could be the " something is expecting it to have a closing " and treating this as a string?17:10
timburkeyeah, seems like it's trouble using shlex to parse the command string from ansible -- maybe just need a couple `| quote` for https://opendev.org/zuul/zuul-jobs/src/branch/master/roles/upload-docker-image/tasks/main.yaml#L12 ?17:16
clarkbtimburke: yup just pushed that17:17
fungitimburke: have you gotten far enough to confirm the new simpler password/secret is fully working then?17:20
timburkefungi, no, it's not working yet -- JWT retrieval still doesn't work :(17:21
fungihrm17:21
timburkeyeah, it's weird. like i said, doing it manually with curl seems to work just fine...17:22
clarkbI got one job to pass with the | quote so now I suspect it is a matter of tracking down all the locations that need the escaping17:28
clarkbinterseting the consistent failure now is doing a push to the registry. I wonder if I need more quoting there to get it to treat the password correctly17:39
clarkbweird the jobs that use buildx work and those that don't fail but they both use the same docker login task17:53
clarkbI'm going to try and debug on the podman side to see if that gives any better indication of what might be unhappy17:53
clarkboh except podman also works. weird17:54
timburkeshould i maybe try using a different base job for swift's promote job?17:56
clarkbtimburke: there is the container instead of docker base jobs. But tehy do basically the same thing and are failing the same way in my testing17:58
clarkbthe container jobs are a bit more generic and can work with podman or docker17:58
clarkbwhen paired with podman in my testing change they work now. But docker consistently fails except in the buildx case for some reason. I think the problem needs to be fixed in these jobs and switching base jobs isn't really a solution. The workaround is the one we've discussed which is to use a password that doesn't have these problems17:59
clarkbas for why the current password isn't working are we sure there asn't a trailing newline or similar?17:59
clarkbthat is usually the problem when it seems to work when testing manually. Bsaically problem in the encryption serialization process rather than with the credential itself17:59
timburkegood thought -- i can try encrypting again; maybe there's a newline that gets ignored for the `docker login` bit but not the JWT...18:01
timburkeshould the ansible maybe strip trailing newlines there? or maybe find a way to use the same login mechanism for both upload and promote?18:04
fungithe upload jobs push images and (i think) create tags, while the promote jobs create and delete tags. does dockerhub maybe have some rbac scheme and the account in question lacks some but not all of the necessary permissions?18:08
clarkbquay does that but I don't think docker hub does18:09
timburkeit's the same account that was in use prior to re-keying everything; the jobs both used to work18:09
clarkbas far as stripping trailing newlines I think we've avoided doing that as we'd have to do it everywhere rather than simply encoding the data correctly18:10
clarkband in theory the test jobs I'm trying to make happy would ensure this can be done regardless of the password value consistently across the tooling. But that clearly doesn't work right now18:10
clarkbI think the failures may be due to localhost resolving to ::1 and docker only treating 127.0.0.1/8 as insecure by default18:19
clarkbso I need to explicitly list localhost as an acceptable insecure registry in the test setup?18:19
clarkbI suspect that docker updates have chagned some subtle behavior here in a way that our CI jobs didn't notice until just now. I wonder if these pass even without the password chnanges (i'm guessing no)18:35
opendevreviewMerged openstack/project-config master: Update description for Freezer projects  https://review.opendev.org/c/openstack/project-config/+/97400519:19
opendevreviewMerged openstack/project-config master: Update description for retired roles   https://review.opendev.org/c/openstack/project-config/+/96292519:22
clarkbtimburke: fwiw the issues I'm hitting have to do with how the test job sets up a docker registry using http instead of https. I don't think these issues imply further problems with the roles in production19:23
clarkbI think once I sort out the http problem that the variable quoting should stop being an issue with the | quote fix19:23
timburkesounds good19:26
funginoonedeadpunk: see my (post-approval) comment on that ^ change (962925), but if they're really retired then they missed switching the acl, i think?19:33
noonedeadpunkfungi: eh.... there's been a long story of retirement and un-retirement, and then retirement again I think when monasca got retired...20:01
noonedeadpunkBut you're pretty much right20:01
noonedeadpunkI will go and check the status of retirement20:02
fungithanks, not urgent it was just juping out at me as a potential inconsistency20:03
noonedeadpunkyeah, good catch, I didn't spot that when reviewing20:04
fungione of the benefits of the retired acl is that it prevents people from submitting changes for review20:04
opendevreviewDmitriy Rabotyagov proposed openstack/project-config master: Properly re-retire OSA Monasca roles  https://review.opendev.org/c/openstack/project-config/+/97477320:22
fungithanks!20:22
timburkeclarkb, looks like you were right: it was an issue with a trailing newline in the secret. promote works again now!21:10
timburkethanks for all the help clarkb and fungi!21:10
clarkbtimburke: great and the stack of changes I wrote for the zuul-jobs roles looks happy now so I think we can avoid this problem going forward21:10
fungiyeah, since it was being injected into a command string and not as the final argument, i can see where a stray newline could pose a potential problem21:17
timburkefungi, not where it had trouble! it was in fetching the JWT, at https://opendev.org/zuul/zuul-jobs/src/branch/master/roles/promote-docker-image/tasks/main.yaml#L13-L18 -- where presumably it was sending a body like ..."password": "<secret>\n"}22:13
fungiah, strange22:18
opendevreviewMerged openstack/project-config master: Simplify Zuul tenant config for providers  https://review.opendev.org/c/openstack/project-config/+/97446222:59

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