From a942ab7f153cc78e8ac4eb03dabb329fa0e73470 Mon Sep 17 00:00:00 2001 From: Steve Baker Date: Thu, 27 Aug 2026 10:58:34 +1200 Subject: [PATCH 1/2] Adjust ironic-conductor images for RHEL Changes to help with downstream onboarding Removed as not available in RHEL: - gdisk: Isn't actually required - syslinux-nonlinux: This means the end of supporting virtual-media-boot in BIOS mode, which is likely fine given the deprecation of BIOS boot - inotify-tools: required only by runlogwatch.sh[1]. Replacing with a python script which uses inotify directly[2] Renamed: - grub2-efi-x64: Actual package name is grub2-efi Added: - python3-numpy: The RPM version is compiled against system BLAS/LAPACK libraries. Also it avoids slow from-source compilation [1] https://github.com/openstack-k8s-operators/ironic-operator/blob/main/templates/common/bin/runlogwatch.sh#L13 [2] https://github.com/openstack-k8s-operators/ironic-operator/pull/795 --- .../ironic/buildrequirements.lock.master | 3 - containers/ironic/ironic-api/bindeps.txt | 3 + containers/ironic/ironic-api/builddeps.txt | 1 + .../ironic/ironic-conductor/bindeps.txt | 7 +- .../ironic/ironic-conductor/builddeps.txt | 3 +- containers/ironic/requirements.lock.master | 25 ++++---- containers/ironic/rpms.in.yaml | 6 +- containers/ironic/sources.txt | 4 +- .../ironic/upper-constraints.txt.master | 64 +++++++++---------- 9 files changed, 57 insertions(+), 59 deletions(-) diff --git a/containers/ironic/buildrequirements.lock.master b/containers/ironic/buildrequirements.lock.master index 3dee5ea8..55b4657e 100644 --- a/containers/ironic/buildrequirements.lock.master +++ b/containers/ironic/buildrequirements.lock.master @@ -7,14 +7,11 @@ hatch-fancy-pypi-readme==25.1.0 hatch-vcs==0.5.0 hatchling==1.32.0 maturin==1.15.0 -meson-python==0.20.0 -meson==1.12.0 packaging==26.3 pathspec==1.1.1 pbr==7.0.3 pluggy==1.6.0 poetry-core==2.4.1 -pyproject-metadata==0.12.1 semantic-version==2.10.0 setuptools-rust==1.13.0 setuptools-scm==10.2.1 diff --git a/containers/ironic/ironic-api/bindeps.txt b/containers/ironic/ironic-api/bindeps.txt index 970a5c85..feffcdf9 100644 --- a/containers/ironic/ironic-api/bindeps.txt +++ b/containers/ironic/ironic-api/bindeps.txt @@ -10,6 +10,9 @@ python3-pip # (requires cryptography<44), causing an ImportError at runtime. Bump this # pin once pyOpenSSL >= 25.0 lands in upper-constraints (drops the <44 cap). python3-cryptography-43.0.0-4.el10 +# python3-numpy is a dependency of websockify. The RPM version is compiled +# against system BLAS/LAPACK libraries. Building from source is very slow +python3-numpy # Runtime shared libraries for pip-compiled cffi and lxml libffi libxml2 diff --git a/containers/ironic/ironic-api/builddeps.txt b/containers/ironic/ironic-api/builddeps.txt index efe91e79..f75d51d1 100644 --- a/containers/ironic/ironic-api/builddeps.txt +++ b/containers/ironic/ironic-api/builddeps.txt @@ -8,6 +8,7 @@ python3-setuptools libffi-devel openssl-devel python3-cryptography +python3-numpy # Required to build lxml (ironic depends on openstacksdk which needs lxml) libxml2-devel libxslt-devel diff --git a/containers/ironic/ironic-conductor/bindeps.txt b/containers/ironic/ironic-conductor/bindeps.txt index c58cd40a..804d7e9b 100644 --- a/containers/ironic/ironic-conductor/bindeps.txt +++ b/containers/ironic/ironic-conductor/bindeps.txt @@ -9,11 +9,13 @@ python3-pip python3-cryptography-43.0.0-4.el10 # python3-systemd has C bindings to libsystemd (cannot install via pip) python3-systemd +# python3-numpy is a dependency of websockify. The RPM version is compiled +# against system BLAS/LAPACK libraries. Building from source is very slow +python3-numpy # Conductor: disk/ISO/image tools cpio dosfstools e2fsprogs -gdisk mtools parted qemu-img @@ -23,7 +25,6 @@ xorriso ipmitool openssh-clients # Conductor: process management -inotify-tools psmisc util-linux # Conductor: kickstart support @@ -33,5 +34,3 @@ httpd mod_ssl dnsmasq iproute -# Conductor: BIOS boot (not available on aarch64) -syslinux-nonlinux diff --git a/containers/ironic/ironic-conductor/builddeps.txt b/containers/ironic/ironic-conductor/builddeps.txt index 23de96e1..96692632 100644 --- a/containers/ironic/ironic-conductor/builddeps.txt +++ b/containers/ironic/ironic-conductor/builddeps.txt @@ -8,6 +8,7 @@ python3-setuptools libffi-devel openssl-devel python3-cryptography +python3-numpy # Required to build lxml (ironic depends on openstacksdk which needs lxml) libxml2-devel libxslt-devel @@ -17,7 +18,7 @@ rust cargo # PXE boot asset packages (downloaded and extracted by extract-boot-assets.sh) ipxe-bootimgs -grub2-efi-x64 +grub2-efi shim # Needed by extract-boot-assets.sh for rpm2cpio extraction and ESP image build cpio diff --git a/containers/ironic/requirements.lock.master b/containers/ironic/requirements.lock.master index bfc65fbe..48a01c38 100644 --- a/containers/ironic/requirements.lock.master +++ b/containers/ironic/requirements.lock.master @@ -1,7 +1,7 @@ -alembic==1.18.5 +alembic==1.19.1 amqp==5.3.1 attrs==26.1.0 -automaton==3.4.0 +automaton==3.5.0 bcrypt==5.0.0 cachetools==7.1.7 certifi==2026.7.22 @@ -29,8 +29,8 @@ jsonpointer==3.1.1 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 jwcrypto==1.5.8 -keystoneauth1==5.15.0 -keystonemiddleware==13.0.0 +keystoneauth1==5.16.0 +keystonemiddleware==13.0.1 kombu==5.6.2 lark==1.3.1 legacy-cgi==2.6.4 @@ -40,26 +40,25 @@ microversion-parse==2.1.0 more-itertools==11.1.0 msgpack==1.2.1 netaddr==1.3.0 -numpy==2.4.6 -openstacksdk==4.18.0 +openstacksdk==4.19.0 os-service-types==1.9.0 -os-traits==3.8.0 +os-traits==3.9.0 oslo-cache==4.3.0 oslo-concurrency==7.6.1 oslo-config==10.7.0 oslo-context==6.5.0 -oslo-db==18.1.0 +oslo-db==18.1.1 oslo-i18n==6.9.0 oslo-log==8.3.0 oslo-messaging==18.2.0 -oslo-metrics==0.16.0 +oslo-metrics==0.17.0 oslo-middleware==8.2.0 -oslo-policy==6.0.0 +oslo-policy==6.0.1 oslo-serialization==5.11.0 oslo-service==4.8.0 oslo-upgradecheck==2.8.0 -oslo-utils==10.1.1 -oslo-versionedobjects==3.11.0 +oslo-utils==10.2.0 +oslo-versionedobjects==3.12.0 osprofiler==4.4.0 packaging==26.3 paste==3.10.1 @@ -98,7 +97,7 @@ sushy==5.13.0 tenacity==9.1.4 testresources==2.1.2 testscenarios==0.6.2 -tooz==9.0.1 +tooz==9.1.0 typing-extensions==4.16.0 tzdata==2026.3 uhashring==2.5 diff --git a/containers/ironic/rpms.in.yaml b/containers/ironic/rpms.in.yaml index 48056e32..d28450c8 100644 --- a/containers/ironic/rpms.in.yaml +++ b/containers/ironic/rpms.in.yaml @@ -21,11 +21,9 @@ packages: - e2fsprogs - gcc - gcc-c++ - - gdisk - git-core - - grub2-efi-x64 + - grub2-efi - httpd - - inotify-tools - ipmitool - iproute - ipxe-bootimgs @@ -47,13 +45,13 @@ packages: - python3-cryptography-43.0.0-4.el10 - python3-devel - python3-mod_wsgi + - python3-numpy - python3-pip - python3-setuptools - python3-systemd - qemu-img - rust - shim - - syslinux-nonlinux - util-linux - xfsprogs - xorriso diff --git a/containers/ironic/sources.txt b/containers/ironic/sources.txt index 446a025d..adb7834c 100644 --- a/containers/ironic/sources.txt +++ b/containers/ironic/sources.txt @@ -1,2 +1,2 @@ -master upper-constraints https://opendev.org/openstack/requirements.git master eab1e430d8cb3ba465f699ceedff1684f8b9a2ea -master ironic https://opendev.org/openstack/ironic.git master 7bc6aba7dda0b8a863d0310af6f06925d30c9563 +master upper-constraints https://opendev.org/openstack/requirements.git master eb43999b1488f6acc9e38a713d759020e3180cf2 +master ironic https://opendev.org/openstack/ironic.git master a15e214438155990e74666e68aeddcdb8695d9ae diff --git a/containers/ironic/upper-constraints.txt.master b/containers/ironic/upper-constraints.txt.master index d2eedd5b..638dda04 100644 --- a/containers/ironic/upper-constraints.txt.master +++ b/containers/ironic/upper-constraints.txt.master @@ -39,7 +39,7 @@ setproctitle===1.3.7 pytest===9.1.1 a2wsgi===1.10.10 python-slugify===8.0.4 -cursive===0.3.0 +cursive===0.3.1 oslo.service===4.8.0 django-appconf===1.2.0 ntc_templates===9.2.0 @@ -62,10 +62,10 @@ pycadf===4.1.0 grpcio===1.83.0 sniffio===1.3.1 fixtures===4.3.2 -neutron-lib===5.0.0 +neutron-lib===5.0.1 XStatic-FileSaver===1.3.2.1 jaraco.functools===4.6.0 -oslo.metrics===0.16.0 +oslo.metrics===0.17.0 storage-interfaces===1.0.5 pydantic===2.13.4 pystache===0.6.8 @@ -85,7 +85,7 @@ moto===5.2.2 infi.dtypes.wwn===0.2.0 awscrt===0.36.2 pcre2===0.7.1 -python-freezerclient===6.4.0 +python-freezerclient===6.5.0 python-vitrageclient===5.4.0 py-pure-client===1.93.0 krest===1.3.8 @@ -117,7 +117,7 @@ responses===0.26.2 prompt_toolkit===3.0.53 croniter===6.2.4 horizon===26.0.0 -octavia-lib===3.11.0 +octavia-lib===3.12.0 python-watcherclient===4.10.0 MarkupSafe===3.0.3 doc8===2.0.0 @@ -141,7 +141,7 @@ jsonpath-rw===1.4.0 prettytable===3.18.0 vine===5.1.0 pathspec===1.1.1 -taskflow===6.3.0 +taskflow===6.4.0 arrow===1.4.0 semantic-version===2.10.0 ConfigArgParse===1.7.5 @@ -171,7 +171,7 @@ pydot===4.0.1 urllib3===2.7.0 graphviz===0.21 PyKMIP===0.10.0 -python-observabilityclient===1.3.0 +python-observabilityclient===1.4.0 whereto===0.6.0 networking-generic-switch===10.0.0 pywbem===1.9.0 @@ -185,7 +185,7 @@ cryptography===43.0.3 httpcore===1.0.9 URLObject===3.0.0 psycopg2-binary===2.9.12 -glance_store===5.6.0 +glance_store===5.7.0 openstack-release-test===8.5.0 requests-mock===1.12.1 os-apply-config===14.0.1 @@ -239,8 +239,8 @@ daiquiri===3.4.0 influxdb===5.3.2 funcparserlib===2.0.0a0 passlib===1.7.4 -cliff===4.15.0 -os-brick===7.1.0 +cliff===4.16.0 +os-brick===7.1.1 valkey===6.1.1 scp===0.16.1 lark===1.3.1 @@ -251,10 +251,10 @@ joblib===1.5.3 roman-numerals===4.1.0 google-api-python-client===2.198.0 castellan===5.8.0 -oslo.versionedobjects===3.11.0 +oslo.versionedobjects===3.12.0 enmerkar===0.7.1 webcolors===25.10.0 -aodhclient===3.11.0 +aodhclient===3.12.0 autobahn===26.7.1 SQLAlchemy-Utils===0.42.1 retryz===0.1.9 @@ -280,7 +280,7 @@ oslo.log===8.3.0 nodeenv===1.10.0 gossip===2.5.0 suds-community===1.2.0 -os_vif===5.1.0 +os_vif===5.2.0 qrcode===8.2 oslo.middleware===8.2.0 XStatic-mdi===1.6.50.3 @@ -292,7 +292,7 @@ os-ken===4.2.2 ujson===5.13.0 selenium===4.47.0 pytest-subtests===0.15.0 -mistral-lib===3.5.1 +mistral-lib===3.6.0 dogtag-pki===11.2.1 XStatic-Angular-UUID===0.0.4.1 dfs_sdk===1.2.27 @@ -319,13 +319,13 @@ metalsmith===2.5.0 s3transfer===0.10.4 text-unidecode===1.3 sphinxcontrib-svg2pdfconverter===2.1.0 -oslo.vmware===4.10.0 +oslo.vmware===4.10.1 autopage===0.6.0 gitdb===4.0.12 python-monascaclient===2.8.0 opentelemetry-api===1.44.0 frozenlist===1.8.0 -automaton===3.4.0 +automaton===3.5.0 os-service-types===1.9.0 keyring===25.7.0 elementpath===4.8.0 @@ -352,22 +352,22 @@ jsonpath-ng===1.8.0 XStatic-tv4===1.2.7.1 XStatic-JSEncrypt===2.3.1.2 python-cinderclient===9.9.0 -keystonemiddleware===13.0.0 +keystonemiddleware===13.0.1 django-formtools===2.7 XStatic-Spin===1.2.5.3 rich===15.0.0 -os-traits===3.8.0 +os-traits===3.9.0 typepy===1.3.5 SecretStorage===3.5.0 XStatic-Rickshaw===1.5.1.3 iso8601===2.1.0 -tooz===9.0.1 +tooz===9.1.0 idna===3.18 Hypercorn===0.18.0 yamlloader===1.6.0 protobuf===7.35.1 sushy===5.13.0 -python-neutronclient===13.0.0 +python-neutronclient===14.0.0 pika===1.4.4 oslo.cache===4.3.0 WebTest===3.0.7 @@ -378,7 +378,7 @@ pysaml2===7.5.4 requests-oauthlib===2.0.0 oslo.reports===3.9.0 bitmath===2.1.1 -ceilometermiddleware===3.12.0 +ceilometermiddleware===3.13.0 testrepository===0.0.22 sympy===1.14.0 Logbook===1.10.1 @@ -432,7 +432,7 @@ jmespath===1.1.0 cbor2===6.1.4 click===8.4.2 XStatic-smart-table===1.4.13.3 -kuryr-lib===3.4.1 +kuryr-lib===3.5.0 jsonpatch===1.33 respx===0.23.1 libsass===0.23.0 @@ -441,7 +441,7 @@ cotyledon===2.2.0 xattr===1.3.0 systemd-python===235 python-memcached===1.62 -openstacksdk===4.18.0 +openstacksdk===4.19.0 infi.dtypes.nqn===0.1.0 six===1.17.0 h2===4.4.1 @@ -459,13 +459,13 @@ tomlkit===0.15.1 etcd3gw===2.7.0 Flask-RESTful===0.3.10 GitPython===3.1.59 -python-ironicclient===6.2.0 +python-ironicclient===6.3.0 babel===2.18.0 XStatic===1.0.3 XStatic-Angular-FileUpload===12.2.13.2 python-openstackclient===10.2.1 pyzmq===27.1.0 -oslo.db===18.1.0 +oslo.db===18.1.1 simplegeneric===0.8.1 yappi===1.7.6 mbstrdecoder===1.1.5 @@ -475,7 +475,7 @@ wrapt===2.3.0 PySocks===1.7.1 oslo.privsep===3.12.0 sphinxcontrib-apidoc===0.6.0 -oslo.policy===6.0.0 +oslo.policy===6.0.1 hvac===2.4.0 pyeclib===1.8.0 rfc3986===2.0.0 @@ -504,7 +504,7 @@ propcache===0.5.2 cachetools===7.1.7 flexcache===0.3 sphinxcontrib-qthelp===2.0.0 -keystoneauth1===5.15.0 +keystoneauth1===5.16.0 statsd===4.0.1 proto-plus===1.28.3 python-keystoneclient===5.8.0 @@ -526,12 +526,12 @@ configparser===7.2.0 decorator===5.3.1 DateTimeRange===2.3.2 cffi===2.1.1 -python-cyborgclient===2.8.0 +python-cyborgclient===3.0.0 futurist===3.5.0 jsonschema===4.26.0 sphinxcontrib-devhelp===2.0.0 -python-blazarclient===4.5.0 -alembic===1.18.5 +python-blazarclient===4.6.0 +alembic===1.19.1 execnet===2.1.2 sphinxcontrib-programoutput===0.20 storpool.spopenstack===3.2.0 @@ -562,8 +562,8 @@ microversion_parse===2.1.0 python-linstor===1.29.0 filelock===3.32.3 python-tackerclient===2.5.0 -python-heatclient===5.2.0 -oslo.utils===10.1.1 +python-heatclient===5.3.0 +oslo.utils===10.2.0 requests-kerberos===0.15.0 itsdangerous===2.2.0 XStatic-jquery-ui===1.13.0.2 From 34385c6552a31e5b668dda7dfd452af95f4de0ef Mon Sep 17 00:00:00 2001 From: Steve Baker Date: Thu, 27 Aug 2026 12:56:27 +1200 Subject: [PATCH 2/2] Use dnf download for extracting bootloader assets This change makes the downstream pipeline green. --- .../ironic/ironic-conductor/Containerfile | 5 +++++ .../ironic/ironic-conductor/builddeps.txt | 10 ++++++---- .../ironic-conductor/extract-boot-assets.sh | 3 ++- containers/ironic/requirements.lock.master | 6 +++--- containers/ironic/rpms.in.yaml | 8 +++++--- containers/ironic/sources.txt | 2 +- containers/ironic/upper-constraints.txt.master | 18 +++++++++--------- 7 files changed, 31 insertions(+), 21 deletions(-) diff --git a/containers/ironic/ironic-conductor/Containerfile b/containers/ironic/ironic-conductor/Containerfile index 677a78ca..aa655d0c 100644 --- a/containers/ironic/ironic-conductor/Containerfile +++ b/containers/ironic/ironic-conductor/Containerfile @@ -22,9 +22,14 @@ ARG PIP_NO_BINARY="" ENV PIP_NO_BINARY=${PIP_NO_BINARY} # required to build rpds-py from source ENV MATURIN_NO_INSTALL_RUST=true +ENV DOWNLOADS_X64="ipxe-bootimgs-x86 grub2-efi-x64 shim-x64" +ENV DOWNLOADS_AARCH64="" +ENV DOWNLOADS_ALL="${DOWNLOADS_X64} ${DOWNLOADS_AARCH64}" COPY ironic-conductor/builddeps.txt /tmp/builddeps.txt RUN pkgs=$(cat /tmp/builddeps.txt | grep -v '^#' | grep -v '^$' | tr '\n' ' ') && \ + for dl in ${DOWNLOADS_ALL}; do pkgs=$(echo " ${pkgs} " | sed "s/ ${dl} / /g"); done && \ + pkgs=$(echo "${pkgs}" | tr -s ' ' | sed 's/^ //;s/ $//') && \ if [ -n "${pkgs}" ]; then microdnf -y install ${pkgs} && microdnf clean all; fi COPY ironic-conductor/pythonbuilddeps.txt /tmp/pythonbuilddeps.txt diff --git a/containers/ironic/ironic-conductor/builddeps.txt b/containers/ironic/ironic-conductor/builddeps.txt index 96692632..8784bf4b 100644 --- a/containers/ironic/ironic-conductor/builddeps.txt +++ b/containers/ironic/ironic-conductor/builddeps.txt @@ -17,10 +17,12 @@ rust # To build rpds-py from source cargo # PXE boot asset packages (downloaded and extracted by extract-boot-assets.sh) -ipxe-bootimgs -grub2-efi -shim -# Needed by extract-boot-assets.sh for rpm2cpio extraction and ESP image build +ipxe-bootimgs-x86 +grub2-efi-x64 +shim-x64 +# Needed by extract-boot-assets.sh for bootloader package extraction and ESP image build +dnf +dnf-plugins-core cpio dosfstools mtools diff --git a/containers/ironic/ironic-conductor/extract-boot-assets.sh b/containers/ironic/ironic-conductor/extract-boot-assets.sh index ec9b350f..b4ddacde 100755 --- a/containers/ironic/ironic-conductor/extract-boot-assets.sh +++ b/containers/ironic/ironic-conductor/extract-boot-assets.sh @@ -15,7 +15,8 @@ mkdir -p ${TARGET_DIR}/tftpboot/pxelinux.cfg # Download boot asset packages for x86_64 mkdir -p ${WORKDIR}/x86_64 cd ${WORKDIR}/x86_64 -microdnf download ipxe-bootimgs-x86 grub2-efi-x64 shim-x64 +dnf download ${DOWNLOADS_X64} +dnf clean all # Extract x86_64 RPMs for rpm in *.rpm; do diff --git a/containers/ironic/requirements.lock.master b/containers/ironic/requirements.lock.master index 48a01c38..be62e48b 100644 --- a/containers/ironic/requirements.lock.master +++ b/containers/ironic/requirements.lock.master @@ -40,7 +40,7 @@ microversion-parse==2.1.0 more-itertools==11.1.0 msgpack==1.2.1 netaddr==1.3.0 -openstacksdk==4.19.0 +openstacksdk==4.19.1 os-service-types==1.9.0 os-traits==3.9.0 oslo-cache==4.3.0 @@ -49,8 +49,8 @@ oslo-config==10.7.0 oslo-context==6.5.0 oslo-db==18.1.1 oslo-i18n==6.9.0 -oslo-log==8.3.0 -oslo-messaging==18.2.0 +oslo-log==8.3.1 +oslo-messaging==18.3.0 oslo-metrics==0.17.0 oslo-middleware==8.2.0 oslo-policy==6.0.1 diff --git a/containers/ironic/rpms.in.yaml b/containers/ironic/rpms.in.yaml index d28450c8..4af61b5a 100644 --- a/containers/ironic/rpms.in.yaml +++ b/containers/ironic/rpms.in.yaml @@ -16,17 +16,19 @@ arches: packages: - cargo - cpio + - dnf + - dnf-plugins-core - dnsmasq - dosfstools - e2fsprogs - gcc - gcc-c++ - git-core - - grub2-efi + - grub2-efi-x64 - httpd - ipmitool - iproute - - ipxe-bootimgs + - ipxe-bootimgs-x86 - libffi - libffi-devel - libxml2 @@ -51,7 +53,7 @@ packages: - python3-systemd - qemu-img - rust - - shim + - shim-x64 - util-linux - xfsprogs - xorriso diff --git a/containers/ironic/sources.txt b/containers/ironic/sources.txt index adb7834c..7de02e27 100644 --- a/containers/ironic/sources.txt +++ b/containers/ironic/sources.txt @@ -1,2 +1,2 @@ -master upper-constraints https://opendev.org/openstack/requirements.git master eb43999b1488f6acc9e38a713d759020e3180cf2 +master upper-constraints https://opendev.org/openstack/requirements.git master dcf1b2b8f1b2d6482c1af2edfc6f56eae0de4341 master ironic https://opendev.org/openstack/ironic.git master a15e214438155990e74666e68aeddcdb8695d9ae diff --git a/containers/ironic/upper-constraints.txt.master b/containers/ironic/upper-constraints.txt.master index 638dda04..d6576486 100644 --- a/containers/ironic/upper-constraints.txt.master +++ b/containers/ironic/upper-constraints.txt.master @@ -55,7 +55,7 @@ jwcrypto===1.5.8 Pint===0.25.3 oslo.i18n===6.9.0 jsonpath-rw-ext===1.2.2 -python-mistralclient===6.2.0 +python-mistralclient===6.3.0 oslo.context===6.5.0 rcssmin===1.2.2 pycadf===4.1.0 @@ -109,7 +109,7 @@ opentelemetry-exporter-otlp===1.44.0 rsd-lib===1.2.0 XStatic-Jasmine===2.4.1.3 googleapis-common-protos===1.75.1 -python-glanceclient===4.12.0 +python-glanceclient===4.13.0 prometheus_client===0.26.0 jaraco.classes===3.4.0 debtcollector===3.1.0 @@ -122,7 +122,7 @@ python-watcherclient===4.10.0 MarkupSafe===3.0.3 doc8===2.0.0 pymongo===4.17.0 -python-cloudkittyclient===6.1.0 +python-cloudkittyclient===6.2.0 soupsieve===2.9.2 sqlparse===0.6.0 oslotest===6.1.1 @@ -157,7 +157,7 @@ XStatic-roboto-fontface===0.8.0.1 pyudev===0.24.4 eventlet===0.41.2 openstack-doc-tools===4.0.3 -oslo.messaging===18.2.0 +oslo.messaging===18.3.0 jira===3.10.5 PyJWT===2.13.0 typing_extensions===4.16.0 @@ -244,7 +244,7 @@ os-brick===7.1.1 valkey===6.1.1 scp===0.16.1 lark===1.3.1 -python-zaqarclient===4.6.0 +python-zaqarclient===4.7.0 ldappool===3.0.0 hpack===4.2.0 joblib===1.5.3 @@ -276,7 +276,7 @@ annotated-types===0.8.0 pytest-xdist===3.8.0 XStatic-JS-Yaml===3.13.1.2 XStatic-term.js===0.0.7.1 -oslo.log===8.3.0 +oslo.log===8.3.1 nodeenv===1.10.0 gossip===2.5.0 suds-community===1.2.0 @@ -441,7 +441,7 @@ cotyledon===2.2.0 xattr===1.3.0 systemd-python===235 python-memcached===1.62 -openstacksdk===4.19.0 +openstacksdk===4.19.1 infi.dtypes.nqn===0.1.0 six===1.17.0 h2===4.4.1 @@ -463,7 +463,7 @@ python-ironicclient===6.3.0 babel===2.18.0 XStatic===1.0.3 XStatic-Angular-FileUpload===12.2.13.2 -python-openstackclient===10.2.1 +python-openstackclient===10.3.0 pyzmq===27.1.0 oslo.db===18.1.1 simplegeneric===0.8.1 @@ -490,7 +490,7 @@ XStatic-Json2yaml===0.1.1.1 boto===2.49.0 hyperlink===21.0.0 mitba===1.1.1 -python-masakariclient===8.8.0 +python-masakariclient===8.9.0 Werkzeug===3.1.8 outcome===1.3.0.post0 APScheduler===3.11.3