Merge "Ubuntu: add documentation & release note"

This commit is contained in:
Zuul 2021-05-06 10:35:43 +00:00 committed by Gerrit Code Review
commit 9c0bec4d3c
17 changed files with 133 additions and 62 deletions

View File

@ -10,9 +10,10 @@ It is possible to update packages on the overcloud hosts.
Package Repositories Package Repositories
-------------------- --------------------
If using custom package repositories, it may be necessary to update these prior If using custom DNF package repositories on CentOS, it may be necessary to
to running a package update. To do this, update the configuration in update these prior to running a package update. To do this, update the
``${KAYOBE_CONFIG_PATH}/dnf.yml`` and run the following command:: configuration in ``${KAYOBE_CONFIG_PATH}/dnf.yml`` and run the following
command::
(kayobe) $ kayobe overcloud host configure --tags dnf --kolla-tags none (kayobe) $ kayobe overcloud host configure --tags dnf --kolla-tags none

View File

@ -21,9 +21,10 @@ It is possible to update packages on the seed host.
Package Repositories Package Repositories
-------------------- --------------------
If using custom package repositories, it may be necessary to update these prior If using custom DNF package repositories on CentOS, it may be necessary to
to running a package update. To do this, update the configuration in update these prior to running a package update. To do this, update the
``${KAYOBE_CONFIG_PATH}/dnf.yml`` and run the following command:: configuration in ``${KAYOBE_CONFIG_PATH}/dnf.yml`` and run the following
command::
(kayobe) $ kayobe seed host configure --tags dnf --kolla-tags none (kayobe) $ kayobe seed host configure --tags dnf --kolla-tags none

View File

@ -52,16 +52,18 @@ configuration drive built by Bifrost, rather than the Bifrost default of
:diskimage-builder-doc:`simple-init <elements/simple-init/README>`. :diskimage-builder-doc:`simple-init <elements/simple-init/README>`.
``kolla_bifrost_dib_os_element`` ``kolla_bifrost_dib_os_element``
DIB base OS element. Default is ``centos``. DIB base OS element. Default is ``{{ os_distribution }}``.
``kolla_bifrost_dib_os_release`` ``kolla_bifrost_dib_os_release``
DIB image OS release. Default is ``8``. DIB image OS release. Default is ``{{ os_release }}``.
``kolla_bifrost_dib_elements_default`` ``kolla_bifrost_dib_elements_default``
*Added in the Train release. Use kolla_bifrost_dib_elements in earlier *Added in the Train release. Use kolla_bifrost_dib_elements in earlier
releases.* releases.*
List of default DIB elements. Default is ``["disable-selinux", List of default DIB elements. Default is ``["disable-selinux",
"enable-serial-console", "vm"]``. The ``vm`` element is poorly named, and "enable-serial-console", "vm"]`` when ``os_distribution`` is ``centos``, or
causes DIB to build a whole disk image rather than a single partition. ``["enable-serial-console", "vm"]`` otherwise. The ``vm`` element is
poorly named, and causes DIB to build a whole disk image rather than a
single partition.
``kolla_bifrost_dib_elements_extra`` ``kolla_bifrost_dib_elements_extra``
*Added in the Train release. Use kolla_bifrost_dib_elements in earlier *Added in the Train release. Use kolla_bifrost_dib_elements in earlier
releases.* releases.*

View File

