Remove kolla_install_type variable

Kolla removed support for binary images in the Zed release, as well as
the install_type config option. It also changed the image tag format.

Yoga & earlier:

  openstack.kolla/centos-source-base:yoga

Zed & later:

  openstack.kolla/base:zed-centos-stream9

This change removes the kolla_install_type variable. It also adds a
kolla_base_distro_version variable, which is passed to kolla and
kolla-ansible.

The following two variables are also removed, since all images are now
of type source:

* overcloud_container_image_regex_map_source
* overcloud_container_image_regexes_source

Change-Id: I0023765438c0c73394c3465828c4d98f766d9350
This commit is contained in:
Mark Goddard 2022-12-01 12:02:43 +00:00 committed by Pierre Riteau
parent 744ca0918f
commit 3c1b9c4d9a
18 changed files with 80 additions and 84 deletions

View File

@ -20,8 +20,7 @@
- name: Display the regexes for container images that will be built - name: Display the regexes for container images that will be built
debug: debug:
msg: > msg: >
Building container images of type Building container images matching
'{{ item.type | default(kolla_install_type) }}' matching
'{{ item.regexes }}'. Build logs will be appended to '{{ item.regexes }}'. Build logs will be appended to
{{ kolla_build_log_path }}. {{ kolla_build_log_path }}.
with_items: "{{ container_image_sets }}" with_items: "{{ container_image_sets }}"
@ -52,7 +51,6 @@
. {{ kolla_venv }}/bin/activate && . {{ kolla_venv }}/bin/activate &&
kolla-build kolla-build
--config-dir {{ kolla_build_config_path }} --config-dir {{ kolla_build_config_path }}
{% if item.type is defined %}--type {{ item.type }}{% endif %}
{% if kolla_docker_registry is not none %}--registry {{ kolla_docker_registry }}{% endif %} {% if kolla_docker_registry is not none %}--registry {{ kolla_docker_registry }}{% endif %}
{% if push_images | bool %}--push{% endif %} {% if push_images | bool %}--push{% endif %}
{% if nocache | bool %}--nocache{% endif %} {% if nocache | bool %}--nocache{% endif %}

View File

