aboutsummaryrefslogtreecommitdiff
path: root/docker/ironic/ironic-conductor
AgeCommit message (Collapse)AuthorFilesLines
2026-07-06Migrate to pyproject.tomlMichal Nasiadka1-76/+0
[tool.setuptools.data-files] does not support recursive directory installation. The old setup.cfg [files] worked because PBR's FilesConfig.expand_globs() used os.walk() to expand docker/*, but this hook is not triggered by the pbr.build PEP-517 backend. Move docker/ into kolla/ and use [tool.setuptools.package-data] instead. Update kolla_worker._get_images_dir() to check the kolla package directory first so both editable and regular installs work. Change-Id: I4fc452c03740ef22ebbb4e8d0d86c4f4783e2d09 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2026-06-24kolla-build: fix build-date LABEL invalidating Docker layer cacheMichal Nasiadka1-1/+1
The build-date label was rendered into a LABEL instruction on line 3 of every Dockerfile template, immediately after FROM. Because Docker invalidates the cache for a changed instruction and all subsequent layers, a date change caused a full rebuild of every image on each new calendar day, even when nothing else had changed. Fix this by removing build-date from the Dockerfile templates and applying it as a --label argument at build time via image.labels. Labels passed on the build command line are not part of the Dockerfile cache key, so the date is still recorded in the image metadata without affecting layer caching. Change-Id: I8ef0d85bab1a999a4d09f7cbf0c088ca00fdcf77 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2025-07-16Move to CentOS Stream 10Michal Nasiadka1-1/+1
Known missing packages: - mod_auth_mellon - missing SAML support in Keystone/Horizon - built in Kolla COPR - glusterfs-fuse in manila-share - built in Kolla COPR - collectd/telegraf - no opstools repository - redis - needs a switch to valkey - python3-ethtool - not required for neutron-mlnx-agent since 6 years [1] Building packages in Kolla COPR is a temporary solution until these show up in EPEL10. [1]: Id2cae3ac9ff049e9fc8225551f99e1e99a87fc65 Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/951751 Change-Id: I7074fabcf95184fcfd2561648ae1e05acfb0bc11 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2025-02-26Add mtools package to ironic-conductor imageDr. Jens Harbott1-3/+5
In certain deployments ironic-conductor needs to create floppy images to mount in virtual media. This needs the mtools package installed. Change-Id: I00ccc47f7a993f13e2b2feb3f6a2565dad32b80c
2024-11-15Add mechanism for patching files in containersMichal Arbet1-0/+2
This patch adds a way to patch files in a Docker image built by Kolla. This is very useful for several reasons, specifically: - Custom modifications - The stable branch of some library has a fix but no pip package has been released - Eliminates the need to package your own pip packages - Eliminates the need to invent your own versioning to prevent upstream versioning - Eliminates the need to manage a pip server - In other words, it eliminates the need to get a wheel into the image and install it manually using any method not previously mentioned It is also highly desirable because, although Kolla can replace the source for a service with a custom URL for a tarball or its own Git repo, it cannot do this for dependencies pulled from pip. I would also like to point out that this is a feature with its own code path and works only if the user "inserts" a patch into the folder patches/docker-image/something.patch and creates an analogous series file for patch source code. Simply said, this code will never interfere with the upstream build process since this feature is not intended for use in upstream. It is rather meant for downstream users who know what they are doing. Now they just have an option to patch their images. Everything works on all layers of the Docker image and stores a report of applied patches which can then be seen in /etc. This mechanism is similar as debian patch quilt. Change-Id: I61d0790c5d4d070b7ea9e8c99c0a76ff5d22bf9d
2024-10-03aarch64: Exclude syslinux from ironic conductor packagesBartosz Bezak1-1/+5
The 'syslinux' package is not available on aarch64, so it is only included in the ironic conductor packages for x86_64 systems. Related-Bug: #1749780 Change-Id: I3eea308a0a70e47dd3b185eece106185b25616f5
2024-09-23Add missing iso packages to ironic-conductorRafal Lewandowski1-0/+4
Closes-Bug: #2067133 Change-Id: I097ad8988a4707173c19006d83b4d76cec5d0940
2023-08-29Add ironic-prometheus-exporterRobin Klostermeyer1-1/+9
This commit adds the ironic-prometheus-exporter, following the conventions used by the previously integrated exporters. '[The] Ironic Prometheus Exporter is a Tool to expose hardware sensor data in the Prometheus format through an HTTP endpoint.'[0] [0] https://opendev.org/openstack/ironic-prometheus-exporter Change-Id: If833f1f4a33c27cdc941dcc7cd5bbb06b26e1eaf
2022-04-09docker: drop binary partsMarcin Juszkiewicz1-85/+33
Big patch drops all mentions of binary images support. Suggestions are welcome how to split it into parts or handle better. Change-Id: I5d5a46c6ce7734ceb8b844e17b43e359d7cac6e3
2020-04-15Remove support for CentOS 7Marcin Juszkiewicz1-63/+9
With the move to RHEL/CentOS 8 we no longer have Python 2 in our images so there is no need for checking which Python version (2.x or 3.x) is used inside of containers. We also no longer have to support yum as a value for distro_package_manager. Partially-Implements: blueprint centos-rhel-8 Change-Id: Ie45cf3465fedddbde7856961527421883ba3d5c9
2020-03-01Add block labels to all DockerfilesChristian Berendt1-0/+2
Change-Id: I9692dda817ef134d647247431565e1b58cf9da41
2020-02-26Actually disable EPEL, and epel-modularMark Goddard1-1/+4
The disable_extra_repos macro accepts a list as its only argument. We were calling it like this to disable EPEL: disable_extra_repos('epel') The macro interpreted this as a request to disable three repos, e, p, l. Thanks Python! Type validation to be improved separately. Additionally, on CentOS 8 the EPEL repository was not included in the repository mapping file, repos.yaml. There is also another EPEL repository on CentOS 8, epel-modular, which is enabled by default after installing epel-release. This change adds mappings for epel and epel-modular repos to repos.yaml, and fixes the disabling of epel in the base image, as well as disabling epel-modular. There are some cases where EPEL is still used (it seemed a bit too easy...), and the repository has been enabled for these images: * bifrost-base (nginx) * ironic-conductor (C7 only, shellinabox) * freezer-base (C7 only, trickle) * gnocchi-base (C8 binary only, python3-boto3) * mariadb (pv) * mongodb (C7 only, mongodb) * nova-spicehtml5proxy (C7 only, spice-html5) * telegraf (C7 only, python2-pip) A few other things were changed: * ironic-conductor does not require the ceph repo * python3-pika is no longer installed in the openstack-base image Related: blueprint remove-epel Change-Id: I3761825239dfc462072383cde6276c4fb3e1bf12
2020-02-06Add ssh clients to Ironic Conductor containerAntony Messerli1-0/+4
Adds ssh clients to Ironic Conductor container for ansible deploy interface. Change-Id: Ib995c6ebe5ee76ee1a39e4b5918a79bd61b87a01 Closes-Bug: #1862079
2020-01-30Adds python3-systemd for ansible deploy interfaceAntony Messerli1-0/+3
When doing a source install, ironic doesn't have python3-systemd as a dependency and the current ironic-conductor container doesn't install the required dependencies which causes the ansible deploy interface to fail with the error, "Systemd bindings do not exist". This adds the needed dependencies when doing a source build. This installs the needed files for both rpm and deb builds on python 2.x and 3.x. Change-Id: I5d1bcb0f7d7902b4e122c12697483433bcf52ca2 Closes-Bug: #1861427
2020-01-29CentOS 8: Remove shellinabox from ironic-conductorMark Goddard1-2/+6
shellinabox is used by ironic-conductor to provide a browser-based shell to access the consoles of nodes. It is not used by all console drivers, and is not used in the integration with nova serial consoles. The package was previously installed from EPEL7, but is not currently provided by EPEL8. This change removes the package to allow the ironic-conductor image to build. Change-Id: I210d9fddd6948dab1feb5abf59a50bce86f21f0f Partially-Implements: blueprint centos-rhel-8
2020-01-29CentOS 8: Update packages in imagesMark Goddard1-4/+12
* Some further changes for python2 vs python3 packages * Allow rabbitmq 3.7.*, since a newer erlang is available * Switch from qemu-img-ev to qemu-img on CentOS 8 * bridge-utils no longer available on CentOS 8 * libvirt-daemon-driver-lxc no longer available on CentOS 8 * Mark some more images buildable for CentOS 8 Change-Id: Iaf5b68ff6d944ae730ca0b1d5832172c106a6c08 Partially-Implements: blueprint centos-rhel-8 Partially-Implements: blueprint centos-rhel-python-3
2019-11-29Enable repos only when neededMarcin Juszkiewicz1-0/+2
Disable external repositories by default and enable only when needed. Depends-on: https://review.opendev.org/696480 Implements: blueprint repos-off-by-default Change-Id: Icf2a8397a8349e0fe849d88d160409fd234480a9
2019-09-18Remove support for OracleLinuxMark Goddard1-1/+1
We have agreed to remove support for Oracle Linux. http://lists.openstack.org/pipermail/openstack-discuss/2019-June/006896.html Change-Id: I961dfba1aeef2c509ecdaf376dfe6928926ffb39 Depends-On: https://review.opendev.org/682858
2019-06-06Debian/Ubuntu: more python3 packages for binaryMark Goddard1-3/+3
backport: Stein During the switch to Stein UCA, we did not switch all packages to python 3 for Debian/Ubuntu binary images. This change switches some more of those packages. Change-Id: I0bff21384d88ea678608392de2db1ba418c96665 Co-Authored-By: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
2019-04-24Install udevadm in ironic-conductor imageMark Goddard1-0/+11
backport: rocky, queens A dependency on udevadm was recently added to ironic-lib: https://review.opendev.org/#/q/I9db48a3462422749290bbb887c14816734ab0478 Change-Id: I6c5746606ab59fd88e35525ecc17a62bfa9211e6 Closes-Bug: #1825784
2019-03-13Use virtual package for ansibleAlex Schultz1-2/+2
Rather than specify ansible-python3 or ansible, we can try the virtual package for the python specific version of ansible. Change-Id: I246edfaf8cc0ee12852c18c6f9027e48880797a4
2019-03-12Add python3 packages for RHEL systemsAlex Schultz1-6/+22
RDO is currently working on python3 support for the next version of CentOS/RHEL based systems. This package uses the distro_python3 flag that was added as part of I4028991bad92c0e8e21066cc4173c06ce5eba393 to use the python3 specific package names. This change only adds python3 package names for RHEL systems. Conflicts-With: https://review.openstack.org/#/c/636457/ Change-Id: Iad6b70b433a0dd1b0f8ae6790fd280594517661a Related-Blueprint: python3-support
2019-02-28debian/ubuntu: make use of Python3 based packagesMarcin Juszkiewicz1-2/+2
Both Ubuntu Stein UCA and Debian 'buster' migrated their OpenStack packages to Python 3. Note that Debian 'buster' is not released yet and contains Rocky packages. Stein ones will be available later. Co-Authored-By: Lee Yarwood <lyarwood@redhat.com> Co-Authored-By: Eduardo Gonzalez <dabarren@gmail.com> Change-Id: I160f79cc57f54ec3eac857c5babd1a6e2656d228
2019-01-17Use base_package_typeAlex Schultz1-4/+4
This change updates the docker files to use base_package_type instead of doing specific distro checks for the rhel/deb generic cases. The base_distro is still available and is used when a specific distro needs a customization but if the differences are purely rpm vs deb, then the base_package_type can be used. Change-Id: I8d720bb185df65a0178061ccf20b1ab2265da2c5
2018-11-07Do not load iscsi_tcp from within a container.Cédric Jeanneret3-9/+0
The module must be loaded from the host directly in order to avoid any SELinux issues. There are examples in kolla-ansible and tripleo-heat-templates: - https://review.openstack.org/#/c/605624/ - https://review.openstack.org/#/c/605450/ Change-Id: Ica68a109c3ed577e6a339ef315b576061cd557e5 Related-Bug: 1794550
2018-10-05Add ironic-staging-drivers to ironic-conductor for RHEL family binary and ↵Dan Williams1-2/+4
source based builds. Change-Id: I1a7533c738edeff4e696e95b9b267c23a78003e9 Closes-Bug: #1796194
2018-08-06Using qemu-kvm on rhelAttila Fazekas1-1/+9
qemu-kvm-ev was used with centos, in case of rhel when you have access to the virtualisation related channels qemu-kvm pulls qemu-kvm-rhev which is the recommended one. qemu-kvm-ev was referenced by devstack long time ago, but the explicit package install on rhel family today is qemu-kvm and not qemu-kvm-ev. I am unsure about the other distros, so just changing rhel. Change-Id: If6d1e0367730fa80284395be33674a7cd1465389
2018-07-10Stop using deprecated rpm package namesMartin André1-2/+2
These packages produce a warning during the installation, we should switch to their new names, usually to be specific about their use of python2. Change-Id: I0a80e822f64222d9a32aabd1fd834bcf794d6320
2018-02-14Add socat to base imageMartin Mágr1-4/+0
We would need socat tool to perform healthchecks on the various containers. Closes-Bug: #1749227 Change-Id: Ibda77a8d041d894f5efac6578e52b11651bca97f
2017-12-12ironic-conductor: update driver dependencies for QueensDmitry Tantsur1-8/+8
* Added python-sushy for CentOS/RHEL for the redfish driver (introduced in the Pike release). * Added ansible and systemd-python for ansible driver (introduced in the Queens cycle). * Added python-scciclient as it was packaged for CentOS/RHEL. * Removed seamicroclient, pyghmi and pyremotevbox as the corresponding drivers were removed. * Removed wsman as no drivers use it any more: the AMT driver was removed, the iDrac driver switched to python-dracclient. Most of removals happened as part of the Ocata driver cleanup: https://docs.openstack.org/releasenotes/ironic/ocata.html#id9 Change-Id: I8774a45bb1cfcdf5c3b675e235fb074af4a9646c
2017-08-18Fix wrong sudoers file syntax in ironic-conductorguochao1-1/+1
This error make the container keep restarting. Change-Id: I4cdd77eededb6e32282f7a2b33be7ea1181d68b6 Closes-Bug: #1711495
2017-06-29Add e2fsprogs and xfsprogs to ironic-conductorMark Goddard1-4/+12
These are required for formatting ext and XFS ephemeral disk partitions when using the iSCSI deployment drivers. Change-Id: Icd187cdd1eb0cb36fbda6c04304bd25d31199bd7 Closes-Bug: #1701320
2017-05-03Override image's meta info.Jawon Choo1-1/+1
centos based images have wrong label info, these changes fix own image's name and build-date. Change-Id: I1d13f8f386c8db12b5fbe5f8ecbbf9e3fbb4ba1c Closes-Bug: #1680341
2017-04-20Use LABEL instead of MAINTAINER (deprecated) in all Dockerfile.j2Chen1-1/+1
Use LABEL instruction instead of MAINTAINER (deprecated) instruc- tion as suggested by Docker's official dockerfile guide. docs.docker.com/engine/reference/builder/#maintainer-deprecated Closes-Bug: #1683652 Change-Id: Ie87a1ddf31aefcd0b623fd2837d78de420e76898
2017-04-04debian: enable all images enabled for UbuntuMarcin Juszkiewicz1-2/+2
Debian support is not maintained in Kolla so it got a bit behind Ubuntu one. This changeset enables Debian for all images. Jessie (even with backports) may be too old for some images though. Also unify distro check to ['debian', 'ubuntu'] to keep alphabetical order like it is done for RPM distributions. Partially-Implements: blueprint multiarch-and-arm64-containers Change-Id: I056233fbfa277e0e2360c07c3f80d9558c554357
2017-04-04Merge "Use separate sudoers for ironic conductor modprobe"Jenkins2-1/+4
2017-03-31Use separate sudoers for ironic conductor modprobeMark Goddard2-1/+4
The original fix (8b101b28a1040fd6b4753c09364106274d7e6e09) for bug 1676466 added unnecessary entries to the sudoers file in the ironic-base image. These included a rootwrap entry pointing to the virtualenv used by source type images (not present in binary type images) and a modprobe iscsi_tcp which is only required by the ironic-conductor image. This change adds a single sudoers file for the iscsi_tcp modprobe to the ironic-conductor image and reverts to the common pattern of adding a sudoers file to ironic-base only for source type images. Change-Id: I89f1c4bd741de9ba184f14fcbcb708636616e420 Closes-bug: #1678143 Related-bug: #1676466 Related-bug: #1667864
2017-03-28Alphabetize packagesEduardo Gonzalez1-23/+23
Some images have packages sorted alphabetically and some not. Unify common style between all images. Change-Id: I906ed89c10b12886665618752f525ba71d83d991
2017-03-23ironic-conductor: add missing comma for centos/source buildMarcin Juszkiewicz1-1/+1
Due to missing comma images built for centos/source lacked dosfstools and util-linux packages. Closes-Bug: #1675414 Change-Id: I2fa284890f038c5dcf18669ed19c123f6850d4a2
2017-03-14Load iscsi_tcp module when starting ironic-conductorJeffrey Zhang2-0/+6
ironic-conductor depends on iscsi_tcp module Change-Id: I1dd7d1a8cd67bbdfc1262b39aa96997c12681900 Closes-Bug: #1672245
2017-02-21Merge "Install shellinabox and socat packages in ironic"Jenkins1-4/+12
2017-02-20Install shellinabox and socat packages in ironicJeffrey Zhang1-4/+12
These packages are needed by ironic console. Change-Id: Ieff5142935fb55cc9860d6cd4f195da095a01449 Closes-Bug: #1666131
2017-02-17Use install-pip macro in most source imagesChao Guo1-1/+6
1. Enable customization of pip packages in source branch of most images 2. All pip packages install uniformly through install-pip macro, user can easily customize his own pip command (For example using a mirror) Co-Authored-By: Mauricio Lima <mauriciolimab@gmail.com> Change-Id: If09582039f690fa4136e8f33200d5da15e092da7
2017-02-05Remove include_header and include_footer in all DockerfilesJeffrey Zhang1-1/+0
include_header and include_footer parameter is already removed, remove them in all Dockerfiles. Add missing footer block. Change-Id: I90da03eb9f95a3827361d5f5ede65fde7d6be2b3
2016-11-20Install mkfs.vfat tool in ironic-conductor imageJeffrey Zhang1-0/+4
Change-Id: I969a769cf349b130035b9136e570849782e9247a Closes-Bug: #1642578
2016-11-03Remove Fedora supportChristian Berendt1-2/+2
Closes-bug: #1616387 Change-Id: Id97f88b9baa3d48d33ce120962450a374282d044
2016-10-20Install the packages needed by different ironic driversJeffrey Zhang1-2/+22
Change-Id: If3f30f58eae31753d34e94d030d1f37d9a1e6c47 Closes-Bug: #1635128
2016-10-04Add hexdump package for ironic-conductor containerJeffrey Zhang1-0/+4
On RedHat family distro, util-linux provides the hexdump. On Debian family distro, bsdmainutils provides the hexdump. Change-Id: If762f570639782ca477ae4697f354d88c992613b Closes-Bug: #1627755
2016-10-03Fix ironic failedJeffrey Zhang1-4/+18
* Mount system folder in ironic-conductor * Add package need in ironic-conductor * Fix the log path issue * Add ironic sudoer in ironic-base * Fix credential issue * Do not start nova-compute when enable ironic Closes-Bug: #1629334 Change-Id: If9d478c6513de37465403d458a88cf0da7ebd8a6
2016-09-19Fix ironic Dockerfilecaowei1-0/+1
1.Change "ironic_base" to "ironic_inspector" in ironic-inspector Dockerfile 2.add {% block footer %}{% endblock %} TrivialFix Closes-Bug: #1625131 Change-Id: Ibd02676e91a9b00cb1a46e7d00eaa3ab2c6c6412