Add podman as an option to choose for container engine
for kolla-build (--engine podman)
Signed-off-by: Konstantin Yarovoy <konstantin.yarovoy@tietoevry.com>
Co-Authored-By: Michal Arbet <michal.arbet@ultimum.io>
Change-Id: I068c906df97745e397408d8c3ef6af47ee037638
kolla/tests/test_build.py::MainTest::test_run_build [65/1834]
/home/marcin/devel/linaro/kolla/kolla/kolla/image/build.py:117: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
StrictVersion(docker.__version__)
Change-Id: I2ebc8b0e35c67bf893deb89ea7fa0146dedd4640
docker-py reworked their version function and now it does not
return a string [1].
Example:
>>> import docker
>>> docker.version
<module 'docker.version' from '/home/cloud-user/kolla-venv/lib64/python3.9/site-packages/docker/version.py'>
[1]: cd2c35a9b6
Closes-Bug: #2018559
Change-Id: I5ec0fbfdaf18cf53a6b5bf91236d3e040daa9d7e
Add support for writing the build summary to a JSON file. This is more
machine-friendly than the current approach of writing to standard output
at the end of the build.
The file is configured via [DEFAULT] summary_json_file.
Change-Id: I9868af5d00977750d0673fc48f8863a99f878dc8
Add engine adapter module to allow additon of other container engines,
create one common EngineClient that would be called in all other
modules.
Based on patch by Konstantin Yarovoy <konstantin.yarovoy@tietoevry.com>
Change-Id: Ice6467086bd292af086322afc3fc4e869d89eefa
PROJECT_ROOT mangling is already done in kolla/cmd/build.py (which is
called as 'kolla-build' or 'tools/build.py' or directly) so it is not
needed here.
Now we can sort imports and drop not needed ones.
Change-Id: Iac6ea537491e5c00ce6fb4b4e8f07a9124e9fa8b
Only kolla/cmd/build.py is an executable script used by user (either as
'kolla-build' or 'tools/build.py' or directly).
Change-Id: Ia1ba2699f425749f9d4f2cdba27caeb97bc3d668
As part of kolla/image/ refactoring we move KollaWorker related classes
into own file.
Based on patch by Konstantin Yarovoy <konstantin.yarovoy@tietoevry.com>
Change-Id: I55c3f6b34631048b2463b02e6ea611d7e4c1a912
As part of kolla/image/ refactoring we move build related task classes
into own file.
Based on patch by Konstantin Yarovoy <konstantin.yarovoy@tietoevry.com>
Change-Id: I093620679016b37e1664c9fe4cf7559433e744b7
As part of kolla/image/ refactoring we move status enums/consts into
own file.
Based on patch by Konstantin Yarovoy <konstantin.yarovoy@tietoevry.com>
Change-Id: I940816c7e487f6d5c7abc4446226e2992cf9e63d
As part of kolla/image/ refactoring we move information about
unbuildable images to own file. Like we did with users and sources in
past.
Based on patch by Konstantin Yarovoy <konstantin.yarovoy@tietoevry.com>
Change-Id: I759ab49a3ef488042984067c1eca93e945805678
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
doc says:
> If dirs_exist_ok is false (the default) and dst already exists, a
> FileExistsError is raised. If dirs_exist_ok is true, the copying
> operation will continue if it encounters existing directories, and files
> within the dst tree will be overwritten by corresponding files from the
> src tree.
So we do not have to copy dirs/files one by one and tell
shutil.copytree() to handle everything.
Change-Id: I97d9c8261351b8fd88f088c1463cc508e07792e7
With version 6.0.0 of the docker python module, their implementation of
versioning has changed, making our check for old versions fail. Since
version 3.0.0 is from 2018, we should be safe to assume that as a
minimum version though, so we can just get rid of the special handling
of older versions.
Change-Id: I077b7b5acf2c1f9beb6da06d3555e2ebe30831d1
mariadb - downloads.mariadb.com doesn't have jammy version, should
be there soon - using Ubuntu provided version for now
telegraf/collectd - collectd packages missing in Jammy - marked
as unbuildable
monasca - requires new librdkafka, no wheel for Python 3.10 for now
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/846070
Change-Id: I11b4fbcaba165824252902d0270ce1dbbc3d6e9d
Downstream users are often building their own
custom images from their own forked git.
Reasoning can be various - added fixes not merged yet,
some customizations and etc.
Because of this, it's very usefull to have information
about git commit in images, and this is exactly what
that patch does.
If images are built from pip source, kolla_version
LABEL contains kolla version.
Change-Id: If81989603185528dae86df52e8f8d0f94cdca85d
INFO:kolla.common.utils.monasca-base:
Install the latest version of librdkafka from the Confluent
repositories, see http://docs.confluent.io/current/installation.html"
No more monasca for aarch64.
Change-Id: Ice6f1ab4a08d0ef07ce2434bfef704b68e90f9d0
1. There was no %s for the image.name
2. The image name is in the logger, so the source is more useful (which
may be a plugin or addition)
TrivialFix
Change-Id: If95a8a41d2caf6738d4ccb9ddb651a06018743f4
Several people use Kolla behind firewall/proxy. Internal mirrors are
often in use then. We do not provide a way to replace repos.yaml file in
an easy way which may lead to complicated solutions or template
overrides.
This patch adds a way to provide own copy of repos.yaml file.
Change-Id: I0b07da22fea27e0ff4e90aaad19e50d84ff9a121
Adds a relevant reno to inform users about the change and the
possibility to customise the prefix.
Additionally, this patch includes the fix to Ubuntu image builds
regarding rabbitmq and erlang.
Both the changes are required to fix master CI.
Change-Id: I6bc8b489a810849744c8bead6b9e350c5d3e36b7
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/843752
This is I2cbf1f539880d512aa223c3ef3a4b19ee18854ac extended to fix
the case when a git repository is used with a git repo.
This is probably a rarer use case but, still, we use it in CI
for in-review changes testing.
Change-Id: I77b0dcd2e9dfd8ea8390a471b80c8954b67ef91b
Bifrost decides on the branches to use by itself.
Early in the cycle, they are often not set correctly and may
break our CI.
This patch ensures we force Bifrost to use the expected branches,
making us independent of Bifrost getting fixed.
Change-Id: I33dbca927062284fd7a06ab6db732dd5e2219c40
This change switches published images names from the current
format <base_distro>-<image_name>:<openstack_release>-<arch_suffix>
to a preciser and image-oriented (for better variant listing) format
<image_name>:<openstack_release>-<base_distro>-<base_distro_version>-<arch_suffix>
Change-Id: I6a4b5c2087b94f96f72aa9d0d0781ff14d3ee6bb
We can drop temporary 'use-short-names' argument and make short
(kolla/debian-nova-libvirt:master) image names default.
Kolla Ansible is using short names now.
Change-Id: I153355353cd12aa25adaa9c87438a478748dfb28
--use-short-names argument drops 'install_type' from image names:
kolla/debian-openstack-base:14.1.0
This should allow to get rid of '-source' in image names without
disrupting CI jobs.
Switch publish jobs to use short names so k-a tests will have ready to
use images for both long and short names.
Change-Id: I29c9d51f4b518a4e2d3157ab5d6cc434fb83f2ef
The only place where it stays is argument parsing where it gets ignored.
Hardcoded to 'source' to make merging both kolla and kolla-ansible
changes easier.
Change-Id: I6890a7ec7baf507f8acd75b42bbd0fb17c2e4511
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/837620
A recent change to git [1] introduced a new behaviour to work around a
CVE [2] that disallows any git operations in directories not owned by
the current user.
This may seem unrelated to installation, but it plays havoc with PBR,
which calls out to git to get to get revision history. So if you are
"pip install"-ing from a source tree you don't own, the PBR git calls
in that tree now fail and the install blows up.
When using type=source, kolla clones the repository, then creates a
tarball from it, which is ADDed to the image. The ownership of the files
in the tarball is preserved, which in this case will be the user running
kolla-build. Since the Docker build runs as root, we hit the PBR issue.
Our solution is to make sure that any tarball we generate from git
sources have all files owned by root:root so that the root user is able
to use git commands when building container images.
[1] 8959555cee
[2] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-24765.
Closes-Bug: #1969096
Related-Bug: #1968877
Co-Authored-By: Mark Goddard <mark@stackhpc.com>
Change-Id: I2cbf1f539880d512aa223c3ef3a4b19ee18854ac