@ -53,12 +53,22 @@ kolla_node_custom_config_path: "{{ kolla_config_path }}/config"
# Kolla configuration. # Kolla configuration.
# Kolla base container image distribution. Options are "centos", "debian", # Kolla base container image distribution. Options are "centos", "debian",
# "ubuntu". Default is # "rocky", "ubuntu". Default is
# {{ 'centos' if os_distribution == 'rocky' else os_distribution }}. # {{ 'centos' if os_distribution == 'rocky' else os_distribution }}.
kolla_base_distro: "{{ 'centos' if os_distribution == 'rocky' else os_distribution }}" kolla_base_distro: "{{ 'centos' if os_distribution == 'rocky' else os_distribution }}"
# Kolla container image type: binary or source. # Kolla base container image distribution version default map.
kolla_install_type: "source" # Defines default versions for each distribution.
kolla_base_distro_version_default_map: {
"centos": "stream9",
"debian": "bullseye",
"rocky": "9",
"ubuntu": "jammy",
}
# Kolla base container image distribution version.
# Default is kolla_base_distro_version_default_map[kolla_base_distro].
kolla_base_distro_version: "{{ kolla_base_distro_version_default_map[kolla_base_distro] }}"
# Docker namespace to use for Kolla images. # Docker namespace to use for Kolla images.
kolla_docker_namespace: "openstack.kolla" kolla_docker_namespace: "openstack.kolla"
@ -85,8 +95,8 @@ kolla_openstack_release: "{{ openstack_release }}"
# {{ kolla_openstack_release }}. # {{ kolla_openstack_release }}.
kolla_tag: "{{ kolla_openstack_release }}" kolla_tag: "{{ kolla_openstack_release }}"
# Dict mapping names of sources to their definitions for # Dict mapping names of sources to their definitions.
# kolla_install_type=source. See kolla.common.config for details. # See kolla.common.config for details.
# Example: # Example:
# kolla_sources: # kolla_sources:
# ironic-base: # ironic-base:
@ -115,8 +125,7 @@ seed_container_image_regexes: "{{ seed_container_image_regex_map | selectattr('e
# List of container image sets for the seed. This is used when building # List of container image sets for the seed. This is used when building
# container images to determine which images to build. # container images to determine which images to build.
seed_container_image_sets: seed_container_image_sets:
- type: source - regexes: "{{ seed_container_image_regexes | join(' ') }}"
regexes: "{{ seed_container_image_regexes | join(' ') }}"
# List of regular expressions matching names of container images to build for # List of regular expressions matching names of container images to build for
# overcloud hosts. # overcloud hosts.
@ -149,6 +158,8 @@ overcloud_container_image_regex_map:
enabled: "{{ kolla_enable_etcd | bool }}" enabled: "{{ kolla_enable_etcd | bool }}"
- regex: ^fluentd - regex: ^fluentd
enabled: "{{ kolla_enable_fluentd | bool }}" enabled: "{{ kolla_enable_fluentd | bool }}"
- regex: freezer
enabled: "{{ kolla_enable_freezer | bool }}"
- regex: ^glance - regex: ^glance
enabled: "{{ kolla_enable_glance | bool }}" enabled: "{{ kolla_enable_glance | bool }}"
- regex: ^gnocchi - regex: ^gnocchi
@ -197,13 +208,14 @@ overcloud_container_image_regex_map:
enabled: "{{ kolla_enable_memcached | bool }}" enabled: "{{ kolla_enable_memcached | bool }}"
- regex: ^mistral - regex: ^mistral
enabled: "{{ kolla_enable_mistral | bool }}" enabled: "{{ kolla_enable_mistral | bool }}"
- regex: monasca
enabled: "{{ kolla_enable_monasca | bool }}"
- regex: ^multipathd - regex: ^multipathd
enabled: "{{ kolla_enable_multipathd | bool }}" enabled: "{{ kolla_enable_multipathd | bool }}"
- regex: ^murano - regex: ^murano
enabled: "{{ kolla_enable_murano | bool }}" enabled: "{{ kolla_enable_murano | bool }}"
- regex: neutron-server - regex: neutron-server
enabled: "{{ kolla_enable_neutron | bool }}" enabled: "{{ kolla_enable_neutron | bool }}"
# Neutron SFC agent not currently supported on CentOS binary builds.
- regex: "neutron-\\(dhcp\\|l3\\|metadata\\|linuxbridge\\|openvswitch\\)-agent" - regex: "neutron-\\(dhcp\\|l3\\|metadata\\|linuxbridge\\|openvswitch\\)-agent"
enabled: "{{ kolla_enable_neutron | bool }}" enabled: "{{ kolla_enable_neutron | bool }}"
- regex: neutron-mlnx-agent - regex: neutron-mlnx-agent
@ -263,26 +275,10 @@ overcloud_container_image_regex_map:
# overcloud hosts. # overcloud hosts.
overcloud_container_image_regexes: "{{ overcloud_container_image_regex_map | selectattr('enabled') | map(attribute='regex') | list }}" overcloud_container_image_regexes: "{{ overcloud_container_image_regex_map | selectattr('enabled') | map(attribute='regex') | list }}"
# List of regular expressions matching names of container images to build for
# overcloud hosts. These images only support source builds.
overcloud_container_image_regex_map_source:
- regex: freezer
enabled: "{{ kolla_enable_freezer | bool }}"
- regex: monasca
enabled: "{{ kolla_enable_monasca | bool }}"
# List of regular expressions matching names of container images to build for
# overcloud hosts. These images onlt support source builds.
overcloud_container_image_regexes_source: "{{ overcloud_container_image_regex_map_source | selectattr('enabled') | map(attribute='regex') | list }}"
# List of container image sets for overcloud hosts. This is used when building # List of container image sets for overcloud hosts. This is used when building
# container images to determine which images to build. # container images to determine which images to build.
overcloud_container_image_sets: overcloud_container_image_sets:
# Default image type.
- regexes: "{{ overcloud_container_image_regexes | join(' ') }}" - regexes: "{{ overcloud_container_image_regexes | join(' ') }}"
# Source-only images.
- regexes: "{{ overcloud_container_image_regexes_source | join(' ') }}"
type: source
# Dict mapping Jinja2 block names in kolla's Docker images to their contents. # Dict mapping Jinja2 block names in kolla's Docker images to their contents.
kolla_build_blocks: {} kolla_build_blocks: {}

