Some hosts in the kayobe inventory might not be in the kolla-ansible
inventory so it makes sense for kayobe to manage NTP.
Change-Id: Iacb579a46b0e9769a4c404a858d17968f74dd7e0
Depends-On: https://review.opendev.org/c/openstack/kayobe-config-dev/+/786040
Story: 2007872
Task: 40240
Adds a script for syncing feature flags from Kolla Ansible, and updates
the release docs to include this step. Also adds the inventory sync
step.
Change-Id: Id2bd48897d6b37a5006bad7f6e8597db20aa1b8b
If we try to create a new environment from a shared configuration inside
the same repository, we can produce an infinite loop by copying the
environment into itself. Ignore any existing environments directory
during environment creation.
Change-Id: Ic9d3d03192f515a055e41351a0bf25da7a7b0684
Story: 2002009
Task: 40038
This change adds support for policy-based routing via systemd-networkd.
Due to differences in the configuration mechanism, routing policy
rules are configured via dicts for Ubuntu, while remaining as strings
on CentOS. Ideally we would support both formats.
Story: 2004960
Task: 42217
Change-Id: I77aec0160eb7e4dd763326bfe6e3d9a44b248108
This change adds support for network configuration via systemd-networkd
on Ubuntu systems.
This is implemented via an Ansible Galaxy role,
stackhpc.systemd_networkd which was forked from
aruhier.systemd_networkd. Several improvements were made in
https://github.com/stackhpc/ansible-role-systemd-networkd/pull/1,
including:
* Add support for removing unexpected config files
* Use become where necessary
* Refactor config generation into a single task to improve performance
The systemd_networkd role does not add much abstraction on top of the
systemd-networkd configuration file format, which provides a lot of
flexibility at the expense of additional code in Kayobe. This code is
implemented as filter plugins, similarly to the existing
MichaelRigart.interfaces role.
This patch includes support for:
* Ethernet interfaces
* bridges
* bonds
* VLANs
* virtual Ethernet pairs (to connect Linux bridges and OVS bridges)
* static IP addresses
* static routes
* MTU
Some network attributes are currently not supported for
systemd-networkd:
* rules
* route options
* ethtool_opts
* zone
* allowed addresses
Story: 2004960
Task: 41881
Change-Id: I248b5bb9ce5a80a07a2a311cb3aca6daca920720
Updates the contributor documentation for the overcloud development
environment to include steps for running on Ubuntu.
Change-Id: I1dbb5978342261e8c8e36fbe270f238750808ad6
Story: 2004960
Task: 41550
It's now possible to change Docker's default 64M SHM size
for custom containers running on the seed.
Change-Id: Ic6c2ec38e8a22b8acc90e17a552e471aa8313f7d
This variable allows to customise the upper constraints file used to
install packages inside the ipa-build-dib virtual environment. This can
be used when we need a newer version of diskimage-builder than the one
available in upper constraints for the current release.
Change-Id: Idbe57e7edc3fae25153f5e24ad6b7847b1c4660c
* Capitalization
* Add missing ENV variable for provisioning seed as non-VM
* Add 'Python' keyword to avoid confusing venv with VM
Change-Id: I4fab6b1104cd3e71854827c8d476dc25f8d539bd
Kayobe currently supports definition of various different networks -
public, internal, tunnel, etc. These typically map to a VLAN or flat
network, with an IP subnet. When a cloud exceeds the size of a single
VLAN/subnet, this approach no longer works.
One way to resolve this is to have multiple subnets that map to a single
logical network, and provide routing between them. This is a similar
concept to neutron's routed networks, but for the control plane.
This change provides documentation for the currently tested parts of
this feature.
Change-Id: Ic06c6d4fff0fa568eb9ed3a9c30ce21c7699d965
Story: 2008180
Task: 40938
The critical part of this commit is adapting code that was still
sourcing env-vars. This file was removed from Bifrost in the Victoria
release, breaking the `kayobe seed deployment image build` command.
The other changes are not yet breaking Kayobe:
1) Release notes claim that OpenStackClient is no longer installed when
keystone is not enabled, but it appears to still be available. Use
the ironic native baremetal command instead except in playbooks
related to baremetal compute nodes (i.e. overcloud ironic).
2) The use of OS_CLOUD=bifrost-inspector is deprecated and should be
replaced by OS_CLOUD=bifrost.
Change-Id: I25078e69acdf41a4ef9957f99fe5047de54b778d
Story: 2008558
Task: 41696
This change adds a new 'scenarios' section to the configuration
documentation, with an initial 'all in one' scenario.
Change-Id: Ibe9cbbb59e2f72b18fdeb493feb085735edbbf8c
Story: 2004360
Task: 27960
Kayobe currently supports definition of various different networks -
public, internal, tunnel, etc. These typically map to a VLAN or flat
network, with an IP subnet. When a cloud exceeds the size of a single
VLAN/subnet, this approach no longer works.
One way to resolve this is to have multiple subnets that map to a single
logical network, and provide routing between them. This is a similar
concept to neutron's routed networks, but for the control plane.
An issue arising from this is that if different hosts can have different
network definitions for the internal and public networks, it is no
longer trivial to use a network attribute [1] to specify the VIP address
and FQDN. Furthermore, the play that generates Kolla Ansible's
globals.yml containing the VIP and FQDN variables runs as localhost,
which does not necessarily have the internal and public networks
defined.
To resolve this, we add global variables for the VIPs and FQDNs. The
default values are as before, except in the case where HAProxy is
disabled, which we no longer provide a useful default for. That
configuration is very rarely used in practice, and the need to reference
the IP address of a host in the network group makes it difficult to
define safely.
[1] https://docs.openstack.org/kayobe/latest/configuration/reference/network.html#global-network-configuration
Story: 2008180
Task: 40937
Change-Id: I2c428ffc2b285aee03d8f59ae7cd3fb7230ce4ae
To avoid switching existing deployments from devicemapper to overlay2,
we check the existing storage driver configuration directly with the
Docker daemon, or if unreachable by reading the /etc/docker/daemon.json
configuration file.
Co-Authored-By: Pierre Riteau <pierre@stackhpc.com>
Story: 2005667
Task: 30972
Change-Id: Iaf2ee8c9f302f4684ae039bb00b2e2e5969cf1fc
Kayobe generates a host_vars file for each host in the Kolla Ansible
inventory. These contain network interfaces and other host-specific
things. Currently this is done by iterating over all hosts, which does
not scale well with a large number of hosts.
This change extracts the host vars generation into a separate role, and
executes it in a play targeted at all hosts, with delegate_to:
localhost. This ensures that host variable files are generated in
parallel.
Story: 2007993
Task: 40629
Change-Id: Iae75e17024adee9c2874c14d3ed36f4c87ba48d7
Adds support for HTTP basic authentication with the Docker registry.
The kolla docker registry password is now written to passwords.yml.
Change-Id: Ie6e854a66a6660d4e02771fe2b5dd97af814194d
Story: 2007952
Task: 40429
The variables in yum.yml and yum-cron.yml were deprecated in Ussuri.
This patch removes them, and updates the defaults in dnf.yml.
Story: 2008160
Task: 40906
Change-Id: I97cc98dd2ff726e5885fefcab17f17796d9fd453