Syncs with Kolla Ansible feature flags and inventory for Wallaby
release, at commit 058dd6828d788b60b6803f24f53f1dfca0876e6b.
Change-Id: Ibd20a72bd29e20de016fe41de2f1691302e7e24d
Molecule also needs to be bumped to support Ansible 2.10
lint: section changed in Molecule 3.x - adapted.
molecule-docker added do test-reqs because it code has moved to it from
molecule core
pytest-testinfra and pytest-molecule needed for testinfra tests to work
[1]: https://github.com/ansible-community/molecule/issues/2872
Change-Id: I0299f5126ebd080f3912a76294b0013abe7747a0
The flags in etc/kayobe/kolla.yml were out of sync with
ansible/roles/kolla-ansible/vars/main.yml.
This commit sorts them all alphabetically and adds a script to simplify
generating the list.
TrivialFix
Change-Id: I0e3be19eed371853d80c401d6a46770a7d6dcbc5
* Always use Python 3
* Drop code paths for CentOS 7
* Drop support for Yum
* Remove support for host NTP daemon, always use chrony
* Switch references from 'yum_install_epel' to 'dnf_install_epel'
* Remove overcloud host image workaround for tagged VLAN admin network
* Remove the kayobe.utils.yum_install function, which is unused
Change-Id: I368f6edafed9779658798fc342116b4c1b3ffd48
Story: 2006574
Task: 39481
It leaves certain ceph mentions in globals.yml.j2 as it needs
syncing with kolla-ansible contents anyways
(these are all comments).
Change-Id: I05e9c6223583e9bb5dc0020edc0b56990275093c
Story: 2007295
Task: 38766
Currently we install python dependencies on the Ansible control host
each time the ip-allocation and console-allocation roles are executed.
This is inefficient, particularly in the case of the ip-allocation role
which is run serially for all hosts. It is also unnecessary since we
have these packages available in the Python environment used to execute
kayobe.
The kolla-ansible role also has an implicit dependency on PyYAML for
managing kolla passwords.
This change uses ansible_playbook_python as the Python interpreter for
the necessary tasks in these roles to avoid installing dependencies on
the system on CentOS 8 and Ubuntu. For CentOS 7 we still need to use the
platform Python, due to needing SELinux bindings.
Change-Id: Ic6a1c69a34241f4fbe617a0b12aec9b1528ba352
Story: 2006574
Task: 38825
The default is still Python 2. This is a necessary prerequisite for using
the master branch of kolla-ansible, which requires Python 3.
Change-Id: Ida5b60b723c8208bb7305c3d669eafdab6dbbe01
Story: 2004959
Task: 38767
Synchronises the globals.yml template, list of feature flags, and
inventory templates with the current state of kolla-ansible's
stable/train branch.
Change-Id: Ia81c3aba348ab8011d94a5f1584856df1c8361a3
Fixes an issue where multiple NTP daemons could be running on the
overcloud hosts, due to Kolla Ansible deploying a chrony container by
default starting with the Rocky release.
Kayobe now overrides this default, to ensure that chrony does not conflict
with the NTP daemon deployed on the host. To use the containerised chrony
daemon instead, set ``kolla_enable_chrony`` to ``true`` in
``${KAYOBE_CONFIG_PATH}/kolla.yml``. This will also disable the host NTP
daemon.
To ensure that chrony is not running, Kayobe removes the chrony container
if ``kolla_enable_chrony`` is ``false`` in the following commands:
* ``kayobe overcloud service deploy``
* ``kayobe overcloud service reconfigure``
* ``kayobe overcloud service upgrade``
The play in Kayobe is tagged with ``stop-chrony``.
Change-Id: I89a973c0b600abece79bddcba5a46cc28a4f1df9
Story: 2005272
Task: 30122
Uses the support [1] for database backups added to Kolla Ansible in the
Stein release.
Adds the following new commands:
kayobe overcloud database backup [--incremental]
kayobe overcloud database recover [--force-recovery-host <host>]
The recovery command is for recovering a clustered database that has
lost quorum.
[1] https://docs.openstack.org/kolla-ansible/latest/admin/mariadb-backup-and-restore.html
Change-Id: Ie16354cd01ea7dd83cd3d4058dd8451b8387600b
Story: 2005015
Task: 29493
Kayobe writes out several host variables to the Kolla ansible inventory
files, etc/kolla/inventory/seed and etc/kolla/inventory/overcloud. These
include ansible_host, and network interfaces such as api_interface,
ironic_dnsmasq_interface, etc.
In Ansible, these should have a higher precedence than the kolla ansible
group variables in ansible/group_vars/all.yml that set the defaults.
However, in Ansible 2.4+, if the host has the same name as a group that
it is in, the group variables now take precedence, meaning that it is
not possible to override them.
This was observed when using the kayobe-config-dev repo for testing,
where the seed host is in the seed group.
Admittedly ansible does tell you not to do this: [WARNING]:
Found both group and host with same name: localhost
The solution used here is to use a separate host_vars file for each
host. Alternatively we could enforce that hostnames and groups do not
overlap.
Change-Id: I349c8279d85a591689ac8108bce14d96889440fe
Story: 2004418
Task: 28065
Kolla Ansible already provides support for this and includes quite a few
exporters to scrape.
Change-Id: I30f5e0b57d88e457283e70a1b00abff9d4575a04
Story: 2003175
Task: 23319
This enables:
* Disabling MariaDB if external MariaDB is used
* Merging additional configuration with the default Kolla
provided configuration for MariaDB
Story: 2002704
Task: 22545
Change-Id: I345f56d50dd64b516d563a025ec877bc4a4034e1
a new variable, kolla_enable_ironic_ipxe is added to control whether or not
iPXE is used as the network boot program in ironic. You can set this is in
etc/kayobe/kolla.yml, e.g:
kolla_enable_ironic_ipxe: True
Change-Id: I7da15e7ceea580e5b7bee7fc732351cbec666f4c
Story: 2001949
Task: 15068
Depends-On: I08fca1864a00afb768494406c49e968920c83ae7
Use queens release of:
* Kolla
* Kolla ansible
* Bifrost
* IPA
* OpenStack services
Changes to kolla inventory files were made by comparing the multinode
inventory in kolla-ansible with the overcloud-services and
overcloud-components templates.
Kolla ansible added the concept of inner-compute and external-compute,
and these groups have been added to the top-level inventory.
We also synchronise globals.yml and kolla enablement flags.
Change-Id: I87b052f777567226e41294b955f736040e55e102
Story: 2001863
Task: 14315
This change supports deploying Apache Kafka.
Depends-On: Iab8d200c2450238f3c0c708d1f4184490f6e6284
for support in Kolla-Ansible.
Task: 6697
Story: 2001627
Change-Id: I22c79f75e9cfed647c03216b94bab5ee0790cbf2
Kolla (container images) and kolla-ansible (container deployment) are
separate concerns, and should be treated as such. Configuration
variables have been added for kolla-ansible which were previously shared
between the two projects:
kolla_venv -> kolla_ansible_venv
kolla_ctl_install_type -> kolla_ansible_ctl_install_type
Also, we introduce specific variables for the source code repository
checkout paths, which were previously both based on
source_checkout_path:
kolla_source_path
kolla_ansible_source_path
These changes help us to cleanly separate the configuration of paths on
the local (Ansible control) host, from those on the managed (target)
hosts. This is important because the local paths may be specific to the
environment in which the user is running kayobe, but the remote paths
are relatively fixed and specific to the cluster.
This allows a deployer to customise their inventory at various levels, by
providing a custom inventory template for one or more of the sections of the
inventory.
* Top level groups define the roles of hosts, e.g. controller or compute.
* Components define groups of services, e.g. nova or ironic.
* Services define single containers, e.g. nova-compute or ironic-api.