View File

@ -7,7 +7,7 @@
swift_ring_build_image_name: swift-object swift_ring_build_image_name: swift-object
# Full name of the kolla container image used to build rings. # Full name of the kolla container image used to build rings.
swift_ring_build_image: "{{ kolla_docker_registry ~ '/' if kolla_docker_registry else '' }}{{ kolla_docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-{{ swift_ring_build_image_name }}:{{ kolla_openstack_release }}" swift_ring_build_image: "{{ kolla_docker_registry ~ '/' if kolla_docker_registry else '' }}{{ kolla_docker_namespace }}/{{ swift_ring_build_image_name }}:{{ openstack_release }}-{{ kolla_base_distro }}-{{ kolla_base_distro_version }}"
# Ansible host pattern matching hosts on which Swift object storage services # Ansible host pattern matching hosts on which Swift object storage services
# are deployed. The default is to use hosts in the 'storage' group. # are deployed. The default is to use hosts in the 'storage' group.

View File

@ -10,3 +10,4 @@
kolla_build_config_paths_extra: kolla_build_config_paths_extra:
- "{{ kayobe_config_path }}" - "{{ kayobe_config_path }}"
- "{{ kayobe_env_config_path }}" - "{{ kayobe_env_config_path }}"
kolla_base_tag: "{{ kolla_base_distro_version }}"

View File

@ -100,11 +100,11 @@ kolla_overcloud_inventory_kolla_top_level_groups: []
############################################################################### ###############################################################################
# Kolla-ansible global configuration options. # Kolla-ansible global configuration options.
# Valid options are [ centos, fedora, oraclelinux, ubuntu ] # Valid options are [ centos, debian, rocky, ubuntu ]
kolla_base_distro: kolla_base_distro:
# Valid options are [ binary, source ] # Kolla base container image distribution version.
kolla_install_type: kolla_base_distro_version:
# Docker namespace to use for Kolla images. # Docker namespace to use for Kolla images.
kolla_docker_namespace: kolla_docker_namespace:

View File

@ -1,4 +1,12 @@
--- ---
# TODO(mgoddard): Remove this task in the Antelope release.
- name: Fail if kolla_install_type is defined
fail:
msg: >
Support for binary images was removed in the Zed release.
kolla_install_type should no longer be set.
when: kolla_install_type is defined
# NOTE: We're not looping over the two inventory files to avoid having the file # NOTE: We're not looping over the two inventory files to avoid having the file
# content displayed in the ansible-playbook output. # content displayed in the ansible-playbook output.

View File

@ -11,11 +11,10 @@
# Valid options are [ COPY_ONCE, COPY_ALWAYS ] # Valid options are [ COPY_ONCE, COPY_ALWAYS ]
config_strategy: "COPY_ALWAYS" config_strategy: "COPY_ALWAYS"
# Valid options are ['centos', 'debian', 'oraclelinux', 'rhel', 'ubuntu'] # Valid options are ['centos', 'debian', 'rocky', 'ubuntu']
kolla_base_distro: "{{ kolla_base_distro }}" kolla_base_distro: "{{ kolla_base_distro }}"
# Valid options are [ binary, source ] kolla_base_distro_version: "{{ kolla_base_distro_version }}"
kolla_install_type: "{{ kolla_install_type }}"
# Valid option is Docker repository tag # Valid option is Docker repository tag
openstack_release: "{{ kolla_openstack_release }}" openstack_release: "{{ kolla_openstack_release }}"
@ -521,20 +520,6 @@ ironic_inspector_kernel_cmdline_extras:
# telemetry data. # telemetry data.
#telegraf_enable_docker_input: "no" #telegraf_enable_docker_input: "no"
#####################################
# Bifrost - Bare Metal Provisioning
#####################################
# The Bifrost deployment image only supports a source installation.
bifrost_install_type: source
#################################
# Monasca - Monitoring & Alerting
#################################
# Monasca doesn't support binary type container builds
monasca_install_type: source
############################################ ############################################
# Grafana - Data visualisation & Monitoring # Grafana - Data visualisation & Monitoring
############################################ ############################################

View File

