aboutsummaryrefslogtreecommitdiff
path: root/docker/bifrost/bifrost-base
AgeCommit message (Collapse)AuthorFilesLines
2026-07-06Migrate to pyproject.tomlMichal Nasiadka3-84/+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>
2026-01-22Remove special handling for python3.12Pierre Riteau1-5/+0
This is not required anymore since we have switched to Rocky Linux 10. Change-Id: I10b68c2d3afa91cabf9341df75d8cf9f626c0f9b Signed-off-by: Pierre Riteau <pierre@stackhpc.com>
2026-01-12bifrost/kolla-toolbox: Bump ansible-core to 2.20Michal Nasiadka1-14/+2
Set inject_facts_as_vars to False to match what we do in Kolla-Ansible (and this option will default to False in 2.24) Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/972696 Change-Id: Iae2b70ca62fd68400bde9296edcda8e53f14a896 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2025-10-28Bump Ansible to 12 and ansible-core to 2.19Michal Nasiadka1-1/+1
Change-Id: I37f4515587cb040296612e35d4c643f0c2bea6f6 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2025-10-02Move repo enablement to respective rpm blocksMichal Nasiadka1-3/+4
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-09-05Drop ironic-inspectorMichal Nasiadka1-1/+0
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/951864 Change-Id: Ie7e607c5a9c6f8c2e36aea5d52dc2ffbe97dddb3 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
2025-05-02bifrost: fix creation of python3 lib symlinkPierre Riteau1-1/+2
When {{ venv_path }}/lib/python3 already exist and we run the ln command, we end up with: /var/lib/kolla/venv/lib/ ├── python3 -> python3.9 ├── python3.12 │   └── site-packages └── python3.9 ├── python3.12 -> python3.12 └── site-packages Instead, it should be: /var/lib/kolla/venv/lib/ ├── python3 -> python3.12 ├── python3.12 │   └── site-packages └── python3.9 └── site-packages Remove the existing link first to ensure it is created properly. Change-Id: I42dd2490d14070074fe1fa7ae9e0a4cbf095b06f
2025-04-04Merge "bifrost: bump Ansible version to 11"Zuul1-4/+28
2025-04-02bifrost: bump Ansible version to 11Grzegorz Koper1-4/+28
Depends-on: https://review.opendev.org/c/openstack/kolla-ansible/+/945498 Change-Id: I0e7ce418508f6684a20539c6b6129a134f91c71c
2025-03-27Merge "Change Bifrost Python upper-constraints source"Zuul1-0/+1
2025-02-05Change Bifrost Python upper-constraints sourceSeunghun Lee1-0/+1
Users can override the upper-constraints.txt by setting the source of openstack-base in kolla-build.conf. However, bifrost-base Dockerfile so far doesn't pass overridden upper-constraints file to Bifrost install playbook resulting the playbook not acknowledging it and just use upstream one. This change sets the source of Bifrost upper-constraints to use upper-constraints of openstack-base for consistency among all Kolla images With this, change the environment variable UPPER_CONSTRAINTS_FILE is only affecting kolla-toolbox image. Therefore, moved UPPER_CONSTRATINS_FILE variable example to the ``kolla_toolbox_pip_conf`` block of kolla-toolbox Dockerfile. Additionally, updated 'Python packages build options' section of documentation to represent latest method of changing Python package related options (including this change). Change-Id: I0a9c782ca1177ef84e4323cb1e5bfac0fb3f383c
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-08-23bifrost: bump Ansible version to 8 (rpm) and 9 (deb)Michal Nasiadka1-3/+3
This is used by bifrost in setup script [1]. [1]: https://opendev.org/openstack/bifrost/src/commit/1c95336154c9ed3995bb63c4b4d16f344290b796/scripts/env-setup.sh#L9 Change-Id: Ia2721dd7459a11324726910c99ea4c357047631e
2024-02-22Install ironic-inspector in bifrostWill Szumski1-0/+1
Bifrost has moved to use the native in-band inspection support in Ironic[1]. Some features are missing (such as introspection rules), so it may still be desirable to use ironic-inspector for these use cases. It also requires changes to the inspection interface of the ironic nodes (ironic-inspector -> agent), so it also desirable to support ironic-inspector for backwards compatability reasons. We should consider dropping ironic-inspector once the native interface reaches feature parity. This will install ironic-inspector into the image, but will still require configuration in bifrost.yml to use it. [1] https://github.com/openstack/bifrost/commit/dcbf1d98b92236be7e4b9d89169a66892127e63b Change-Id: I3cc8455647339c67ba51620d5aff8a3acbf58dab Partial-Bug: #2054685
2023-12-04bifrost: Don't use env-setupMichal Nasiadka1-2/+5
env-setup script removes epel-release and this breaks our CI template overrides. It is also more geared towards using in opendev CI - let's just install proper Ansible version instead. Change-Id: I68f645bef05dd15eba41479e3ef6713100fb87d0
2022-09-27Don't ignore the remaining apt-get update errorsRadosław Piliszek1-1/+1
Follow-up to I5ce2eb66a647e1805f086aa37942bf5d13eb4106 So far, I have only observed these causing weird errors later but, in theory, ignoring these could allow the rest of the code to use archival (so wrong) entries. Change-Id: I9cef5ceeb78d431ca232c7b196c48eef5d2ccbca
2022-09-27Move to CentOS Stream 9Marcin Juszkiewicz1-0/+6
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-05-21[bifrost] Force Bifrost to use the correct u-cRadosław Piliszek1-1/+1
Following up on [1], Bifrost also needs to use correct u-c and, surprise-surprise, this is set via a third variable, this time environment one for the bash script. Oh well. Let's do it. This has the added benefit of not requiring additional download of u-c as it reuses the already existing one. [1] https://review.opendev.org/c/openstack/kolla/+/842276 Change-Id: I2cc79c476d089977b57006dd4ce2e9a8c6206aa1
2022-05-18[bifrost] Force Bifrost to use the correct git branchRadosław Piliszek1-0/+2
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
2022-04-09docker: drop binary partsMarcin Juszkiewicz1-7/+0
Big patch drops all mentions of binary images support. Suggestions are welcome how to split it into parts or handle better. Change-Id: I5d5a46c6ce7734ceb8b844e17b43e359d7cac6e3
2021-10-02[bifrost] Drop workaroundsRadosław Piliszek1-9/+0
These are no longer required but block other cleanups. Change-Id: I13bc63447da878890730e9458b48267a8530d5af
2020-09-02Fix bifrost network configMichal Nasiadka1-0/+1
Set bifrost internal_ip variable to adapt to change [1]. [1]: https://review.opendev.org/#/c/748230/ Change-Id: Idf401536b482b4088f5fb66408917752fd71726c
2020-08-27bifrost: stop sourcing env-varsMark Goddard1-1/+1
This file has been removed from bifrost, and is not necessary for building. Change-Id: Id99d275eca5970e9897bbf3e289c37351ba9bdb5
2020-04-15CentOS 8: Switch last mentions of yum to dnfMark Goddard1-2/+2
Change-Id: I31e9742793cfb1abff9749083c9ce86000dae1af Partially-Implements: blueprint centos-rhel-8
2020-03-01Add block labels to all DockerfilesChristian Berendt1-0/+2
Change-Id: I9692dda817ef134d647247431565e1b58cf9da41
2020-02-26Actually disable EPEL, and epel-modularMark Goddard1-0/+3
The disable_extra_repos macro accepts a list as its only argument. We were calling it like this to disable EPEL: disable_extra_repos('epel') The macro interpreted this as a request to disable three repos, e, p, l. Thanks Python! Type validation to be improved separately. Additionally, on CentOS 8 the EPEL repository was not included in the repository mapping file, repos.yaml. There is also another EPEL repository on CentOS 8, epel-modular, which is enabled by default after installing epel-release. This change adds mappings for epel and epel-modular repos to repos.yaml, and fixes the disabling of epel in the base image, as well as disabling epel-modular. There are some cases where EPEL is still used (it seemed a bit too easy...), and the repository has been enabled for these images: * bifrost-base (nginx) * ironic-conductor (C7 only, shellinabox) * freezer-base (C7 only, trickle) * gnocchi-base (C8 binary only, python3-boto3) * mariadb (pv) * mongodb (C7 only, mongodb) * nova-spicehtml5proxy (C7 only, spice-html5) * telegraf (C7 only, python2-pip) A few other things were changed: * ironic-conductor does not require the ceph repo * python3-pika is no longer installed in the openstack-base image Related: blueprint remove-epel Change-Id: I3761825239dfc462072383cde6276c4fb3e1bf12
2019-12-17docker: fix 'Empty continuation line found' warningsMarcin Juszkiewicz1-6/+6
Whitespaces suxx ;D Change-Id: I4bfd437c914680a5dcbc67dfe9b0a9a74e2eb35d
2019-01-25Merge "Increase gather_facts timeout"Zuul1-0/+3
2019-01-21Increase gather_facts timeoutAlex Schultz1-0/+3
Bifrost containers are failing to build occassionally due to udevadm timeouts. This is likely related to an ansible issue, https://github.com/ansible/ansible/issues/43884, which can be worked around by increasing the gather facts timeout value. This change updates it to 30 seconds from the default 10. Change-Id: If252e41a012a24f31cf2f1414657ac18c819228f Closes-Bug: #1812259 Depends-On: https://review.openstack.org/632078
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-10-02Use rabbitmq package from OS distro for BifrostMark Goddard1-2/+7
The recent change to upgrade RabbitMQ broke deployment of Bifrost, since it does not support the newer version of RabbitMQ. This change reverts the bifrost image to use the package provided by the OS. Change-Id: Id6c9b879727734ea2c03b2d69e1a673354f52617
2018-07-26add additional Remove yum cacheJon Schlueter1-1/+1
as a followup to https://review.openstack.org/#/c/505143/ "Remove yum cache" Change-Id: Ifaaead6f6efe35808ebf79ea0d4474fbb60c8994
2017-11-02Cleanup APT lists after installing packagesChristian Berendt1-2/+7
/var/lib/apt/lists/ can take several MBs so get rid of them after packages are installed. Change-Id: Icfff55d92fa5c865f09db5112da28bf452a5a221
2017-05-03Override image's meta info.Jawon Choo1-1/+1
centos based images have wrong label info, these changes fix own image's name and build-date. Change-Id: I1d13f8f386c8db12b5fbe5f8ecbbf9e3fbb4ba1c Closes-Bug: #1680341
2017-04-20Use LABEL instead of MAINTAINER (deprecated) in all Dockerfile.j2Chen1-1/+1
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
2017-04-04debian: enable all images enabled for UbuntuMarcin Juszkiewicz1-2/+2
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
2017-03-18Switch to Kolla virtual environment for BifrostMohammed Naser1-0/+1
By default, the Bifrost Ansible playbooks will naturally run everything against /usr/bin/python which means that some modules, such as Shade when it has to be installed will use the system Python installation. By adding `ansible_python_interpreter` and pointing it towards our Python interpreter, it fixes the failures related to system Python and conflicts related to it (which in this case, resulted in Shade failing to build properly). Closes-Bug: #1673776 Change-Id: I2a5a2a3e2627a313b3306aeb1a910efe0e209496
2017-03-06Update bifrost-base Dockerfile.j2 template.James McCarthy1-0/+2
To facilitate build custimisations in template-overrides.j2 for bifrost-base, added a block section wrapping the execution of the ansible install.yaml playbook. Change-Id: I4eb18d03b7d7b2a2f65ec3c844af9149f9426949
2017-02-20Merge "Use install-pip macro in most source images"Jenkins1-1/+5
2017-02-17Use install-pip macro in most source imagesChao Guo1-1/+5
1. Enable customization of pip packages in source branch of most images 2. All pip packages install uniformly through install-pip macro, user can easily customize his own pip command (For example using a mirror) Co-Authored-By: Mauricio Lima <mauriciolimab@gmail.com> Change-Id: If09582039f690fa4136e8f33200d5da15e092da7
2017-02-16Use correct inventory file for BifrostMark Goddard1-1/+1
Bifrost now targets the play in the install.yml playbook at the target Ansible group instead of localhost. This change uses the target inventory file to pick up this group and avoid a 'noop' playbook. Change-Id: I1b351ccfea5684aeb1394e5a12ee848eb62447fe Closes-Bug: #1665413
2017-02-14Fix Kolla gateJeffrey Zhang1-1/+1
There are two issue in kolla gate now. Since source building is voting, we have to squash these two fixes into one Disable gpgcheck in grafana repo Seems there is something wrong in grafana repo gpg key. Disable gpgcheck until it is fixed Partial-Bug: #1664272 Add VENV variable in bifrost base Dockerfile * ANSIBLE_FROM_PYPI is removed in bifrost. * Only when VENV exist, ansible is installed in global rather then root user Change-Id: Ib96433e6d2a03941cace8ed15dafbb314c4551eb
2017-01-17use static uid/gid in imagesSam Yaple1-7/+5
This centralizes all user and group creation into a single source. This will fix any current and furture uid/gid mismatches (such as with nova-libvirt). In the process, we also unify users between the distros in a standard way. The users in the following containers change from thier defaults: Ubuntu: _chrony user is now chrony Ubuntu: memcache user is now memcached All: qemu user is used for ownership and socket permissions All uid and gid numbers are customizable via kolla-build.conf Co-Authored-By: Kris Lindgren <klindgren@godaddy.com> Change-Id: I120f26ab0683dc87d69727c3df8d4707e52a4543 Partially-Implements: blueprint static-uid-gid
2017-01-17install ansible from pypi in bifrostJeffrey Zhang1-1/+4
There are some bug in installing Ansible from source in bifrost, and install fro pypi is more stable. Change-Id: Ib51979fabbf57627179e657e35a3bbbdb13b552b
2016-11-04Add kolla_ prefix for all sudoers filesJeffrey Zhang1-2/+2
Add kolla_ prefix for all sudoers files in case of overwrite. TrivialFix Change-Id: I33cd58caf65a116c8442cb931699867b81dba616
2016-09-21Add "---" into some files of yamlcaoyuan1-0/+1
TrivialFix Change-Id: Id2cd736f136068514f26977b434b15a8b1ffc8be
2016-09-13Add header blocks to all DockerfilesPaul Bourke1-0/+2
Change needed to add header blocks to all Dockerfiles, similar to the base. Use case is to easily run something before packages are installed, e.g. to COPY a local rpm in that can be added to the package list. Change-Id: I1bbfdf0b762da0a392aa8bf47781315b45377bee Closes-Bug: 1618969
2016-08-31introduce bifrost-deploy containerSean Mooney3-0/+47
- This change adds support for building and deploying a bifrost container for baremetal provisioning. - This change documents how to manually deploy and bootstrap the bifrost container. Implements: blueprint bifrost-support Change-Id: I7d895839b11cbf916be33225875465c3358b5aa4