| Age | Commit message (Collapse) | Author | Files | Lines |
|
Add --buildkit flag to use docker buildx build instead of the docker-py
SDK. An optional --buildkit-builder selects a named buildx builder
instance, enabling docker-container or remote drivers for multi-arch
builds.
--buildkit and --squash are mutually exclusive and rejected at startup.
PushTask is skipped when buildkit is active; push is handled inline.
Set buildkit as the new default.
Change-Id: Idbf1d1bdc091bb84721f8006c2b916731b999859
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
|
|
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
|
|
Change-Id: I11d306be5e5bb3d5b05b50dd8ee64ac9424854a1
|
|
|
|
Change-Id: If4e0c0e5d6ed5c79ca7d8a3c8f16bfa665f6968f
|
|
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]: https://github.com/docker/docker-py/commit/cd2c35a9b699522b282cc4f024efa5699df24896
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
|
|
|
|
Change-Id: If42a89642f0322c52bed44f402a8dcbb9c0a9bd6
|
|
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
|
|
It does not make much sense to have them there.
TrivialFix
Change-Id: If66d264dc8cc366c9f51bfe36f96dd64d4c68d9e
|
|
|
|
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
|
|
As per https://github.com/sysown/proxysql/issues/3989
Change-Id: If077d60e9efd29fab80f4f5188a4f54015734a92
|
|
Change-Id: I468e68db23c6785bd3bfbe65733fe5bf52295fbb
|
|
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/859570
Change-Id: I7af51d07b8a939c908aa072294061def57dd67de
|
|
RHEL 9 refuses to use SHA1 gpg keys. Grafana team still did not handled
key upgrade:
https://github.com/grafana/grafana/issues/41036
Change-Id: Id963271103ce1397b7a5498d032e8f797edfcc70
|
|
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
|
|
There is confluent-kafka wheel on Pypi so we can build those
images on x86-64.
Change-Id: I16a9656641932114e02f6ffa76399c0c4106a90a
|
|
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] https://github.com/git/git/commit/8959555cee7ec045958f9b6dd62e541affb7e7d9
[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
|
|
|
|
hacluster-pcs is already in centos, no need to be in
centos+aarch64.
TrivialFix
Change-Id: I9868f73172efedf113c3cc1567098b3439e2a205
|
|
|
|
If they are unbuildable then they should be in distro or distro+arch
blocks now.
Change-Id: I9cd225d3a7fd99fdeaf4926730c95d37f8f7eac7
|
|
When everything fails assume we have Python 3.8 (should never happen).
Change-Id: I69033cc910dd8236a470fd130816f2870a9b5b3a
|
|
It was marked deprecated in Yoga.
Change-Id: Iea1cf9c539a73da625e335d6c1adb6cd71ec93d4
|
|
|