@ -26,7 +26,7 @@
kolla_ansible_passwords_path: "{{ temp_path }}/passwords.yml" kolla_ansible_passwords_path: "{{ temp_path }}/passwords.yml"
# Required config. # Required config.
kolla_base_distro: "fake-distro" kolla_base_distro: "fake-distro"
kolla_install_type: "fake-install-type" kolla_base_distro_version: "1.23"
kolla_docker_namespace: "fake-namespace" kolla_docker_namespace: "fake-namespace"
kolla_openstack_release: "fake-release" kolla_openstack_release: "fake-release"
kolla_internal_vip_address: "10.0.0.1" kolla_internal_vip_address: "10.0.0.1"
@ -67,7 +67,7 @@
expected_variables: expected_variables:
config_strategy: "COPY_ALWAYS" config_strategy: "COPY_ALWAYS"
kolla_base_distro: "fake-distro" kolla_base_distro: "fake-distro"
kolla_install_type: "fake-install-type" kolla_base_distro_version: "1.23"
openstack_release: "fake-release" openstack_release: "fake-release"
kolla_internal_vip_address: "10.0.0.1" kolla_internal_vip_address: "10.0.0.1"
kolla_internal_fqdn: "fake.internal.fqdn" kolla_internal_fqdn: "fake.internal.fqdn"

View File

@ -86,7 +86,7 @@
kolla_ansible_user: "fake-user" kolla_ansible_user: "fake-user"
kolla_ansible_group: "fake-group" kolla_ansible_group: "fake-group"
kolla_base_distro: "fake-distro" kolla_base_distro: "fake-distro"
kolla_install_type: "fake-install-type" kolla_base_distro_version: "1.23"
kolla_docker_namespace: "fake-namespace" kolla_docker_namespace: "fake-namespace"
kolla_docker_registry: "fake-registry" kolla_docker_registry: "fake-registry"
kolla_docker_registry_username: "fake-username" kolla_docker_registry_username: "fake-username"
@ -229,7 +229,7 @@
kolla_user: "fake-user" kolla_user: "fake-user"
kolla_group: "fake-group" kolla_group: "fake-group"
kolla_base_distro: "fake-distro" kolla_base_distro: "fake-distro"
kolla_install_type: "fake-install-type" kolla_base_distro_version: "1.23"
openstack_release: "fake-release" openstack_release: "fake-release"
kolla_internal_vip_address: "10.0.0.1" kolla_internal_vip_address: "10.0.0.1"
kolla_internal_fqdn: "fake.internal.fqdn" kolla_internal_fqdn: "fake.internal.fqdn"

View File

@ -58,7 +58,7 @@
kolla_ansible_passwords_path: "{{ temp_path }}/passwords.yml" kolla_ansible_passwords_path: "{{ temp_path }}/passwords.yml"
# Required config. # Required config.
kolla_base_distro: "fake-distro" kolla_base_distro: "fake-distro"
kolla_install_type: "fake-install-type" kolla_base_distro_version: "1.23"
kolla_docker_namespace: "fake-namespace" kolla_docker_namespace: "fake-namespace"
kolla_openstack_release: "fake-release" kolla_openstack_release: "fake-release"
kolla_internal_vip_address: "10.0.0.1" kolla_internal_vip_address: "10.0.0.1"

View File

@ -25,7 +25,7 @@
kolla_ansible_passwords_path: "{{ temp_path }}/passwords.yml" kolla_ansible_passwords_path: "{{ temp_path }}/passwords.yml"
# Required config. # Required config.
kolla_base_distro: "fake-distro" kolla_base_distro: "fake-distro"
kolla_install_type: "fake-install-type" kolla_base_distro_version: "1.23"
kolla_docker_namespace: "fake-namespace" kolla_docker_namespace: "fake-namespace"
kolla_openstack_release: "fake-release" kolla_openstack_release: "fake-release"
kolla_internal_vip_address: "10.0.0.1" kolla_internal_vip_address: "10.0.0.1"

View File

