Adds support for Podman as an alternative container engine. This builds
on the support added in kolla-ansible in the 2023.2 cycle.
Change-Id: I2c6befbdda7e684228065103feea7250a0ea3826
When kolla_base_arch and ansible_facts.architecture differs
we need to run multiarch/qemu-user-static image - see [1].
[1]: https://github.com/multiarch/qemu-user-static
Co-Authored-By: Bartosz Bezak <bartosz@stackhpc.com>
Change-Id: If149418f509c687c3e5d1072cc39a80af33dec5a
Kolla removed support for binary images in the Zed release, as well as
the install_type config option. It also changed the image tag format.
Yoga & earlier:
openstack.kolla/centos-source-base:yoga
Zed & later:
openstack.kolla/base:zed-centos-stream9
This change removes the kolla_install_type variable. It also adds a
kolla_base_distro_version variable, which is passed to kolla and
kolla-ansible.
The following two variables are also removed, since all images are now
of type source:
* overcloud_container_image_regex_map_source
* overcloud_container_image_regexes_source
Change-Id: I0023765438c0c73394c3465828c4d98f766d9350
By default, Ansible injects a variable for every fact, prefixed with
ansible_. This can result in a large number of variables for each host,
which at scale can incur a performance penalty. Ansible provides a
configuration option [0] that can be set to False to prevent this
injection of facts. In this case, facts should be referenced via
ansible_facts.<fact>.
This change updates all references to Ansible facts within Kayobe
from using individual fact variables to using the items in the
ansible_facts dictionary. This allows users to disable fact variable
injection in their Ansible configuration, which may provide some
performance improvement.
This change disables fact variable injection in the ansible
configuration used in CI, to catch any attempts to use the injected
variables.
[0] https://docs.ansible.com/ansible/latest/reference_appendices/config.html#inject-facts-as-vars
Story: 2007993
Task: 42464
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/791276
Change-Id: I14db53ed6e57d37bbd28dd5819e432e3fe6628b2
The use case is that I want to set these credentials via extra vars
like this:
kayobe overcloud container image build test -e kolla_docker_registry_username=$HARBOR_REGISTRY_USER -e kolla_docker_registry_password=$HARBOR_REGISTRY_PASSWORD
Supporting the empty string means that I don't need to use any
conditional logic.
Change-Id: Ie5c21597266c8e470994eba16f3c2ed2224d0dcb
* Use bash to execute kolla-build
* Remove backslashes from kolla-build command. YAML folded literal
block avoids the need for this by replacing newlines with spaces
* Distribution-specific package list when installing kolla
Change-Id: Icad129aaafb17023f3c9d007fb63466b23b1395a
Story: 2004960
Task: 41764
Ubuntu uses sh rather than bash by default, which does not support the
source keyword.
Change-Id: Ic36531c0f26fc7dee361bebb83a1d3089166c1eb
Story: 2004960
Task: 41490
Without this monasca images are not built unless explicitly requested.
Monasca images only support the kolla source type, not binary.
Also fixes image builds if the list of regular expressions for an image
build set is empty, kolla will build all images. In our case we actually
want to build none, since it means that no services are enabled for that
image set. The main example of where this could happen is when monasca
is disabled, the list of source-only images will be empty.
Change-Id: I395e73a06b690d4b443af7c5eb8827514f56d03d
TrivialFix
In certain environments, a user's primary group doesn't necessarily
match that of their username. This change updates various playbooks to
make use of the `ansible_user_gid` fact instead.
This change also makes ownership explicit by using `ansible_user_uid`
instead of `ansible_user` or `ansible_user_id`, where appropriate.
Change-Id: Ifc2ea7d95ec90e91791ccb10772b15d991379479
Story: 2002770
Task: 22636
Hosts in this group are used to build container images for both the seed and
overcloud hosts.
We also rename various overcloud image related variables from controller* to
overcloud*.
Turns out kolla_docker_registry is always defined, but is sometimes an
empty string or None. It defaults to None.
Before this change we always sent "--registry" but the kolla build CLI
would pick up our regex as the parameter associated with "--registry" so
we would get a strange image tag, and still build all the images.
Previously shared kolla-ansible's kolla_config_path, now uses
kolla_build_config_path.
Also adds a variable, config_path, which sets a base path for
configuration on the remote hosts.