@ -77,8 +77,8 @@ is ``stack``.
Typically, the image used to provision these hosts will not include this user Typically, the image used to provision these hosts will not include this user
account, so Kayobe performs a bootstrapping step to create it, as a different account, so Kayobe performs a bootstrapping step to create it, as a different
user. In cloud images, there is often a user named after the OS distro, e.g. user. In cloud images, there is often a user named after the OS distro, e.g.
``centos`` or ``ubuntu``. This user defaults to the name of the user running ``centos`` or ``ubuntu``. This user defaults to the ``os_distribution``
Kayobe, but may be set via the following variables: variable, but may be set via the following variables:
* ``seed_hypervisor_bootstrap_user`` * ``seed_hypervisor_bootstrap_user``
* ``seed_bootstrap_user`` * ``seed_bootstrap_user``
@ -87,12 +87,12 @@ Kayobe, but may be set via the following variables:
* ``monitoring_bootstrap_user`` * ``monitoring_bootstrap_user``
* ``storage_bootstrap_user`` * ``storage_bootstrap_user``
For example, to set the bootstrap user for controllers to ``centos``: For example, to set the bootstrap user for controllers to ``example-user``:
.. code-block:: yaml .. code-block:: yaml
:caption: ``controllers.yml`` :caption: ``controllers.yml``
controller_bootstrap_user: centos controller_bootstrap_user: example-user
PyPI Mirror and proxy PyPI Mirror and proxy
===================== =====================
@ -202,13 +202,13 @@ added to the Kayobe configuration.
ssh_key: ssh_key:
- "{{ lookup('file', kayobe_config_path ~ '/ssh-keys/id_rsa_bob.pub') }}" - "{{ lookup('file', kayobe_config_path ~ '/ssh-keys/id_rsa_bob.pub') }}"
Package Repositories DNF Package Repositories
==================== ========================
*tags:* *tags:*
| ``dnf`` | ``dnf``
Kayobe supports configuration of package repositories via DNF, via variables in On CentOS, Kayobe supports configuration of package repositories via DNF, via
``${KAYOBE_CONFIG_PATH}/dnf.yml``. variables in ``${KAYOBE_CONFIG_PATH}/dnf.yml``.
Configuration of dnf.conf Configuration of dnf.conf
------------------------- -------------------------
@ -295,11 +295,25 @@ installed by setting ``dnf_automatic_upgrade_type`` to ``default``. This may
cause the system to be less predictable as packages are updated without cause the system to be less predictable as packages are updated without
oversight or testing. oversight or testing.
Apt
===
On Ubuntu, Apt is used to manage packages and package repositories. Currently
Kayobe does not provide support for configuring custom Apt repositories.
Apt cache
---------
The Apt cache timeout may be configured via ``apt_cache_valid_time`` (in
seconds) in ``etc/kayobe/apt.yml``, and defaults to 3600.
SELinux SELinux
======= =======
*tags:* *tags:*
| ``disable-selinux`` | ``disable-selinux``
.. note:: SELinux applies to CentOS systems only.
SELinux is not supported by Kolla Ansible currently, so it is disabled by SELinux is not supported by Kolla Ansible currently, so it is disabled by
Kayobe. If necessary, Kayobe will reboot systems in order to apply a change to Kayobe. If necessary, Kayobe will reboot systems in order to apply a change to
the SELinux configuration. The timeout for waiting for systems to reboot is the SELinux configuration. The timeout for waiting for systems to reboot is

View File

@ -10,6 +10,7 @@ options.
kayobe kayobe
ansible ansible
os-distribution
physical-network physical-network
network network
routed-control-plane-networks routed-control-plane-networks

View File

@ -58,8 +58,9 @@ image build``.
``ipa_build_dib_env_default`` ``ipa_build_dib_env_default``
Dictionary of default environment variables to provide to Diskimage Builder Dictionary of default environment variables to provide to Diskimage Builder
(DIB) during IPA image build. Default is (DIB) during IPA image build. Default is
``{"DIB_REPOLOCATION_ironic_agent": "{{ ipa_build_source_url }}", ``{"DIB_RELEASE": "8-stream", "DIB_REPOLOCATION_ironic_agent": "{{
"DIB_REPOREF_ironic_agent": "{{ ipa_build_source_version }}"}``. ipa_build_source_url }}", "DIB_REPOREF_ironic_agent": "{{
ipa_build_source_version }}"}``.
``ipa_build_dib_env_extra`` ``ipa_build_dib_env_extra``
Dictionary of additional environment variables to provide to Diskimage Dictionary of additional environment variables to provide to Diskimage
Builder (DIB) during IPA image build. Default is empty. Builder (DIB) during IPA image build. Default is empty.