@ -12,11 +12,11 @@ kolla_build_config_paths_extra: []
# Paths to extra kolla configuration files. # Paths to extra kolla configuration files.
kolla_build_config_paths: "{{ kolla_build_config_paths_default + kolla_build_config_paths_extra }}" kolla_build_config_paths: "{{ kolla_build_config_paths_default + kolla_build_config_paths_extra }}"
# Valid options are [ centos, fedora, oraclelinux, ubuntu ] # Valid options are [ centos, debian, rocky, ubuntu ]
kolla_base_distro: kolla_base_distro:
# Valid options are [ binary, source ] # Kolla base container image tag.
kolla_install_type: kolla_base_tag:
# Docker namespace to use for Kolla images. # Docker namespace to use for Kolla images.
kolla_docker_namespace: kolla_docker_namespace:
@ -24,8 +24,8 @@ kolla_docker_namespace:
# Valid option is Docker repository tag # Valid option is Docker repository tag
kolla_tag: kolla_tag:
# Dict mapping names of sources to their definitions for # Dict mapping names of sources to their definitions.
# kolla_install_type=source. See kolla.common.config for details. # See kolla.common.config for details.
# Example: # Example:
# kolla_sources: # kolla_sources:
# ironic-base: # ironic-base:

View File

@ -3,8 +3,8 @@
# Base container image distribution. # Base container image distribution.
base={{ kolla_base_distro }} base={{ kolla_base_distro }}
# Method of OpenStack install. Valid options are [ binary, source ] # Base container image tag.
install_type={{ kolla_install_type }} base_tag={{ kolla_base_tag }}
# Docker namespace to use for Kolla images. # Docker namespace to use for Kolla images.
namespace={{ kolla_docker_namespace }} namespace={{ kolla_docker_namespace }}

View File

@ -114,9 +114,9 @@ accessed.
``kolla_base_distro`` ``kolla_base_distro``
Kolla base container image distribution. Default is ``centos``. Kolla base container image distribution. Default is ``centos``.
``kolla_install_type`` ``kolla_base_distro_version``
Kolla container image type: ``binary`` or ``source``. Default is Kolla base container image distribution version. Default is dependent on
``source``. ``kolla_base_distro``.
``kolla_docker_registry`` ``kolla_docker_registry``
URL of docker registry to use for Kolla images. Default is not set, in URL of docker registry to use for Kolla images. Default is not set, in
which case Dockerhub will be used. which case Dockerhub will be used.
@ -138,24 +138,23 @@ accessed.
(e.g. ``rocky``) on stable branches and tagged releases, or ``master`` on (e.g. ``rocky``) on stable branches and tagged releases, or ``master`` on
the Kayobe ``master`` branch. the Kayobe ``master`` branch.
For example, to deploy Kolla ``centos`` ``binary`` images with a namespace of For example, to deploy Kolla ``centos`` images with a namespace of
``example``, and a private Docker registry at ``registry.example.com:4000``, ``example``, and a private Docker registry at ``registry.example.com:4000``,
tagged with ``7.0.0.1``: and the ``zed`` release.
.. code-block:: yaml .. code-block:: yaml
:caption: ``$KAYOBE_CONFIG_PATH/kolla.yml`` :caption: ``$KAYOBE_CONFIG_PATH/kolla.yml``
kolla_base_distro: centos kolla_base_distro: centos
kolla_install_type: binary
kolla_docker_namespace: example kolla_docker_namespace: example
kolla_docker_registry: registry.example.com:4000 kolla_docker_registry: registry.example.com:4000
kolla_openstack_release: 7.0.0.1 kolla_openstack_release: zed
The deployed ``ironic-api`` image would be referenced as follows: The deployed ``ironic-api`` image would be referenced as follows:
.. code-block:: console .. code-block:: console
registry.example.com:4000/example/centos-binary-ironic-api:7.0.0.1 registry.example.com:4000/example/ironic-api:zed-centos-stream9
Ansible Ansible
------- -------

View File

