aboutsummaryrefslogtreecommitdiff
path: root/docker/nova/nova-compute
AgeCommit message (Collapse)AuthorFilesLines
2026-07-06Migrate to pyproject.tomlMichal Nasiadka2-117/+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-10-02Move repo enablement to respective rpm blocksMichal Nasiadka1-2/+2
Currently we are enabling repos irrespective of rpm/deb statement blocks and not failing in the method used if a repository is missing. Downside is - we might be producing one more layer, but it probably is a more logical approach. This is required for adding rpm support in repos.yaml that will also include failing on missing repositories. Change-Id: I5479c5c935760f00fe4cd307366f261deee3199f Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2025-03-20nova/aarch64: Fix qemu-efi build failuresMichal Nasiadka1-6/+0
It probably has been omitted in Ubuntu 24.04 introduction since aarch64 build jobs have not been stable. Removing from nova-compute since it's already in nova-base, nova-libvirt's parent is base - so updating to qemu-efi-aarch64 Change-Id: Idae2e87bfc8a556a090085e46f96d11279080f0f
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-22Fix missing tss user in Ubuntu/Debian nova containersRafal Lewandowski1-0/+1
Closes-Bug: #2067050 Change-Id: Ife426c073048ff27bdfd9f3af30aaaab8c2e4497
2024-04-29nova-compute: Remove duplicate openvswitch packageMichal Nasiadka1-1/+0
openvswitch package is already installed in nova-base from CentOS NFV SIG repos - and in nova-compute we don't enable this repo - so we get openvswitch installed from RDO packages. Closes-Bug: #2064098 Change-Id: If39e045357563111219a008fa7a81a82ef906627
2024-04-22Nova: fix swtpm and swtpm-tools missing from deb installsMichal Wyszkowski1-0/+2
Closes-Bug: 2062572 Change-Id: I456a5b8f66aa88a82fb54938e8df7195d127d9cd
2024-02-26Remove calls to libvirt repoMichal Nasiadka1-1/+1
It does not exist in repos.yaml since [1]. [1]: Id585c7744ba130ad1dfc28138fb0f9e6eeae771d Change-Id: Ic74eba44fc6e5508976de24cf20a5039f3292731
2023-11-22Update Ceph repo name for dnf config-manager commandPierre Riteau1-1/+1
Since change I1bc19f8198da3f9ab2ae2a8864c3349b21b0249e we install the centos-release-ceph-reef package as a dependency, but some code was still expecting the quincy package. Change-Id: I8ebcf815d80f3bead25e0078d69b34e17ad013bd
2023-10-22Add rsync to nova-computeJeffrey Zhang1-0/+2
when configure `remote_filesystem_transport` to rsync, rsync binary is required. Change-Id: I07be614846be9305f0775df22a6d931ceab1720a
2022-10-04Support qemu block rbd in nova-computeRadosław Piliszek1-0/+2
This is necessary if using nova-compute with RBD backend (directly, not via Cinder) and wishing to make an instance image to Glance while (1) following the recommended Ceph permissions which do not give Nova write permissions to the images' pool or (2) not using RBD with Glance or (3) not revealing what Glance actually uses as the backend (hiding locations). Change-Id: I88e1e0ca01b2b2effad9515b905cc761fbb5d2d4
2022-09-27Move to CentOS Stream 9Marcin Juszkiewicz1-3/+1
OpenStack 'zed' requires Python 3.8+ so RHEL 8 family has to go. This changeset moves to CentOS Stream 9 while move to RockyLinux 9 is planned as final solution. CI moved to CentOS Stream 9 nodes. Depends-on: https://review.opendev.org/c/openstack/kolla-ansible/+/839715 Change-Id: I113b9984294cf8663d3fc0c8840320e1d40ea731
2022-04-22adjust permissions on _extend_start files (part II)Marcin Juszkiewicz1-1/+1
Tim Shearer started it in 1d96a2bbe1b536b7d7f4cdbf55c6dabae6d058ae. Since all extend_start files are sourced rather than executed, the executable bits are now cleared throughout the project. Change-Id: Ia1797c32fc6a35f9f077c673abf4d8e16e51a760
2022-04-21flatten images a bitMarcin Juszkiewicz1-4/+5
As we have one type of images now some RUN calls could be merged so we will have less layers in resulting images. Change-Id: I5178c58fbd8c65efe825dc249c0f1368ef0fe8e0
2022-04-09docker: drop binary partsMarcin Juszkiewicz1-146/+64
Big patch drops all mentions of binary images support. Suggestions are welcome how to split it into parts or handle better. Change-Id: I5d5a46c6ce7734ceb8b844e17b43e359d7cac6e3
2022-03-10libvirt: add Cyrus SASL packages for DIGEST-MD5Mark Goddard1-0/+8
Adds Cyrus SASL packages necessary for the DIGEST-MD5 and SCRAM-SHA-256 mechanisms. These can be used for libvirt SASL authentication. Change-Id: I13e19ca29eeab40cd08fa3afe2cdf7531867f81b Partial-Bug: #1964013
2022-02-05nova-compute: 'ndctl' is available on all archsMarcin Juszkiewicz1-8/+1
In past 'ndctl' was x86-64 only in Ubuntu. This changed in 19.04 so time to adapt. Change-Id: I3e599f780e8f84ea131988f4a9a45f17055c8ab2
2021-12-07Ensure nvme-cli is present in nova-compute imagesPierre Riteau1-2/+4
The nvme-cli package is required to get the nvme command executed by os-brick, which is used by nova-compute. We don't need to explicitely install it for centos binary images, as it is required by os-brick which is required by openstack-nova-common, but all other types of images were missing it. Change-Id: I754939da7636c57d2a8d5b83debb5d8a58e38432 Closes-Bug: #1953509
2021-11-26nova-compute: trim image a bit on CentOSMarcin Juszkiewicz1-3/+9
libguestfs package fetched kernel-core one which fetched linux-firmware. We remove the last one and save ~500MB of space: before/centos-binary-nova-compute: 3.3GB after1/centos-binary-nova-compute: 2.71GB Closes-Bug: #1946801 Change-Id: I98cc19c95fcec07dd4e494c14c09938d754f1de0
2021-03-23enable 'libvirt' repo for images with python*-libvirtMarcin Juszkiewicz1-1/+1
There are several images installing 'python3-libvirt' package. Which for Debian reside in 'libvirt' repo. So let's enable it where needed. Change-Id: I1c91d27f2578f5ca7c83c4747725b1d9371880b0
2020-12-18nova-compute: daxio on CentOS 8 is x86-64 onlyMarcin Juszkiewicz1-2/+14
I somehow missed that when it was sent for review. Change-Id: Iabacaeccdb360544125ad910d5c3f5f9d895dac5
2020-12-15Add daxio for nvdimm scenarioMartin Schuppert1-2/+6
nova-compute uses daxio to cleanup vpmem backend device on instance delete. If the daxio binary is missing in the nova-compute container instance delete fails. daxio is provided in centos via daxio, in ubuntu via the pmdk-tools package. Change-Id: Ifb5948653565e2ae902783762e20e33527020efe Closes-Bug: 1907124
2020-06-22Add sysfsutils to nova-compute ubuntu sourceRadosław Piliszek1-0/+1
This fixes the FC Cinder backend usage in Nova. Change-Id: I036cfe3af3dd96625f986a820c78a10e6558b086 Closes-bug: #1884484
2020-04-15Merge "nova-compute: add ndctl to expose NVDIMMs to guests"Zuul1-0/+18
2020-04-15Remove support for CentOS 7Marcin Juszkiewicz1-36/+7
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-04-14nova-compute: add ndctl to expose NVDIMMs to guestsPiotr Kopec1-0/+18
`ndctl` is a utility for managing the nvdimm subsystem required by Nova for attaching PMEM(persistent memory) namespaces to guests [0]. [0]: https://docs.openstack.org/nova/latest/admin/virtual-persistent-memory.html Change-Id: I8ed1b6c1d0985b2a73206bd9249a5664cd80c912 Closes-Bug: #1870455
2020-03-03Use StorageSIG repos for Ceph in CentOS8Alfredo Moralejo1-6/+1
Storage SIG has built Ceph Nautilus and Ganesha for CentOS8 in CentOS Build System. Let's switch to use them in kolla. Change-Id: Id37dca84c4eb918aaf2d3c036ef5387fe75988dd
2020-03-01Add block labels to all DockerfilesChristian Berendt1-0/+2
Change-Id: I9692dda817ef134d647247431565e1b58cf9da41
2020-01-30CentOS 8: Use upstream Ceph/masterMichal Nasiadka1-1/+6
The only Ceph version that will support CentOS 8 is Octopus. It will be released end of March 2020 - so for now let's use master. Change-Id: I5955acb41e7346802d76f4f2b244cbf5c36f5bf2 Partially-Implements: blueprint centos-rhel-8
2020-01-29CentOS 8: Update packages in imagesMark Goddard1-4/+22
* 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-10-30Add xfsprogs to nova-computeMartin Schuppert1-4/+8
xfsprogs is required for formatting XFS ephemeral disk partitions when format=xfs is specified as instance create failes with 'mkfs.xfs: No such file or directory' due to missing xfsprogs package in the nova-compute container. Closes-Bug: #1850610 Change-Id: Iaf3414464f3dd747427247339c6b201b352063cb
2019-06-07Merge "Debian/Ubuntu: more python3 packages for binary"Zuul1-4/+7
2019-06-06Debian/Ubuntu: more python3 packages for binaryMark Goddard1-4/+7
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-06-06Debian/Ubuntu: move to Python 3 for source imagesMarcin Juszkiewicz1-3/+6
Commit 43b74ccc157c0b50138c3785ed91dab504895571 enabled use of Python 3 based packages but not switched to use Python 3. Some of images still contain Python 2. There are two reasons: - Ceph (ceph-common depends on Py2) - python3-ldappool on Ubuntu 18.04 In Ceph situation Py3 packages were added. For second one we can not do anything - Py2 dependency got dropped in Ubuntu 18.10 version. Removed neutron-server-plugin-networking-infoblox due to being not maintained. Once https://review.opendev.org/#/c/657578/ get merged someone may revert that part. Implements: blueprint debian-ubuntu-python3 Depends-on: Ie2a1077f7def0743f1403341985e2109aa490026 Change-Id: Ibfe0c2b8be98db56c61f74fb0247488ab3749ef4
2019-03-14Move to Debian 'buster'Marcin Juszkiewicz1-14/+0
Buster is at freeze phase so safe to update and use. Will give us Python 3 based OpenStack packages (usually release delayed). Change-Id: I48c2d252a834716f1bcf10b18f2d32fe541e8137
2019-03-12Add python3 packages for RHEL systemsAlex Schultz1-3/+14
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-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-08-20Add nvme-cli to nova compute packagesHamdy Khader1-0/+1
Change-Id: I7688a1c2065ed9183e5eeaaade8e31e0f76b4467
2018-07-10Stop using deprecated rpm package namesMartin André1-1/+1
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-05-26Bump Ubuntu base image to 18.04Jeffrey Zhang1-20/+8
Ubuntu 18.04 has been released. We need upgrade to it this cycle. Changes made in this patch - Bump ubuntu repo from xenial to bionic. Some repos do not have bionic packages, so still using xenial repos. - Drop mariadb, percona and nfs-ganesha repo, because these packages are already provided by Ubuntu official repo. - Since qdrouterd does not have bionic repo and xenial packages does not work on Ubuntu bionic, just add it into ignore image list. - Use python-rtslib-fb and targetcli-fb rather than python-rtslib and targetcli - use xen-utils package name rather than with package version one. - Seems unsigned repo won't work on Ubuntu bionic, stop using infra mirrored unsigned repo in gate building job. Needed-By: https://review.openstack.org/568728 Implement blueprint: ubuntu-bionic Change-Id: I4e3b0ca669cfbf6316bf591f2d8428fa1a0d6182
2018-05-08base/nova-compute: install udev/systemd to satisfy dependenciesMarcin Juszkiewicz1-0/+4
For Debian we use 'stretch-backports' image due to requirements of some images. That means that we also have systemd from backports. This breaks 'open-iscsi' (base) and 'python-guestfs' (nova-compute) installation. Solution is to install 'udev' and 'systemd' in proper versions. INFO:kolla.common.utils.base:Some packages could not be installed. This may mean that you have INFO:kolla.common.utils.base:requested an impossible situation or if you are using the unstable INFO:kolla.common.utils.base:distribution that some required packages have not yet been created INFO:kolla.common.utils.base:or been moved out of Incoming. INFO:kolla.common.utils.base:The following information may help to resolve the situation: INFO:kolla.common.utils.base:The following packages have unmet dependencies: INFO:kolla.common.utils.base: open-iscsi : Depends: udev but it is not going to be installed INFO:kolla.common.utils.base:E: Unable to correct problems, you have held broken packages. INFO:kolla.common.utils.nova-compute: python-guestfs : Depends: libguestfs0 (= 1:1.34.6-2) but it is not going to be installed INFO:kolla.common.utils.nova-compute:E: Unable to correct problems, you have held broken packages. Closes-bug: #1769850 Change-Id: I4865c279d665cf34fc150794c01368a1602319f0
2018-03-13Merge "Remove customizable for plugins_pip_packages"Zuul1-1/+1
2018-02-19Merge "change python-libguestfs to python-guestfs for ubuntu"Zuul1-2/+2
2018-01-23Remove customizable for plugins_pip_packagesMartin André1-1/+1
The pip packages are normally already configurable with the <image_name>_pip_packages variable. It doesn't make much sense to make the list of packages installed with the plugins mechanism configurable via the <image_name>_plugins_pip_packages variable too. And even if we wanted to, the parameter to the `customizable()` function should be 'plugins_pip_packages' and not 'pip_packages'. This commit removes the customizable bits from the plugins install macro, at least until we get a good use case for it. Change-Id: I90dd28b8c5d981e6028af353e34645712ef09b0b
2018-01-11change python-libguestfs to python-guestfs for ubuntuZhaokun Fu1-2/+2
python-libguestfs is for centos, python-guestfs is for ubuntu. Related-Bug: #1742029 Change-Id: Ia1578dfcc9e4dbf32d29773f07424bbfe9328951
2018-01-10Remove /lib/udev in $PATH for nova-computeZhongShengping1-2/+0
Add /lib/udev environment variable[1] is to solve the scsi_id access problems, but the patch[2][3] pointed out the absolute path scsi_id, we can not add /lib/udev environment variables in the system for nova-compute. So we can remove /lib/udev in $PATH for nova-compute. [1]https://review.openstack.org/#/c/291285/ [2]https://review.openstack.org/#/c/277224/ [3]https://github.com/openstack/os-brick/blob/master/os_brick/initiator/linuxscsi.py#L147 Change-Id: I5326edf8fff5745ef119c0c3decd6f4c51e8bd5d Closes-Bug: #1742340
2017-10-26XenServer: Add packages for initial supportnaichuans1-0/+4
Add `parted` to support xenserver in nova. Change-Id: I07d88702a8f8443efe4487837c2b47b06e16e417 blueprint: xenserver-support
2017-09-23Install multipath binary in nova-compute imageJeffrey Zhang1-0/+4
multipath binary is required after enabled multipath in nova. This patch is pushed to ocata branch first by mistake. Need cherry pick into master and pike branch. Change-Id: I0a1d85597999415cab11feb71a7fdfd7af3f7148 Closes-Bug: #1713639 (cherry picked from commit 4e6add7dbd80ef9326cc8a7e2afd5f6d02f1f68f)