View File

@ -73,7 +73,8 @@ used to generate the Kolla configuration file, ``kolla-build.conf``, and also
affect :ref:`Kolla Ansible configuration <configuration-kolla-ansible-global>`. affect :ref:`Kolla Ansible configuration <configuration-kolla-ansible-global>`.
``kolla_base_distro`` ``kolla_base_distro``
Kolla base container image distribution. Default is ``centos``. Kolla base container image distribution. Options are ``centos``,
``debian``, or ``ubuntu``. Default is ``{{ os_distribution }}``.
``kolla_install_type`` ``kolla_install_type``
Kolla container image type: ``binary`` or ``source``. Default is Kolla container image type: ``binary`` or ``source``. Default is
``binary``. ``binary``.

View File

@ -71,6 +71,12 @@ supported:
On CentOS, each item should be a string describing an ``iproute2`` IP On CentOS, each item should be a string describing an ``iproute2`` IP
routing rule. routing rule.
On Ubuntu, each item should be a dict containing optional items ``from``,
``to``, ``priority`` and ``table``. ``from`` is the source address prefix
to match with optional prefix. ``to`` is the destination address prefix to
match with optional prefix. ``priority`` is the priority of the rule.
``table`` is the routing table ID.
``physical_network`` ``physical_network``
Name of the physical network on which this network exists. This aligns with Name of the physical network on which this network exists. This aligns with
the physical network concept in neutron. the physical network concept in neutron.
@ -168,6 +174,8 @@ If necessary, custom options may be added to the route:
- onlink - onlink
- metric 400 - metric 400
Note that custom options are not currently supported on Ubuntu.
Configuring a VLAN Configuring a VLAN
------------------ ------------------

View File

@ -0,0 +1,34 @@
===============
OS Distribution
===============
As of the Wallaby 10.0.0 release, Kayobe supports multiple Operating System
(OS) distributions. See the :ref:`support matrix <support-matrix-supported-os>`
for a list of supported OS distributions. The same OS distribution should be
used throughout the system.
The ``os_distribution`` variable in ``etc/kayobe/globals.yml`` can be used to
set the OS distribution to use. It may be set to either ``centos`` or
``ubuntu``, and defaults to ``centos``.
The ``os_release`` variable in ``etc/kayobe/globals.yml`` can be used to set
the release of the OS. When ``os_distribution`` is set to ``centos`` it may be
set to ``8-stream``, and this is its default value. When ``os_distribution`` is
set to ``ubuntu`` it may be set to ``focal``, and this is its default value.
These variables are used to set various defaults, including:
* Bootstrap users
* Overcloud host root disk image build configuration
* Seed VM root disk image
* Kolla base container image
Example: using Ubuntu
=====================
In the following example, we set the OS distribution to ``ubuntu``:
.. code-block:: yaml
:caption: ``globals.yml``
os_distribution: "ubuntu"

View File

@ -40,7 +40,8 @@ Prerequisites
This scenario requires: This scenario requires:
* a basic understanding of Linux, networking and OpenStack * a basic understanding of Linux, networking and OpenStack
* a single CentOS 8 host (VM or bare metal) * a single host running a :ref:`supported operating system
<support-matrix-supported-os>` (VM or bare metal)
* at least one network interface that has Internet access * at least one network interface that has Internet access
* an IP subnet with a free IP address for the OpenStack API virtual IP, and a * an IP subnet with a free IP address for the OpenStack API virtual IP, and a
range of free IP addresses for external network access range of free IP addresses for external network access

View File