@ -74,10 +74,10 @@ affect :ref:`Kolla Ansible configuration <configuration-kolla-ansible-global>`.
``kolla_base_distro`` ``kolla_base_distro``
Kolla base container image distribution. Options are ``centos``, Kolla base container image distribution. Options are ``centos``,
``debian``, or ``ubuntu``. Default is ``{{ os_distribution }}``. ``debian``, ``rocky``, or ``ubuntu``. Default is ``{{ os_distribution }}``.
``kolla_install_type`` ``kolla_base_distro_version``
Kolla container image type: ``binary`` or ``source``. Default is Kolla base container image distribution version. Default is dependent on
``source``. ``kolla_base_distro``.
``kolla_docker_namespace`` ``kolla_docker_namespace``
Docker namespace to use for Kolla images. Default is ``kolla``. Docker namespace to use for Kolla images. Default is ``kolla``.
``kolla_docker_registry`` ``kolla_docker_registry``
@ -97,25 +97,24 @@ affect :ref:`Kolla Ansible configuration <configuration-kolla-ansible-global>`.
Kolla container image tag. This is the tag that will be applied to built Kolla container image tag. This is the tag that will be applied to built
container images. Default is ``kolla_openstack_release``. container images. Default is ``kolla_openstack_release``.
For example, to build the Kolla ``centos`` ``binary`` images with a namespace For example, to build the Kolla ``centos`` images with a namespace
of ``example``, and a private Docker registry at ``registry.example.com:4000``, of ``example``, and a private Docker registry at ``registry.example.com:4000``,
tagged with ``7.0.0.1``: using the ``zed`` release:
.. code-block:: yaml .. code-block:: yaml
:caption: ``kolla.yml`` :caption: ``kolla.yml``
kolla_base_distro: centos kolla_base_distro: centos
kolla_install_type: binary
kolla_docker_namespace: example kolla_docker_namespace: example
kolla_docker_registry: registry.example.com:4000 kolla_docker_registry: registry.example.com:4000
kolla_openstack_release: 7.0.0.1 kolla_openstack_release: zed
The ``ironic-api`` image built with this configuration would be referenced as The ``ironic-api`` image built with this configuration would be referenced as
follows: follows:
.. code-block:: console .. code-block:: console
registry.example.com:4000/example/centos-binary-ironic-api:7.0.0.1 registry.example.com:4000/example/ironic-api:zed-centos-stream9
Further customisation of the Kolla configuration file can be performed by Further customisation of the Kolla configuration file can be performed by
writing a file at ``${KAYOBE_CONFIG_PATH/kolla/kolla-build.conf``. For example, writing a file at ``${KAYOBE_CONFIG_PATH/kolla/kolla-build.conf``. For example,

View File

@ -67,12 +67,17 @@
# Kolla configuration. # Kolla configuration.
# Kolla base container image distribution. Options are "centos", "debian", # Kolla base container image distribution. Options are "centos", "debian",
# "ubuntu". Default is # "rocky", "ubuntu". Default is
# {{ 'centos' if os_distribution == 'rocky' else os_distribution }}. # {{ 'centos' if os_distribution == 'rocky' else os_distribution }}.
#kolla_base_distro: #kolla_base_distro:
# Kolla container image type: binary or source. Default is 'source'. # Kolla base container image distribution version default map.
#kolla_install_type: # Defines default versions for each distribution.
#kolla_base_distro_version_default_map:
# Kolla base container image distribution version.
# Default is kolla_base_distro_version_default_map[kolla_base_distro].
#kolla_base_distro_version:
# URL of docker registry to use for Kolla images. Default is not set, in which # URL of docker registry to use for Kolla images. Default is not set, in which
# case Dockerhub will be used. # case Dockerhub will be used.
@ -102,8 +107,8 @@
# {{ kolla_openstack_release }}. # {{ kolla_openstack_release }}.
#kolla_tag: #kolla_tag:
# Dict mapping names of sources to their definitions for # Dict mapping names of sources to their definitions.
# kolla_install_type=source. See kolla.common.config for details. # See kolla.common.config for details.
# Example: # Example:
# kolla_sources: # kolla_sources:
# ironic-base: # ironic-base:

View File

@ -7,7 +7,7 @@
# Whether to build host disk images with DIB directly instead of through # Whether to build host disk images with DIB directly instead of through
# Bifrost. Setting it to true disables Bifrost image build and allows images to # Bifrost. Setting it to true disables Bifrost image build and allows images to
# be built with the `kayobe overcloud host image build` command. Default value # be built with the `kayobe overcloud host image build` command. Default value
# is {{ os_distribution == 'rocky' }}. This will change in a future release. # is true.
#overcloud_dib_build_host_images: #overcloud_dib_build_host_images:
# List of additional build host packages to install. Default is an empty list. # List of additional build host packages to install. Default is an empty list.

View File

@ -0,0 +1,5 @@
---
upgrade:
- |
Removes the ``kolla_install_type`` variable. This is due to removal of
support for ``binary`` images from the Kolla project.