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] dcbf1d98b9
Change-Id: I3cc8455647339c67ba51620d5aff8a3acbf58dab
Partial-Bug: #2054685
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
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
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
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
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
Big patch drops all mentions of binary images support. Suggestions are
welcome how to split it into parts or handle better.
Change-Id: I5d5a46c6ce7734ceb8b844e17b43e359d7cac6e3
Set bifrost internal_ip variable to adapt to change [1].
[1]: https://review.opendev.org/#/c/748230/
Change-Id: Idf401536b482b4088f5fb66408917752fd71726c
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
Unneeded systemd units were never removed for Ubuntu 18.04.
Since Ubuntu 14.04 is no longer supported, this commit removes
the exemption for it.
Change-Id: I764a0e305a95ee9e330041f1e15d35b45a86aa72
CMD of image bifrost-deploy is set to "/sbin/init" which is part
of package "systemd-sysv" on common systemd-based distros.
Change-Id: Ie2195248443e37dc22b713ecd1eb6de2876446d3
Closes-Bug: 1840949
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
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
Bifrost was broken by the recent kolla change [1] to use an ENTRYPOINT
for dumb-init. The container failed to start because dumb-init was
trying to run /sbin/init, which expects to be pid 1.
[1] Id91ebb8b0ecc43946845de386350af0536dd661f
Change-Id: Id77ecfca09dfda8da984589f70a26433214ee3af
Closes-Bug: #1808326
Related-Bug: #1799642
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
centos based images have wrong label info,
these changes fix own image's name and build-date.
Change-Id: I1d13f8f386c8db12b5fbe5f8ecbbf9e3fbb4ba1c
Closes-Bug: #1680341
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
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
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
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
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
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
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
include_header and include_footer parameter is already removed, remove
them in all Dockerfiles.
Add missing footer block.
Change-Id: I90da03eb9f95a3827361d5f5ede65fde7d6be2b3
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
There are some bug in installing Ansible from source in bifrost, and
install fro pypi is more stable.
Change-Id: Ib51979fabbf57627179e657e35a3bbbdb13b552b
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
- 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