@ -184,6 +184,15 @@ Use the correct hostname and IP address for your environment.
aio_ips: aio_ips:
controller0: 192.168.33.3 controller0: 192.168.33.3
The default OS distribution in Kayobe is CentOS. If using an Ubuntu host, set
the ``os_distribution`` variable in ``etc/kayobe/globals.yml`` to ``ubuntu``.
.. code-block:: yaml
:caption: ``etc/kayobe/globals.yml``
---
os_distribution: "ubuntu"
In a development environment, we may wish to tune some Kolla Ansible variables. In a development environment, we may wish to tune some Kolla Ansible variables.
Using QEMU as the virtualisation type will be necessary if KVM is not Using QEMU as the virtualisation type will be necessary if KVM is not
available. Reducing the number of OpenStack service workers helps to avoid available. Reducing the number of OpenStack service workers helps to avoid

View File

@ -56,10 +56,9 @@ Clone the ``kayobe-config-dev`` repository to ``config/src/kayobe-config``::
Inspect the Kayobe configuration and make any changes necessary for your Inspect the Kayobe configuration and make any changes necessary for your
environment. environment.
If using Ubuntu, configure Kolla Ansible to use the Ubuntu source images:: If using Ubuntu, configure the OS distribution::
sed -i -e 's/#kolla_base_distro:/kolla_base_distro: ubuntu/' config/src/kayobe-config/etc/kayobe/kolla.yml sed -i -e 's/#os_distribution:/os_distribution: ubuntu/' config/src/kayobe-config/etc/kayobe/globals.yml
sed -i -e 's/#kolla_install_type:/kolla_install_type: source/' config/src/kayobe-config/etc/kayobe/kolla.yml
If using Vagrant, follow the steps in :ref:`contributor-vagrant` to prepare If using Vagrant, follow the steps in :ref:`contributor-vagrant` to prepare
your environment for use with Vagrant and bring up a Vagrant VM. your environment for use with Vagrant and bring up a Vagrant VM.
@ -71,7 +70,7 @@ port ``eth1``, and an IP address of ``192.168.33.3/24``. This can be modified
by editing by editing
``config/src/kayobe-config/etc/kayobe/inventory/group_vars/controllers/network-interfaces``. ``config/src/kayobe-config/etc/kayobe/inventory/group_vars/controllers/network-interfaces``.
On CentOS, this can be added using the following commands:: This can be added using the following commands::
sudo ip l add breth1 type bridge sudo ip l add breth1 type bridge
sudo ip l set breth1 up sudo ip l set breth1 up
@ -80,30 +79,6 @@ On CentOS, this can be added using the following commands::
sudo ip l set eth1 up sudo ip l set eth1 up
sudo ip l set eth1 master breth1 sudo ip l set eth1 master breth1
On Ubuntu, the interface configuration must be persistent::
sudo apt update
sudo apt -y install ifupdown
sudo ip l add breth1 type bridge
sudo ip l add eth1 type dummy
cat << EOF | sudo tee /etc/network/interfaces.d/ifcfg-eth1
auto eth1
iface eth1 inet manual
EOF
cat << EOF | sudo tee /etc/network/interfaces.d/ifcfg-breth1
auto breth1
iface breth1 inet static
address 192.168.33.3
netmask 255.255.255.0
bridge_ports eth1
EOF
sudo ifup eth1
sudo ifup breth1
Usage Usage
----- -----
@ -231,6 +206,10 @@ Clone the ``kayobe-config-dev`` repository to ``config/src/kayobe-config``::
Inspect the Kayobe configuration and make any changes necessary for your Inspect the Kayobe configuration and make any changes necessary for your
environment. environment.
If using Ubuntu, configure the OS distribution::
sed -i -e 's/#os_distribution:/os_distribution: ubuntu/' config/src/kayobe-config/etc/kayobe/globals.yml
The default development configuration expects the presence of a bridge The default development configuration expects the presence of a bridge
interface on the seed host to carry provisioning traffic. The bridge should be interface on the seed host to carry provisioning traffic. The bridge should be
named ``breth1`` with a single port ``eth1``, and an IP address of named ``breth1`` with a single port ``eth1``, and an IP address of
@ -374,6 +353,10 @@ Clone the ``add-seed-and-hv`` branch of the ``kayobe-config-dev`` repository to
Inspect the Kayobe configuration and make any changes necessary for your Inspect the Kayobe configuration and make any changes necessary for your
environment. environment.
If using Ubuntu, configure the OS distribution::
sed -i -e 's/#os_distribution:/os_distribution: ubuntu/' config/src/kayobe-config/etc/kayobe/globals.yml
Usage Usage
----- -----

