Thursday, 2024-07-25

opendevreviewJonathan Rosser proposed openstack/openstack-ansible-tests master: Bump Ansible version for tests repo  https://review.opendev.org/c/openstack/openstack-ansible-tests/+/92143408:09
opendevreviewJonathan Rosser proposed openstack/openstack-ansible-tests master: Remove legacy centos-8-stream job definition  https://review.opendev.org/c/openstack/openstack-ansible-tests/+/92240808:09
jrossernoonedeadpunk: do you have an idea about how we can adjust openstack_resources to use the cirros images already on the CI nodes?08:27
jrosserthey are already in /opt/cache/files https://opendev.org/openstack/project-config/src/branch/master/nodepool/elements/cache-devstack/source-repository-images08:28
jrosserwe need to make image_download_path point to that https://github.com/openstack/openstack-ansible-plugins/blob/master/roles/openstack_resources/tasks/image_upload.yml#L4508:30
opendevreviewDmitriy Rabotyagov proposed openstack/openstack-ansible master: Delete glusterd data along with container data  https://review.opendev.org/c/openstack/openstack-ansible/+/92491008:36
noonedeadpunkI think there was a way to point to a file rather then url08:43
noonedeadpunkso you can supply `filename` instead of `url` field for the image08:44
noonedeadpunkhttps://opendev.org/openstack/openstack-ansible-plugins/src/branch/master/roles/openstack_resources/tasks/image_upload.yml#L8908:44
noonedeadpunkbut then - I'd guess the file should be somehow on utility host....08:45
noonedeadpunkand then there's nothing in the role to transfer the image08:46
noonedeadpunkbut if we bind mount the folder to utility container :D08:47
jrosseriirc /openstack is mounted verywhere09:03
jrosserso we could symlink that one the host (i think this is also how we deal with installing services from the zuul repos with file:///)09:03
jrosserwhat we want to happen is the uri module to see that the file is already there in the download location and not get it again09:04
jrosserbut for outside CI we want it to download when the cache is not present09:04
jrosserbtw this is exactly the same issue i have with the magnum stuff were it downloads the huge images over and over because of the use of a tmpdir09:05
noonedeadpunkI think how we're skipping image download here - is fetching all images and selecting by checksum09:11
noonedeadpunklike if place this as first task: https://opendev.org/openstack/openstack-ansible-plugins/src/branch/master/roles/openstack_resources/tasks/image.yml#L24-L3409:13
noonedeadpunkbut yeah, then you kinda rely on checksum or some metadata in uploaded images09:13
noonedeadpunkso I was thinking in this direction rather then making tmp dir a permanent one09:16
jrossersure but directly before that its doing this https://opendev.org/openstack/openstack-ansible-plugins/src/branch/master/roles/openstack_resources/tasks/image_upload.yml#L31-L3609:16
* noonedeadpunk still struggling to understand wtf with uwsgi09:16
jrosserso every single time we get a different tmpdir and it downloads the image regardless?09:16
jrosseroh i see - you mean if you already know the checksum in glance then you could use that to check if downloading is needed09:17
noonedeadpunkright now yes. but not if we'd images | rejectattr('checksum', 'in', available_images | map(attribute='checksum'))09:18
noonedeadpunkor smth like that09:18
jrosserthats kind of ok until wanting to do format conversion09:18
noonedeadpunkor by some metadata/property/tag we set (or can set) to the image to filter for09:18
jrosserthe ansible we have for this knows how to turn qcow to raw before putting into glance becasue of ceph09:19
noonedeadpunkwe build images with dib in raw right away here on the contrary09:19
noonedeadpunkso why I'm a bit scared about not tmpdir - is that it might get huge really fast09:20
jrosseryes it could09:20
noonedeadpunkesp once you start dealing with win server + mssql or smth like that....09:23
noonedeadpunkso, what I did, was packing images, and then having 2 checksums - for packed and resulting image09:23
noonedeadpunkthen you can verify checksum right on download while still reject already existing ones from glance..09:24
noonedeadpunkI'd guess that might work with conversion as well?09:24
noonedeadpunklike add `url_checksum` property?09:24
noonedeadpunkbut dunno if conversion to raw will result in same sha each time or not...09:26
noonedeadpunkwe could also add some optional image_build_timestamp option and compare that instead of checksum09:26
jrosserseems there are lots of use cases09:27
jrosserwe dont have the engineering effort to build our own images09:27
jrosserso it's really a case of doing the best automation we can for uploading a list of upstream ubuntu/debian/fedora/whatever09:28
noonedeadpunkand proceed with download only if timestamp is more modern then uploaded09:28
noonedeadpunkbut isn't it harder to detect url for download upstream image then just run dib with pre-defined flags?09:28
noonedeadpunkanyway09:28
jrosseryeah i mean if the upstream image is broken in some way it's not my problem09:29
jrosserbut if the one i build is broken that it becomes my problem09:29
noonedeadpunkwell... it would be mine regardless who broke the image09:29
jrosser:)09:29
noonedeadpunkas end-users don't care where they're coming from09:29
noonedeadpunkbut that they work09:30
noonedeadpunkso yeah, we run a tempest job with the image to ensure image is working, and if it does - it's promoted as artifact09:31
noonedeadpunkso storing same set of images twice - would love to avoid that frankly speaking...09:31
noonedeadpunkbut yeah, worth putting some cycles into that for sure09:53
noonedeadpunkas current state is just annoying09:53
noonedeadpunkcrap, really don't get this uwsgi stuff... get pcre on 2 out of 3 keystone containers in infra lxc10:28
noonedeadpunkthe first one does not get it10:28
noonedeadpunkthe one that does not get it is the first which being ran against10:28
noonedeadpunkso likely some ordering issue...10:29
jrosserdoes it build the wheel first time?10:29
noonedeadpunkit does10:30
noonedeadpunkand then it apparently uses the wheel...10:30
jrosserbut actually what is there is some upstream thing rather than our wheel?10:30
noonedeadpunkas in python_venv_build log on containers I see wheel being donwloaded10:31
noonedeadpunkand seems it also kinda depends on presence of the libpcre not only on repo container, but also where it runs10:33
jrosserif it was dynamically linked, then totally10:34
jrosserthe -dev package would bring in the headers to be able to compile against the library10:35
noonedeadpunkbut then it's kinda inconsistent with how it works with ssl...10:35
jrosserbut the lib itself would be also needed in the target10:35
jrosserldd would tell you10:35
noonedeadpunkah....10:36
noonedeadpunkfair10:36
noonedeadpunkand libssl is jsut default present everywhere I'd guess10:36
gokhanhello folks, how can we change deployment node? is it enough to move /opt/openstack-ansible /etc/openstack_deploy/ /etc/ansible and run bootstrap-ansible.sh script? 10:38
jrosseriirc this is why there are separate package lists in the pyhton_venv_build role for build host and target host10:38
noonedeadpunkjust what makes things worse, is that uwsgi uses completely own setup.py thing10:38
noonedeadpunksome profiling, etc..10:39
jrosseryes, i have memory of fixing an upstream bug in uwsgi and it was 8-O10:39
noonedeadpunkgokhan: it's enough to move /etc/openstack_deploy and run bootstrap10:39
gokhannoonedeadpunk, ok thanks :)10:40
noonedeadpunk /opt/openstack-ansible - is just a clone, if you don't have any changes in there (which ideally you shouldn't) - just clone and checkout to the same version10:41
noonedeadpunkso the only folder that _really_ matter on deploy host is openstack_deploy one - rest should be just brough from git and be stateless10:42
noonedeadpunkjrosser: yeah, you're completely right about that10:43
noonedeadpunkkeystone is not smallest/fastest playbook to retry :(10:47
gokhannoonedeadpunk, yes I don't have any customization on /opt/openstacxk-ansible. this week I have upgraded one of my env from victoria-em to antelope seamlessly :) 10:47
noonedeadpunkah, that sounds really nice!10:47
noonedeadpunkquite some changes we made since victoria10:48
gokhanyes there are lots of changes from victoria to antelope. now all of my deployments are in antelope and next week ı will start to try upgrading from antelope to caracal in test environment. 10:52
jrosseri'm going to take a look at whats happening with the ceph job, feels broken11:07
noonedeadpunkcrap, really don't understand what's going on....11:16
noonedeadpunkit's somehow each time results slightly differently....11:17
jrosserindeed11:17
jrosser^ i mean for ceph11:17
jrossersame for uwsgi?11:17
noonedeadpunkyeah, I was talking about uwsgi :D11:18
noonedeadpunklike it would be quite nice to somehow override the `required_pcre` during build: https://github.com/unbit/uwsgi/blob/master/uwsgiconfig.py#L110211:19
opendevreviewDmitriy Rabotyagov proposed openstack/ansible-role-uwsgi master: DNM: Install pcre on destination hosts  https://review.opendev.org/c/openstack/ansible-role-uwsgi/+/92492211:42
noonedeadpunkit kind of feels we're doing smth wrong with storage of wheels11:47
noonedeadpunkso uwsgi wheel is built totally with pcre support: https://paste.openstack.org/show/b67LDrMEOIq9ktejTYjA/11:49
jrosserfor ceph this is not reproducible locally https://paste.opendev.org/show/bivSnUwkyC0MlpsUFq1s/11:50
noonedeadpunkit somehow feels like smth I saw...11:52
jrosseryeah i saw a whole bunch like this failing11:53
noonedeadpunkand locally you ran also metal, not lxc?11:53
jrosserthere was discussion of new setuptools vs. packaging module too for u-c11:53
jrosserbut your uwsgi think11:53
jrosseris the wheel name the same as the one you would get anyway from pypi?11:53
jrossername / version11:54
noonedeadpunkyeah, I think it is11:54
jrosseri suspect the trouble lies there11:54
jrosserwith perhaps relative precedence of our local wheels and the upstream ones11:54
noonedeadpunkI feel it might also have smth to do with tags...11:55
noonedeadpunkas this time I even get `--find-links", "http://localhost/os-releases/29.1.0.dev63/ubuntu-22.04-x86_64/wheels"`11:55
noonedeadpunkand connection failure as a result11:56
noonedeadpunkhuh11:57
noonedeadpunkthis does not get included apparently https://opendev.org/openstack/openstack-ansible/src/branch/master/playbooks/os-keystone-install.yml#L29-L3311:58
noonedeadpunk* https://opendev.org/openstack/openstack-ansible/src/branch/master/playbooks/os-keystone-install.yml#L73-L7711:58
noonedeadpunkSo we'd need to do smth like that I believe: https://review.opendev.org/c/openstack/openstack-ansible/+/92430711:59
jrosserfor any of our normal "install from source" openstack things we get a version like `magnum==18.0.1.dev4` which is going to win over anything in pypi very obviously11:59
noonedeadpunkwe should always win over pypi...12:00
noonedeadpunkI _think_ so at least12:01
noonedeadpunkWhat I'm kind of annoyed about, that seems we're wasting plenty of time inspecting all venv_default_pip_install_args and our repo container for each single package12:02
noonedeadpunk*inspecting pypi12:03
jrosseri think it's "install this thing across all the indexes you have"12:06
noonedeadpunkhttps://pastebin.com/raw/cfKYdUtL12:07
noonedeadpunkso after all it does fetch the correct one12:08
noonedeadpunkok, so I think I was fighting with tags after all...12:09
noonedeadpunkAnd I was using them heavily to speed things up a bit...12:12
noonedeadpunkpf12:24
opendevreviewDmitriy Rabotyagov proposed openstack/openstack-ansible-os_keystone master: Do not install uWSGI as part of Keystone  https://review.opendev.org/c/openstack/openstack-ansible-os_keystone/+/92492812:28
noonedeadpunkthis ^12:28
noonedeadpunkso role was finding already existing wheel for uwsgi that was built not with wsgi role, but just by keystone, and it was used down the line....12:29
noonedeadpunk /o\ 12:29
gokhanhow can we open debug mode of services which running behind uwsgi ? 12:34
gokhanok I find it disable-logging=false in uwsgi 12:41
opendevreviewDmitriy Rabotyagov proposed openstack/ansible-role-uwsgi master: DNM: Install pcre on destination hosts  https://review.opendev.org/c/openstack/ansible-role-uwsgi/+/92492213:13
opendevreviewDmitriy Rabotyagov proposed openstack/openstack-ansible master: Properly apply `always` tag to install_defaults  https://review.opendev.org/c/openstack/openstack-ansible/+/92493813:59
noonedeadpunkany guess wtf is that? https://opendev.org/openstack/openstack-ansible-os_keystone/src/branch/master/defaults/main.yml#L252-L26014:18
jrosserthis all looks legacy from when keystone role deployed nginx14:30
jrosserand making it serve on localhost for then serving onward by the webserver?14:31
noonedeadpunkbut it's kind of used for apache: https://opendev.org/openstack/openstack-ansible-os_keystone/src/branch/master/templates/keystone-httpd.conf.j2#L14514:31
noonedeadpunkfor some reason14:31
noonedeadpunkand like... why just not to use 500014:32
jrosserbecasue apache listens there?14:32
noonedeadpunkah14:33
jrosserthe rest of that apache config is handling federation / websso / whatever also on port 500014:33
jrosserand everything not that is passed to the keystone service14:33
jrosserlikley could have two backends in haproxy and have some routing rules to decouple those14:34
noonedeadpunkand we have a logic in uwsgi role that does not allow not to listen on http14:40
noonedeadpunkhttps://opendev.org/openstack/ansible-role-uwsgi/src/branch/master/templates/uwsgi.ini.j2#L16-L2114:40
noonedeadpunkso that's why we need to have both sock and http, while http does not make sense at all14:40
noonedeadpunkyeah, finally, uwsgi seems happy: https://zuul.opendev.org/t/openstack/build/8eb0d0a0ed46414bb3fb0309a49d1b0d/log/logs/host/keystone-wsgi-public.service.journal-14-33-16.log.txt#12-1414:41
jrosserthats just allowing one or more bind addresses? i think i misunderstand14:46
noonedeadpunkyeah, but it doesn't allow none adresses and have a unix socket used instead14:47
jrosseraaah14:47
noonedeadpunkso for keystone the only thing that;s used with apache is this: https://zuul.opendev.org/t/openstack/build/8eb0d0a0ed46414bb3fb0309a49d1b0d/log/logs/etc/host/uwsgi/keystone-wsgi-public.ini.txt#3014:48
noonedeadpunkbut not L614:48
noonedeadpunkL6 is just there as we can't avoid having it I guess14:48
jrosseri wonder if you can set it to an empty list14:48
noonedeadpunkoh, you can14:49
noonedeadpunkI was thinking only about empty value, not about empty list14:49
noonedeadpunkthanks!14:49
jrosseris iterable, but no items14:49
noonedeadpunkyep, true14:49
opendevreviewDmitriy Rabotyagov proposed openstack/openstack-ansible-os_keystone master: Remove excessive bindings for uWSGI  https://review.opendev.org/c/openstack/openstack-ansible-os_keystone/+/92494514:56
opendevreviewDmitriy Rabotyagov proposed openstack/openstack-ansible-os_keystone master: Remove excessive bindings for uWSGI  https://review.opendev.org/c/openstack/openstack-ansible-os_keystone/+/92494515:00
opendevreviewDmitriy Rabotyagov proposed openstack/openstack-ansible-tests stable/2024.1: Bump Ansible version for tests repo  https://review.opendev.org/c/openstack/openstack-ansible-tests/+/92143515:16
opendevreviewDmitriy Rabotyagov proposed openstack/openstack-ansible master: Properly apply `always` tag to install_defaults  https://review.opendev.org/c/openstack/openstack-ansible/+/92493815:31
opendevreviewDmitriy Rabotyagov proposed openstack/ansible-role-uwsgi master: Install pcre on destination hosts  https://review.opendev.org/c/openstack/ansible-role-uwsgi/+/92492215:34

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