| Age | Commit message (Collapse) | Author | Files | Lines |
|
[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>
|
|
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>
|
|
We're not using ironic-pxe as ironic-http anymore and kolla_httpd_setup
has been removed from base.
Change-Id: Id25e39cee9fd64d147301a39528aa8525bd682c2
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
|
|
Closes-Bug: #2138872
Change-Id: I6e30b749488a0ef2f247adf182db40cda8fa8ca4
Signed-off-by: Bartosz Bezak <bartosz@stackhpc.com>
|
|
RHEL removed ipxe.efi - see [1].
[1]: https://issues.redhat.com/browse/RHEL-37610
Change-Id: I142257d6537ceeff23cb2cb34e64d93de9f19d2e
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
|
|
Copy aarch64 snponly.efi to /tftpboot during bootstrapping
of Centos- and Rocky-based ironic-pxe.
Don't use $KOLLA_BASE_ARCH when symlinking to
/tftpboot/ipxe.efi, because an aarch64 variant of this
binary doesn't exist, just x86_64.
Change-Id: Ie19fcb441a2e54a60762e5c8483487b713a29ddd
|
|
Support aarch64 ipxe only when using Ubuntu and Rocky
Linux base images, as the Debian ipxe package does not
provide a suitable aarch64 ipxe binary.
Change-Id: If5610148fc80acf13d4eb79fef78349764f08a17
|
|
UEFI virtual media boot requires an ESP image [1].
[1] https://docs.openstack.org/ironic/2024.2/admin/drivers/redfish.html#virtual-media-boot
Change-Id: Ie8485a7098743e1d736145e8fd9441cf13c929d7
|
|
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
|
|
The ipxe package in Ubuntu Jammy includes snponly.efi [1]. Remove code
to handle Focal in which snponly.efi is absent from the ipxe package.
[1] https://packages.ubuntu.com/jammy/all/ipxe/filelist
Change-Id: I5f494de36e6400b5486c1fb786b73c9e1512a046
|
|
Change-Id: I6c82ef5b148b3ebdc8241871117dbe6cd68ed070
|
|
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/859570
Change-Id: I7af51d07b8a939c908aa072294061def57dd67de
|
|
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
|
|
This is needed to support PXE and iPXE at the same time. We will move
/tftpboot and /httpboot to /var/lib/ironic/. With these paths
configurable via an environment variable, we can support a clean
transition.
This patch also cleans up pxelinux part, making it
analogous to grub and ipxe parts.
RHEL leftover mention is removed.
Co-Authored-By: Radosław Piliszek <radoslaw.piliszek@gmail.com>
Needed-By: https://review.opendev.org/c/openstack/kolla-ansible/+/832159
Change-Id: I1ae81217c8bbf606c903c8009a372662ca3ab08c
|
|
When using Ironic with UEFI boot mode and iPXE booting, nodes will
attempt to chainload iPXE using a Network Boot Program (NBP). This is
configured in Ironic via [pxe] uefi_ipxe_bootfile_name, and the default
since Xena is snponly.efi. In Wallaby and earlier releases, the default
was ipxe.efi. These files need to be available in the /tftpboot
directory of the ironic-pxe image.
The current default of snponly.efi was not present for any supported
distros. ipxe.efi was present for Debian/Ubuntu but not CentOS, which
appends the architecture to the filename (e.g. ipxe-x86_64.efi).
This change ensures that both ipxe.efi and snponly.efi exist in
/tftpboot for all supported distributions, ensuring that both the
current and previous Ironic defaults should work. Where these files have
different names, we use symlinks to allow for any deployers overriding
the filenames in configuration.
Closes-Bug: #1959203
Change-Id: I79e78dca550262fc86b092a036f9ea96b214ab48
|
|
Use distro provided GRUB efi instead of creating it like ironic GRUB
setup doc[1]. This avoids below ubuntu ironic-python-agent images PXE
booting failure.
----------
error: invalid magic number.
error: you need to load the kernel first.
Press any key to continue...
----------
This also fixes x86_64 uefi pxe booting issue by setting up GRUB efi
for x86_64.
Besides, GRUB setup only needs to do once at bootstrap stage.
[1]:
https://docs.openstack.org/ironic/train/install/configure-pxe.html#uefi-pxe-GRUB-setup
Closes-Bug: #1879265
Change-Id: I8be5bdf5f1a62751aefe6bd0959e8f558fcfe591
|
|
As a project we never built RHEL based images so support for them
was not tested.
Change-Id: I27dfe34ade088228d71f6857ec4f3ab28ee63915
|
|
We do not test support for ppc64le on CI or other systems.
In previous cycles it was used by TripleO and now they have own way.
Change-Id: Ibd955869a6f9485dfa4d08a8ad2f4b28b7d59c15
|
|
grub2-efi-aa64-modules ships in RHEL and CentOS on all GRUB
architectures (x86_64, ppc64le, aarch64, but not s390x), and therefore
can be used on any of them to support heterogeneous clusters with AArch64.
Change-Id: Icf7e7bfddec89c4aec89410884480539b6bbfd74
|
|
syslinux-tftpboot was made installable on and shipped for ppc64le in RHEL
and CentOS 8.1.
Change-Id: I2135d6477d07e8786b81e6e3ea9f3367fc5e3ec6
|
|
Refactor installing and initial setup of httpd and mod wsgi from
individual services to base image.
Change-Id: I651a55a9ebe258ef403d33de010a4dfb368a4021
|
|
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
|
|
Change-Id: I9692dda817ef134d647247431565e1b58cf9da41
|
|
CentOS 7 had ipxe.efi. CentOS 8 has ipxe-i386.efi and ipxe-x86_64.efi.
Use a wildcard to copy any of these that are present.
Change-Id: I6d409e56b424a039f5aff9af86ca1b026c2c6286
Partially-Implements: blueprint centos-rhel-8
|
|
All Apache httpd setup has been moved to a new helper script,
kolla_httpd_setup. This includes the existing clean of /run/httpd,
/var/run/httpd, /tmp/httpd etc.
Horizon has an additional bit of Apache config for Debian/binary, which
has been kept in extend_start.sh for horizon.
Change-Id: Ia2af74b69c151db0bd7e452460b0babcee50b282
Related: blueprint centos-rhel-8
|
|
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
|
|
|
|
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>
|
|
Ubuntu/source deployment of several images (horizon, placement-api, zun)
failed with:
+ exec /usr/sbin/apache2 -DFOREGROUND
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot
Change-Id: Ie2a1077f7def0743f1403341985e2109aa490026
|
|
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
|
|
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
|
|
This allows you to chainload iPXE from a standard PXE
environment.
As the PXE container already has apache installed, we
now have everything we need to support iPXE booting.
Change-Id: Ide32dc1910e9f8b3ff875238648726f719e271b2
Implements: blueprint ironic-ipxe
|
|
The syslinux package is only built for x86_64 and not for ppc64le or aarch64.
Change-Id: I773e6ddf20ba2030fdeeb1ee66e79f20f82168aa
Closes-Bug: 1749780
|
|
Delegate code style validation to computers, they're better than human
at it :)
This commit adds a new `tools/validate-indentation.sh` script that
errors when it finds an indented Dockerfile instruction, and enables
the validation in the pep8 check.
Also adjust the logic of `tools/validate-all-dockerfiles.sh` so that it
doesn't stop on first errors but instead shows all of them.
Fixes the remaining indentations in Dockerfiles.
Change-Id: I53c0d38304cb4f6d64a5dfab67f70d69b3eae587
|
|
Install grub-mkimage & grub2-mkimage accordingly to
generate grubaa64.efi, which used as bootfile on aarch64.
Change-Id: I21f66951e5d97603bb03da596ac353c2cf3f840e
Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org>
|
|
centos based images have wrong label info,
these changes fix own image's name and build-date.
Change-Id: I1d13f8f386c8db12b5fbe5f8ecbbf9e3fbb4ba1c
Closes-Bug: #1680341
|
|
|
|
A few new images got apache as part of blueprint
apache-packages-for-apis without a cleaning up. Without this step the
containers may fail to restart due to runtime files already present.
This commit fixes it for all images with the exception of heat-base so
that it can be cleanly backported to stable/ocata.
It also removes the unused APACHE_DIR variable from freezer-api and
keystone extend_start.sh script.
Change-Id: I47d75221b3d1aae91f11d3e0da83e221a00315b7
Closes-Bug: #1679565
|
|
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
|
|
|
|
'syslinux' is built only for x86 architectures
Partially-Implements: blueprint multiarch-and-arm64-containers
Change-Id: I6fa78fd4e301649acd085b84d71047a207277927
|
|
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
|
|
Some images have packages sorted alphabetically and some not.
Unify common style between all images.
Change-Id: I906ed89c10b12886665618752f525ba71d83d991
|
|
This apache module is necessary for when one wants to use TLS for the
services running over httpd.
This only addressed RHEL based systems at the moment, since there is no
such package available for Ubuntu. This requires apache2.2-common which
will carry a lot more dependencies; So I think this should be handled
and decided in a separate patch.
when installing mod_ssl in RHEL-based distributions, an ssl.conf file is
installed in the /etc/httpd/conf.d directory. This file tells httpd to
listen on port 443; however, we don't want to do this by default, since
this should be explicitly enabled by the container's configuration. This
line is thus removed from the configuration.
A release note was added, which specifies this. And the last sentence
can be removed if this is addressed for debian/ubuntu as well.
Related-Bug: #1675490
Co-Authored-By: Martin André <m.andre@redhat.com>
Change-Id: Id6215d31547247309d43c031e163fa9e4c4ec5dc
|
|
A few new images got apache as part of blueprint
apache-packages-for-apis without restricting it to listen on port 80.
This commit fixes it for all images with the exception of heat-base so
that it can be cleanly backported to stable/ocata.
Co-Authored-By: Juan Antonio Osorio Robles <jaosorior@redhat.com>
Change-Id: Idd3bbeffea9233eaed420798e22ea9a3a517c166
Closes-Bug: #1675308
|
|
include_header and include_footer parameter is already removed, remove
them in all Dockerfiles.
Add missing footer block.
Change-Id: I90da03eb9f95a3827361d5f5ede65fde7d6be2b3
|
|
Change-Id: I7e3f5f7932d18565e7bc938128297acb8fd6f4f5
Partially-implements: blueprint ironic-pxe-ipxe-support
|
|
Some projects that use Kolla docker containers (TripleO) run Ironic pxe under
httpd. This patch adds the httpd package so that it exists in the container
and can optionally by used via Docker entrypoints.
As many of these projects do not require the use of Apache (it is opt-in) at
this point not all deployment frameworks support the use of it so
the existing configuration defaults have been left as-is for now.
Change-Id: I4c3e44db6a1ffa7238006c27038ac0a67c8aa725
Partial-Blueprint: apache-packages-for-apis
|
|
Closes-bug: #1616387
Change-Id: Id97f88b9baa3d48d33ce120962450a374282d044
|
|
Change-Id: Ie42f75d0779b8e2bd835e9cdc165e73751ce5172
Closes-bug: #1632840
|