View File

@ -100,10 +100,10 @@ VM Provisioning
bare metal host or a VM provisioned outside of Kayobe, this step may be bare metal host or a VM provisioned outside of Kayobe, this step may be
skipped. Ensure that the Ansible inventory contains a host for the seed. skipped. Ensure that the Ansible inventory contains a host for the seed.
The seed hypervisor should have CentOS and ``libvirt`` installed. It should The seed hypervisor should have CentOS or Ubuntu with ``libvirt`` installed.
have ``libvirt`` networks configured for all networks that the seed VM needs It should have ``libvirt`` networks configured for all networks that the seed
access to and a ``libvirt`` storage pool available for the seed VM's volumes. VM needs access to and a ``libvirt`` storage pool available for the seed VM's
To provision the seed VM:: volumes. To provision the seed VM::
(kayobe) $ kayobe seed vm provision (kayobe) $ kayobe seed vm provision

View File

@ -15,8 +15,9 @@ Prerequisites
Currently Kayobe supports the following Operating Systems on the Ansible Currently Kayobe supports the following Operating Systems on the Ansible
control host: control host:
- CentOS 8 - CentOS Linux 8
- Ubuntu 16.04 - CentOS Stream 8 (since Wallaby 10.0.0 release)
- Ubuntu Focal 20.04 (since Wallaby 10.0.0 release)
See the :doc:`support matrix <support-matrix>` for details of supported See the :doc:`support matrix <support-matrix>` for details of supported
Operating Systems for other hosts. Operating Systems for other hosts.

View File

@ -22,8 +22,8 @@ OpenStack using Kolla, Ansible and Kayobe. The guide makes use of
baremetal environment running on a single hypervisor. baremetal environment running on a single hypervisor.
To complete the walkthrough you will require a baremetal or VM hypervisor To complete the walkthrough you will require a baremetal or VM hypervisor
running CentOS 8 with at least 32GB RAM & 80GB disk space. running CentOS 8 or Ubuntu Focal 20.04 (since Wallaby 10.0.0) with at least
Preparing the deployment can take some time - where possible it is 32GB RAM & 80GB disk space. Preparing the deployment can take some time -
beneficial to snapshot the hypervisor. We advise making a snapshot after where possible it is beneficial to snapshot the hypervisor. We advise making a
creating the initial 'seed' VM as this will make additional deployments snapshot after creating the initial 'seed' VM as this will make additional
significantly faster. deployments significantly faster.

View File

@ -2,12 +2,15 @@
Support Matrix Support Matrix
============== ==============
.. _support-matrix-supported-os:
Supported Operating Systems Supported Operating Systems
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kayobe supports the following host Operating Systems (OS): Kayobe supports the following host Operating Systems (OS):
* CentOS 8 * CentOS Stream 8 (since Wallaby 10.0.0 release)
* Ubuntu Focal 20.04 (since Wallaby 10.0.0 release)
.. note:: .. note::
@ -16,6 +19,12 @@ Kayobe supports the following host Operating Systems (OS):
Train documentation <https://docs.openstack.org/kayobe/train/centos8.html>`_ Train documentation <https://docs.openstack.org/kayobe/train/centos8.html>`_
for information on migrating to CentOS 8. for information on migrating to CentOS 8.
.. note::
CentOS Linux 8 (as opposed to CentOS Stream 8) is no longer supported as a
host OS. The Victoria release will in future support both CentOS Linux 8 and
CentOS Stream 8, and provides a route for migration.
Supported container images Supported container images
~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -0,0 +1,5 @@
---
features:
- |
Adds support for Ubuntu Focal 20.04 as a host and container Operating
System for seed, seed hypervisor and overcloud hosts.