aboutsummaryrefslogtreecommitdiff
path: root/kolla/tests
AgeCommit message (Collapse)AuthorFilesLines
2026-09-22Merge "Allow lowercase from"Zuul1-0/+42
2026-09-10Drop support for CentOS Stream 10Michal Nasiadka2-25/+36
Change-Id: I5973943fe83bbb00cfc8623c0cd4d4b98b369315 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2026-08-05Add cleanup_repos to revert build_only overridesMichal Nasiadka1-0/+373
Repos marked build_only: true are backed up before handle_repos() overwrites them and restored at the end of each image build, so CI mirror URLs are not baked into the final image. The cleanup RUN was injected into every Dockerfile, not just images that called handle_repos() for those repos. Child images with no backup fell through to "rm -f", deleting the inherited repo file (e.g. debian.sources in bifrost-base, breaking cpio install). Fix by adding a {repo}.enabled sentinel that handle_repos creates when it processes a build_only repo, making the cleanup conditional on that sentinel. Change-Id: Ie5b9970a4575b6258dc238059d3f33ddfe155789 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2026-07-30Allow lowercase fromMichal Nasiadka1-0/+42
Change-Id: I42cf2aac795e9f61692deec956de0bedab55086f Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2026-07-23Rework tar normalization to a shared functionMichael Sherman1-0/+62
Add missing tests Change-Id: I91b42fe530f87af7d78bb1a543b29a4b0d50872e Signed-off-by: Michael Sherman <shermanm@uchicago.edu>
2026-07-09Add support to override base reposMichal Nasiadka1-14/+198
BaseOS and AppStream for CentOS/Rocky ubuntu, ubuntu-security for Ubuntu debian, debian-security for Debian ubuntu-cloud-archive is not really a base repo - so removing it from ubuntu.sources Change-Id: Iab98de963f2e8532389b7563bb572d8aa20c7aa6 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2026-06-24kolla-build: fix build-date LABEL invalidating Docker layer cacheMichal Nasiadka1-0/+2
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>
2026-06-18kolla-build: Add Docker BuildKit support via docker buildx buildMichal Nasiadka1-0/+302
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>
2026-06-10kolla-build: Use SandboxedEnvironment to prevent SSTIMichal Nasiadka2-0/+110
Switch from jinja2.Environment to jinja2.sandbox.SandboxedEnvironment to block Server-Side Template Injection attacks. Closes-Bug: #2146056 Change-Id: Iecd1d8dcf99007e3339120961c7c1d0ca12f83d8 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2026-03-25Update Ceph Squid RPM repo to centos-10-streamSeunghun Lee1-1/+1
Change-Id: I530a0f710507c8f959ccf10e4d3560372e800a05 Signed-off-by: Seunghun Lee <seunghun@stackhpc.com>
2025-12-16Switch to Debian TrixieMichal Nasiadka1-4/+4
Change-Id: Ib7f551d4a7c6ffe95786853d6899e704de4747b8 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2025-11-18Transition to the new rabbitmq Debian package archives.Michael Still1-2/+2
RabbitMQ announced some time ago that the package archives were moving: https://www.rabbitmq.com/blog/2025/07/16/debian-apt-repositories-are-moving The old location is no longer working, so this patch transitions to the new one. Closes-Bug: #2131736 Change-Id: I6ef0ed9cc40be42a0d98c6a4c83c5c5c26d9cdbf Signed-off-by: Michael Still <mikal@stillhq.com>
2025-10-02Add support for rpm to repos.yamlMichal Nasiadka1-56/+135
Add the ability to configure repositories in the same way as we do Debuntu ones - via repos.yaml. Removes .repo files from base - since these are not needed there anymore. gpgcheck = 1 is default in docker/base/dnf.conf Change-Id: I7df7d452c45c57c434d5b4ad15a87963e4d6d0d4 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2025-08-06send empty X-Registry-Auth for anonymous pushesBartosz Bezak1-5/+15
Since Docker 28.3.3 the daemon rejects a push that carries no `X-Registry-Auth` header [1]. The SDK already sets this header when it finds credentials, so the breakage happens only on anonymous pushes. During `PushTask.push_image()` we now check whether the SDK can resolve credentials for the target registry; if it cannot, we inject `auth_config={}`, causing the SDK to send the minimal "{}" header that satisfies the daemon while leaving authenticated pushes unchanged. Drop this addition when [2] is fixed. [1] https://github.com/moby/moby/pull/50371 [2] https://github.com/docker/docker-py/issues/3348 Closes-Bug: #2119619 Change-Id: I7a2f3fce223afd74741b40bf62836b325fca5b19 Signed-off-by: Bartosz Bezak <bartosz@stackhpc.com>
2025-07-16Move to CentOS Stream 10Michal Nasiadka1-2/+2
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-05-30debian: Use bookworkm suite for rabbitmq APT repoMichal Arbet1-2/+2
Change-Id: Ifd664de82a81830eeda8ccc019b22ee93768635e
2025-03-21tests: Add cross-arch test for etcdBartosz Bezak2-0/+47
Ensure that when building etcd with --base-arch aarch64, Kolla uses the arm64 tarball instead of amd64. Related-Bug: #2103810 Change-Id: I6248cb6646b2b0c7af1c29f9a0a244cef1c4cf05
2024-09-19Switch to Dynamic Python Version DetectionMichal Arbet1-18/+0
This commit removes the hardcoded KOLLA_DISTRO_PYTHON_VERSION and replaces it with dynamic Python version detection during container images build. Dockerfiles and scripts now use general python3 references, simplifying maintenance and ensuring compatibility with future Python versions. Test cases relying on distro_python_version were also cleaned up. Change-Id: I891749598247a5e951ed4a873b16acfd0566f59c
2024-09-12rabbitmq: Switch to Cloudsmith mirrorsMatt Crees1-2/+2
PackageCloud is discontinued as of August 18th [1]. Also corrects the versions docs for RabbitMQ and Erlang. Use new RMQ Cloudsmith repo URLs, these now use *.rabbitmq.com domains [2]. 1. https://www.rabbitmq.com/blog/2024/08/11/package-repository-updates#packagecloud-will-be-discontinued-on-aug-18th-2024 2. https://www.rabbitmq.com/blog/2024/08/11/package-repository-updates#mirrors-now-use-rabbitmqcom-domains Change-Id: I2cce3dd2540c878878ff0aae80ee5a7e0f455da7
2024-03-28Merge "add: cross-compile support"Zuul1-5/+8
2024-02-21Move curl sources to sources.pyMichal Nasiadka1-1/+11
Move most curl sources to sources.py, so it can be automatically updated in future. This also makes overriding the versions/locations/sha256 easier. Change-Id: Ib3497fe96162ae190e5c113cacaaa3ef8334f590
2024-02-08add: cross-compile supportTadas Sutkaitis1-5/+8
The main goal is to be able to build ARM images on standard x86 hardware. Add simple functions supported by python-py and podman-py to enable creation of container images on emulated architectures. Change-Id: I1526b460f6e271c2ec63ab3a3b1dc348d742e96d
2023-12-21Merge "Summary JSON file"Zuul1-0/+47
2023-11-22Update Ceph repo name for dnf config-manager commandPierre Riteau1-2/+2
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-09-29rabbitmq: Use novemberain repos for Debian/UbuntuMichal Nasiadka1-2/+24
CloudSmith is over budget, see [1]. As mentionedin in [2] - we're using amd64 packages on aarch64, since the community mirror does not mirror aarch64 - and the packages should be really marked as noarch. [1]: https://github.com/rabbitmq/rabbitmq-server/discussions/9526 [2]: https://github.com/rabbitmq/rabbitmq-server/discussions/9553 Closes-Bug: #2037469 Change-Id: I83179ce5d53fed6cfe7f5fcbf6fdecd7199baa36
2023-09-21Add podman for image buildingMichal Arbet1-23/+36
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
2023-08-28Transition to DockerClientMichal Nasiadka1-54/+56
Change to use docker.DockerClient instead of the low level docker.APIClient. Signed-off-by: Konstantin Yarovoy <konstantin.yarovoy@tietoevry.com> Change-Id: I88842c17d8e6ddbe89b984c7b5e0367ed356fa50
2023-08-18Move to Debian 12 'bookworm'Marcin Juszkiewicz2-2/+2
We move to use some components from distribution instead of 3rdparty repos. At least for now - this may/will change later. Packages from Debian: - Erlang 25.2 - MariaDB 10.11 Some Ubuntu/jammy repositories are used in places where there is not (yet) Debian/bookworm one. openvswitch-netcontrold image fails as it needs to be converted to use virtualenv - added into unbuildable images for now. See https://etherpad.opendev.org/p/kolla-bobcat-ptg#L199 for more information. Depends-On: https://review.opendev.org/891946 Change-Id: I45b5a5980fb2318f1aab23a3a6aaf0922563b171
2023-04-27Summary JSON fileMark Goddard1-0/+47
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
2023-03-31Fix test malicious tarball failMichal Nasiadka1-0/+72
Since I650fcbc8f773fad8116338f6fb0cf7b4f4f17b33 builds from git fails on plugins with an exception: 'tarfile.ReadError: not a gzip file' because the test checks only gzip compressed archives but plugins created as plain tar files. This change fixes the issue using transparent compression support and also adds some debug info. Closes-Bug: #1990432 Change-Id: If0f9b4dd058a257d0653332d1b663e150c717304 Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com> Co-Authored-by: Michal Nasiadka <mnasiadka@gmail.com>
2023-03-17Test for unsafe files in tarfile.extractallMichal Nasiadka1-0/+42
In addition to that, mark bifrost unbuildable since it's failing on EPEL 9 enablement. Closes-Bug: #1990432 Change-Id: I650fcbc8f773fad8116338f6fb0cf7b4f4f17b33
2023-02-27Merge "Add a way to add other container engines"Zuul1-1/+1
2023-02-01grafana: update urlsMichal Nasiadka1-2/+2
As per [1]. [1]: https://packages.grafana.com Change-Id: I7087bafffc56b6e660ec77ebeadb9132525697bb
2022-12-06Drop elasticsearch, kibana and logstashMichal Nasiadka1-9/+9
Support has been dropped in kolla-ansible, the upgrade path is opensearch. Change-Id: I6f32aacb4e0b7dd1eb7206e02425b16f5beae4f0
2022-11-08Add a way to add other container enginesMarcin Juszkiewicz1-1/+1
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
2022-10-06Move KollaWorker stuff to separate fileMarcin Juszkiewicz1-7/+8
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
2022-10-06Move build related tasks to separate fileMarcin Juszkiewicz1-14/+15
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
2022-10-06Move status and log related things to separate fileMarcin Juszkiewicz1-37/+38
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
2022-09-27Move to CentOS Stream 9Marcin Juszkiewicz2-5/+4
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-08-22Bump minimum docker-py versionDr. Jens Harbott1-16/+0
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
2022-07-27Move to Ubuntu Jammy (22.04)Michal Nasiadka1-1/+1
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
2022-04-14drop install_type almost everywhereMarcin Juszkiewicz1-11/+0
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
2022-04-08kolla: drop 'binary' install typeMarcin Juszkiewicz1-8/+2
We no longer support binary images. This patch removes a way to build them. "--install-type" argument has one available option now. Later in cycle it will be ignored. Change-Id: If0e881d253d6a4c89ffe27831a661df321b6d5b6
2022-03-16Add enabled flag for sourcesMark Goddard1-11/+42
Sometimes it might be useful to disable a source for an image, e.g. for a plugin that is not used. This may be to reduce image sizes, or restrict the dependencies necessary to build images. This change adds a new 'enabled' option to each source definition. This allows sources, plugins or additions for each source image to be disabled individually. Change-Id: I31ee0744574fb3db96bee2e9f545600de53d9ee4
2021-09-03ceph: Update CentOS packages to PacificMark Goddard1-2/+2
Updates the CentOS images to use centos-release-ceph-pacific. This is in line with Ubuntu which gets Pacific from UCA. Debian remains on Nautilus. Change-Id: Ie1e77f9c7d83538c051362a8972745f184c72019
2021-08-24Debian/Ubuntu: handle APT keys in proper wayMarcin Juszkiewicz1-7/+33
apt-key is deprecated and in Debian 'bullseye' it complain when we use it the way we did. The right way is to store key files in separate directory and then, for each repo source file, point to proper key. And this is what this patch does. Both distros use the same keys now. More info: https://michael-prokop.at/blog/2021/02/16/how-to-properly-use-3rd-party-debian-repository-signing-keys-with-apt/ Change-Id: Ie19bf46236907d79cb42a5e94cd1067e952b8cbb
2021-07-28drop leftovers of RHEL supportMarcin Juszkiewicz2-60/+3
As a project we never built RHEL based images so support for them was not tested. Change-Id: I27dfe34ade088228d71f6857ec4f3ab28ee63915
2021-06-10Change network_mode default to hostMichaƂ Nasiadka1-10/+10
Kolla-Ansible deploys Docker without bridge by default [1]. [1]: https://review.opendev.org/c/openstack/kolla-ansible/+/751795 Change-Id: I7430b72f5d8abe59a7151df73e6d59898d942636
2021-05-17add openstack-python3-xena-jobs-arm64 jobricolin1-0/+5
This is a non-voting job to validate py3 unittests on AArch64 Also fixed test units to use source install type with Debian as Kolla does not support Debian/binary on !x86-64 Co-authored-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> Task: 41911 Story: 2007938 Change-Id: I6889555820adcaee8a86e70b5c3ea31c15e3192c
2021-04-26move to Debian 'bullseye'Marcin Juszkiewicz1-1/+1
Bullseye is now in hard freeze cycle and goes for release. https://release.debian.org/bullseye/freeze_policy.html Co-Authored-By: Michal Nasiadka <mnasiadka@gmail.com> Change-Id: I543965a2741cebfa759576a4c75669a7bacd4208