InfluxDB config file merging isn't supported in Kolla-Ansible because
it uses 'nested sections' which aren't supported by merge_configs. If
no override file is specified, Kayobe will write out an empty config
file which will then be used as the InfluxDB config file, breaking
InfluxDB. To prevent that happening this change removes the extra
config in Kayobe. It also fixes the directory to which the 'glob'
collected config is copied to, as Kolla-Ansible doesn't look for
Influxdb config files in the influxdb folder.
Change-Id: Iee4b7987934045f0355b4a87cebaebc1aa2bbe77
Story: 2003951
Task: 26868
The IPA ramdisk and kernel images may be built or downloaded via a URL.
If the latter option is used, any images previously downloaded to
$KOLLA_CONFIG_PATH/config/ironic/ironic-agent.* would previously not be
updated if the image contents change.
This change introduces variables for setting a URL to a file containing
checksums for the images. The algorithm used to compute the checksum is
also configurable (default sha256). This allows us to ensure we are
using the correct version of the image, while avoiding an expensive few
hundred megabyte image download just to check.
If a checksum is not specified, the image will be downloaded every time
to ensure that it is up to date.
Change-Id: I8120518ed98d61f3652f5205ce7ec9f798ab2aa1
Story: 2001660
Task: 6693
The libvirt_vm_vcpus and libvirt_vm_memory_mb variables are required by
the stackhpc.libvirt-vm role even when setting libvirt_vm_state to
absent. Without these variables, `kayobe seed vm deprovision` fails with
the following error:
FAILED! => {"msg": "'libvirt_vm_vcpus' is undefined"}
Change-Id: If74f4229cf777328e3a02794067caae7aa731a80
It seems that this has been named install_type since the beginning [1].
[1] https://github.com/openstack/kolla/commit/
620d610eaaf03217f3a038c031fe28ce43132166
Change-Id: Ie48546d0ef44e04ca0b1b8cd046acb2f127f38c9
Story: 2003904
Task: 26782
manage_firewall has been deprecated in favor of pxe_filter:
7b27585463 (diff-73313fdfbb51553077f2322499ad8b66R349)
In addition the firewall section has been renamed to iptables:
7b27585463
This seems to affect both queens and rocky.
Change-Id: I439515441f0931c09b3d706613d0f721e8b50b6d
It may be necessary to install extra Python packages inside the
kolla-ansible virtualenv, such as when required by Ansible plugins. For
example, using the hashi_vault lookup plugin requires the hvac Python
package to be installed.
This patch adds a kolla_ansible_venv_extra_requirements list variable
which contains Python package requirements to add to the kolla-ansible
requirements file. Its default value is an empty list.
Change-Id: Ie0541dc05e2ab94af230d0113a23c544755424c7
If upgrading the kayobe control host environment via kayobe control host
upgrade, kolla-ansible will be upgraded in its virtual environment if
the specified source repo and version are different than those
installed. However, other dependencies, including ansible, will
not be upgraded unless the version constraints require it. Ansible is
specified with an upper bound on the version, so typically this will be
satisfied during an upgrade and will not trigger an upgrade.
This change uses the 'latest' state for the pip module to ensure
packages are updated.
Change-Id: Ica38a1cdfb57c4be81468607800b26fdf3209fe7
Story: 2003878
Task: 26737
Update the enable flag for services required by Monasca, rather
than just building the image for the service when Monasca is enabled.
TrivialFix
Change-Id: Ia66bf6d54dd35519ba629901fac9a98892c7e24d
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
Add the ability to specify a list of users for whom a PyPI mirror should
be configured for commands such as `pip`. This is accomplished by
installing a couple of configuration files in each user's home directory.
Change-Id: I21304b32c0c686c8dde2e3e1c0d2e2cd07af1eef
Story: 2003315
This will update the the deploy_ramdisk and
deploy kernel properties of 'Driver info'
field on Ironic nodes if the locally built
or externally referenced images are updated.
Change-Id: Id3997db452dde6e6e242a9b1091cb219c53ebda1
Adds support for configuration of per-host network interfaces in Kolla Ansible.
Previously, all interfaces were configured in globals.yml, meaning that all
hosts used the same interface names. Now, interfaces are configured for each
host via inventory files.
This does have the drawback that host entries in the inventory are rather long
and not too readable. An improvement on this could be to generate host_vars
files. With a little more intelligence, it would be possible to use group_vars
files or even globals.yml when interfaces are uniform within a group or
globally.
Change-Id: I95a128d762ff9faf70467f83cb276a5ab619d1ea
Story: 2001658
Task: 6691
The latest image is currently failing to download, with the following
error:
no matching manifest for unknown in the manifest list entries
This is currently blocking CI.
Change-Id: I3b4acadd53fe171e71ee16e0eb0b7a711fa97a4f
TrivialFix
Remove testing playbooks, and compute-node-flavors.yml for
autogenerating flavors from baremetal nodes. These are no longer used.
Change-Id: I41903c0110e4b0f4a31942fd41cc9e6fde2a46e2
This bug was previously fixed but the fix did not cover all cases. This
issue is still present if an IP address other than 127.0.0.1 or the
admin IP address (but not the internal API IP address, which is correct)
is in /etc/hosts. For example, in CI we often see 127.0.1.1.
This change removes all entries from /etc/hosts for the host's current
hostname, other than the internal API IP address. It also adds a call to
rabbitmqctl status to verify that the change has worked.
Related: We ought to improve the kolla ansible prechecks to catch the
case when there is more than one IP address mapping for the host's
current hostname.
Change-Id: I2cb9928e04005c6961f3de7c571c9a06361c4f23
Story: 2003496
Task: 24773
Gather facts prior to using the stackhpc.os-shade role. This is required
following a recent change in that role to reference the ansible_user_uid and
ansible_user_gid facts.
Allow 'kayobe baremetal compute rename' command to ignore compute nodes in the
ansible inventory but not found in ironic.
Change-Id: I75a2f0dd0192e41de7b91376bb32b4149df04a60
TrivialFix
If Kolla Ansible config files are not readable by the kayobe (stack)
user, the command will fail. This is fixed by using become.
Also improves the command output, by showing only the path of each file
rather than the full stat result.
Change-Id: I466e6a75822a1b2d2f91c9fadc9730c2cdb5bba0
TrivialFix
This adds `kolla_inspector_extra_kernel_options` to the
inspector.ipxe boot script. This is necessary to get the
inspector to collect the necessary LLDP data,
extra hardware data, etc. that is required for various
introspection rules to function correctly.
Change-Id: Ie7d6e1f12fb438e3b7e2c2a9de3ad8853947bee0