These are only neccesary on network and compute nodes.
Co-authored-by: Mark Goddard <mark@stackhpc.com>
Change-Id: Id5af3969da63150e892201f7518f50a3da73e852
Story: 2009911
Task: 44740
Ansible failure handling is different when executing multiple top-level
playbooks (CLI arguments) vs. multiple plays within a top-level
playbook. If any hosts have failed or are unreachable at the end of a
top-level playbook, then ansible-playbook exits non-zero.
In contrast, execution will continue at the end of a mid-playbook play
if there are hosts that have not failed or become unreachable. This is
documented in [1].
Currently, Kayobe executes multiple top-level playbooks, most notably in
the host configure commands where there is a long list of them. This has
implications when working at scale, where failures are more common. If a
host fails at any point, then execution of the command will stop at the
end of the current playbook. This means that the command must be run
again for all hosts. Additionally, if any hosts are unreachable, then
the command is unable to progress at all without removing them from the
inventory.
This change refactors the host configure and host upgrade commands to
use a single top-level playbook.
[1] https://github.com/markgoddard/ansible-experiments/tree/master/14-error-handling
Story: 2009854
Task: 44482
Change-Id: Ia63d66097b10b6ddda30ad693636143f8b1a85e0
The ntp role attempts to mask NTP services that may conflict with
chrony. Currently we are seeing the following failure:
TASK ntp : Mask alternative NTP clients to prevent conflicts
Could not find the requested service systemd-timesyncd.service: host
The service_facts module shows that the service is not found:
"systemd-timesyncd.service": {
"name": "systemd-timesyncd.service",
"source": "systemd",
"state": "stopped",
"status": "not-found"
},
According to the Internet, this can happen if there are After/Before
dependencies in one service on another that does not exist.
This change fixes the handling of these not-found services to avoid the
error.
Story: 2009821
Task: 44401
Depends-On: https://review.opendev.org/c/openstack/kayobe/+/827404
Change-Id: I4b8a42704f2b0a145ee9dec433d91df67628cd9d
Currently we use the HEAD reference for OpenStack requirements. This can
create images that are incompatible with your version of OpenStack.
See:
https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/688911
Change-Id: I42026fafb1be0071f5ec94e81881c4a3bdd34af8
Story: 2009810
Task: 44371
This change bumps up the maximum supported Ansible version to 5.x
(ansible-core 2.12.x) and minimum to 4.x. This synchronises Kayobe with
Kolla Ansible (see change Ia373f9cc3bb69eba0288bbb3e497e8cadb7cc4d3).
ansible 5 / ansible-core 2.12 raises the minimum version of Python to
3.8, so CentOS Stream 8 environments will typically get ansible 4 /
ansible-core 2.11.
Change-Id: If4477e7fa4c022ead6cda4a34a72b342f115936f
Variable untemplated_dirs has been added to allow for
defining directories under kayobe/kolla/config which should be copied
instead of templated by kolla-openstack role.
This is needed to support custom themes for horizon -
change If9982c8e18be31772cb031ef72b7eebd4d768be5
Change-Id: I350f58c8a82f0f31608b34054e804c5c198d6806
EPEL is no longer required for a default installation. Let's disable it.
Also clean up the install_epel variable from Kolla Ansible globals.yml
template, since it never existed.
Story: 2009757
Task: 44227
Change-Id: I96eb4685f997e85ad2ee5318640d58d0287a016d
ironic-python-agent-builder has stable branches since Wallaby -
let's use them.
Also as per ipab docs [1] - the env vars for overriding ipa repo
are:
- DIB_REPOREF_ironic_python_agent
- DIB_REPOLOCATION_ironic_python_agent
[1]: https://docs.openstack.org/ironic-python-agent-builder/latest/admin/dib.html#building
Story: 2009755
Task: 44224
Change-Id: I025532156de831a0e7d025d61601a38202de10ff
Adds an ability to enable SNAT service on the seed hypervisor.
Depends-On: Ie42ab7a0dc9dd1ed1925b3a17134b3770ae8ba98
Change-Id: I0a2ff5caa01d54b1532d30d501b55ef23a6deff8
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
When multiple 'lib' components are present in the installation path,
Kayobe fails to detect the right installation prefix which causes
various commands to raise an error.
Rewrite logic to detect the last 'lib' component in path instead. This
should work as long as this function is not stored under a lib directory
inside the Kayobe source tree.
Change-Id: Ie9b15db6563546ede9ce9735292ec566d540432a
Story: 2009721
Task: 44109
This is necessary to deploy grafana as a replacement for the retired
monasca-grafana image.
Change-Id: I7b719aeb20cc63f41280e20063785d77b0334d64
Story: 2009717
Task: 44091
Prior to this change, the seed VM was provisioned using the
stackhpc.livirt-vm role with become=true. This resulted in the cached
image being owned by root. The infra VM provisioning uses
stackhpc.libvirt-vm without become=true. If an infra VM uses the same
image as the seed, this can lead to permission denied errors when
downloading a new image of the same name.
This change adds a workaround to fix up the ownership of the cached
image during infra VM provisioning to avoid this issue.
This change also drops become=true from stackhpc.libvirt-vm during seed
VM provisioning, and adds the same workaround there.
Story: 2009277
Task: 43534
Change-Id: Iade0d74cdb398365a567dbdc4b23de2416f3726d