diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index b102d81c93..4a9c980be5 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -103,6 +103,8 @@ docker_client_timeout: 120
# Docker networking options
docker_disable_default_iptables_rules: "no"
+docker_disable_default_network: "no"
+docker_disable_ip_forward: "no"
# Retention settings for Docker logs
docker_log_max_file: "5"
diff --git a/ansible/roles/baremetal/tasks/install.yml b/ansible/roles/baremetal/tasks/install.yml
index 3e7cbb1ff1..5bab800fa3 100644
--- a/ansible/roles/baremetal/tasks/install.yml
+++ b/ansible/roles/baremetal/tasks/install.yml
@@ -46,6 +46,26 @@
changed_when: false
register: running_containers
+# APT starts Docker engine right after installation, which creates
+# iptables rules before we disable iptables in Docker config
+
+- name: Check if docker systemd unit exists
+ stat:
+ path: /etc/systemd/system/docker.service
+ register: docker_unit_file
+
+- name: Mask the docker systemd unit on Debian/Ubuntu
+ file:
+ src: /dev/null
+ dest: /etc/systemd/system/docker.service
+ owner: root
+ group: root
+ state: link
+ become: true
+ when:
+ - ansible_os_family == 'Debian'
+ - not docker_unit_file.stat.exists
+
- name: Install apt packages
package:
name: "{{ (debian_pkg_install | join(' ')).split() }}"
@@ -73,6 +93,26 @@
when: ansible_os_family == 'RedHat'
register: rpm_install_result
+# Workaround older Ansible that fails systemd tasks
+# when unit is masked
+
+- name: Check if docker service is masked
+ become: True
+ stat:
+ path: /etc/systemd/system/docker.service
+ register: docker_unit_masked
+ when: ansible_os_family == 'Debian'
+
+- name: Unmask docker service
+ become: True
+ file:
+ path: /etc/systemd/system/docker.service
+ state: absent
+ when:
+ - ansible_os_family == 'Debian'
+ - docker_unit_masked.stat.islnk
+ - docker_unit_masked.stat.lnk_source == '/dev/null'
+
# If any packages were updated, and any containers were running, wait for the
# daemon to come up and start all previously running containers.
@@ -80,10 +120,11 @@
# At some point (at least on CentOS 7) Docker CE stopped starting
# automatically after an upgrade from legacy docker . Start it manually.
- name: Start docker
- service:
+ systemd:
name: docker
state: started
enabled: yes
+ masked: no
become: True
- name: Wait for Docker to start
@@ -125,7 +166,8 @@
- name: Install docker SDK for python
pip:
- name: docker
+ # NOTE(mnasiadka): docker 5.0.0 lacks six in deps but requires it
+ name: docker<5.0.0
executable: "{{ virtualenv is none | ternary('pip' ~ host_python_major_version, omit) }}"
virtualenv: "{{ virtualenv is none | ternary(omit, virtualenv) }}"
virtualenv_site_packages: "{{ virtualenv is none | ternary(omit, virtualenv_site_packages) }}"
diff --git a/ansible/roles/baremetal/tasks/post-install.yml b/ansible/roles/baremetal/tasks/post-install.yml
index 5fa5da1ab5..0687ce023f 100644
--- a/ansible/roles/baremetal/tasks/post-install.yml
+++ b/ansible/roles/baremetal/tasks/post-install.yml
@@ -93,7 +93,7 @@
- name: Warn about docker default iptables
debug:
msg: >-
- Docker default iptables rules will be disabled by default from the Victoria 11.0.0
+ Docker default iptables rules will be disabled by default from the Wallaby 12.0.0
release. If you have any non-Kolla containers that need this functionality, you should
plan a migration for this change, or set docker_disable_default_iptables_rules to false.
when: not docker_disable_default_iptables_rules | bool
@@ -103,6 +103,34 @@
docker_config: "{{ docker_config | combine({'iptables': false}) }}"
when: docker_disable_default_iptables_rules | bool
+- name: Warn about docker default networking
+ debug:
+ msg: >-
+ Docker default network on docker0 will be disabled by default from the
+ Wallaby 12.0.0 release. If you have any non-Kolla containers that need
+ this functionality, you should plan a migration for this change, or set
+ docker_disable_default_network to false.
+ when: not docker_disable_default_network | bool
+
+- name: Disable docker default network on docker0
+ set_fact:
+ docker_config: "{{ docker_config | combine({'bridge': 'none'}) }}"
+ when: docker_disable_default_network | bool
+
+- name: Warn about docker ip_forward
+ debug:
+ msg: >-
+ Docker ip_forward will be disabled by default from the
+ Wallaby 12.0.0 release. If you have any non-Kolla containers that need
+ this functionality, you should plan a migration for this change, or set
+ docker_disable_ip_forward to false.
+ when: not docker_disable_ip_forward | bool
+
+- name: Disable docker ip_forward
+ set_fact:
+ docker_config: "{{ docker_config | combine({'ip-forward': false}) }}"
+ when: docker_disable_ip_forward | bool
+
- name: Merge custom docker config
set_fact:
docker_config: "{{ docker_config | combine(docker_custom_config) }}"
@@ -189,22 +217,25 @@
when: create_kolla_user | bool
- name: Start docker
- service:
+ systemd:
name: docker
state: started
+ masked: no
become: True
- name: Restart docker
- service:
+ systemd:
name: docker
state: restarted
+ masked: no
become: True
when: docker_configured.changed or docker_reloaded.changed
- name: Enable docker
- service:
+ systemd:
name: docker
enabled: yes
+ masked: no
become: True
- name: Stop time service
diff --git a/ansible/roles/cinder/templates/cinder.conf.j2 b/ansible/roles/cinder/templates/cinder.conf.j2
index b2e24392f9..aea8206c06 100644
--- a/ansible/roles/cinder/templates/cinder.conf.j2
+++ b/ansible/roles/cinder/templates/cinder.conf.j2
@@ -209,6 +209,7 @@ connection_string = {{ osprofiler_backend_connection_string }}
{% if enable_barbican | bool %}
[barbican]
auth_endpoint = {{ keystone_internal_url }}
+barbican_endpoint_type = internal
{% endif %}
[coordination]
diff --git a/ansible/roles/common/templates/conf/output/00-local.conf.j2 b/ansible/roles/common/templates/conf/output/00-local.conf.j2
index 169ec735e7..5e2064b29f 100644
--- a/ansible/roles/common/templates/conf/output/00-local.conf.j2
+++ b/ansible/roles/common/templates/conf/output/00-local.conf.j2
@@ -11,7 +11,7 @@
{% if log_direct_to_elasticsearch %}
- type elasticsearch
+ @type elasticsearch
host {{ elasticsearch_address }}
port {{ elasticsearch_port }}
scheme {{ fluentd_elasticsearch_scheme }}
@@ -66,7 +66,7 @@
{% if log_direct_to_elasticsearch %}
- type elasticsearch
+ @type elasticsearch
host {{ elasticsearch_address }}
port {{ elasticsearch_port }}
scheme {{ fluentd_elasticsearch_scheme }}
diff --git a/ansible/roles/glance/templates/glance-api.conf.j2 b/ansible/roles/glance/templates/glance-api.conf.j2
index 3b9a40dceb..4cf588818e 100644
--- a/ansible/roles/glance/templates/glance-api.conf.j2
+++ b/ansible/roles/glance/templates/glance-api.conf.j2
@@ -110,3 +110,9 @@ trace_sqlalchemy = true
hmac_keys = {{ osprofiler_secret }}
connection_string = {{ osprofiler_backend_connection_string }}
{% endif %}
+
+{% if enable_barbican | bool %}
+[barbican]
+auth_endpoint = {{ keystone_internal_url }}
+barbican_endpoint_type = internal
+{% endif %}
diff --git a/ansible/roles/haproxy/tasks/upgrade.yml b/ansible/roles/haproxy/tasks/upgrade.yml
index 17fcbe07c0..6d515fc55c 100644
--- a/ansible/roles/haproxy/tasks/upgrade.yml
+++ b/ansible/roles/haproxy/tasks/upgrade.yml
@@ -16,6 +16,8 @@
notify:
- Restart keepalived container
+- import_tasks: check-containers.yml
+
# NOTE(yoctozepto): haproxy role handlers should not be flushed early.
# site.yml handles all haproxy things in a dedicated play.
# This is to avoid extra haproxy service restart.
diff --git a/ansible/roles/horizon/tasks/policy_item.yml b/ansible/roles/horizon/tasks/policy_item.yml
index 7e4e814be2..d8a777d207 100644
--- a/ansible/roles/horizon/tasks/policy_item.yml
+++ b/ansible/roles/horizon/tasks/policy_item.yml
@@ -2,7 +2,7 @@
# Update policy file name
- set_fact:
- supported_policy_files: "{{ supported_policy_format_list | map('regex_replace', '(.*)', '{{ project_name }}_\\1') | list }}"
+ supported_policy_files: "{{ supported_policy_format_list | map('regex_replace', '(.+)', '{{ project_name }}_\\1') | list }}"
- name: Check if policies shall be overwritten
local_action: stat path="{{ fullpath }}"
diff --git a/ansible/roles/iscsi/templates/iscsid.json.j2 b/ansible/roles/iscsi/templates/iscsid.json.j2
index f44cf16c97..cfa4d9f358 100644
--- a/ansible/roles/iscsi/templates/iscsid.json.j2
+++ b/ansible/roles/iscsi/templates/iscsid.json.j2
@@ -1,4 +1,4 @@
{
- "command": "iscsid -d 8 -f --pid=/run/iscsid.pid",
+ "command": "iscsid -d 8 -f",
"config_files": []
}
diff --git a/ansible/roles/mariadb/tasks/recover_cluster.yml b/ansible/roles/mariadb/tasks/recover_cluster.yml
index 0aec1eaa71..f3ee6a90f7 100644
--- a/ansible/roles/mariadb/tasks/recover_cluster.yml
+++ b/ansible/roles/mariadb/tasks/recover_cluster.yml
@@ -73,7 +73,7 @@
shell:
cmd: |
if [[ ! -z {{ hostvars[inventory_hostname]['seqno'] }} && ! -z {{ hostvars[item]['seqno'] }} &&
- {{ hostvars[inventory_hostname]['seqno'] }} =~ ^[0-9]+$ && {{ hostvars[item]['seqno'] }} =~ ^[0-9]+$ &&
+ {{ hostvars[inventory_hostname]['seqno'] }} =~ ^-?[0-9]+$ && {{ hostvars[item]['seqno'] }} =~ ^-?[0-9]+$ &&
{{ hostvars[inventory_hostname]['seqno'] }} -lt {{ hostvars[item]['seqno'] }} ]]; then echo {{ hostvars[item]['seqno'] }}; fi
with_items: "{{ groups['mariadb'] }}"
register: seqno_compare
diff --git a/ansible/roles/neutron/tasks/config.yml b/ansible/roles/neutron/tasks/config.yml
index 2a8a80d2bb..b3a5e48363 100644
--- a/ansible/roles/neutron/tasks/config.yml
+++ b/ansible/roles/neutron/tasks/config.yml
@@ -136,6 +136,7 @@
- "Restart {{ item.key }} container"
- name: Copying over sriov_agent.ini
+ become: true
vars:
service_name: "neutron-sriov-agent"
neutron_sriov_agent: "{{ neutron_services[service_name] }}"
diff --git a/ansible/roles/neutron/templates/neutron.conf.j2 b/ansible/roles/neutron/templates/neutron.conf.j2
index 19b07ad2cb..e08240197c 100644
--- a/ansible/roles/neutron/templates/neutron.conf.j2
+++ b/ansible/roles/neutron/templates/neutron.conf.j2
@@ -136,11 +136,6 @@ drivers = ovs
drivers = ovs
{% endif %}
-{% if enable_octavia | bool %}
-[octavia]
-base_url = {{ internal_protocol }}://{{ octavia_internal_fqdn | put_address_in_context('url') }}:{{ octavia_api_port }}
-{% endif %}
-
{% if enable_designate | bool %}
[designate]
url = {{ internal_protocol }}://{{ designate_internal_fqdn | put_address_in_context('url') }}:{{ designate_api_port }}/v2
diff --git a/ansible/roles/nova-cell/tasks/external_ceph.yml b/ansible/roles/nova-cell/tasks/external_ceph.yml
index f4634801f0..32b63729b8 100644
--- a/ansible/roles/nova-cell/tasks/external_ceph.yml
+++ b/ansible/roles/nova-cell/tasks/external_ceph.yml
@@ -131,6 +131,7 @@
enabled: "{{ cinder_backend_ceph }}"
notify:
- Restart nova-libvirt container
+ no_log: True
- name: Ensuring config directory has correct owner and permission
become: true
diff --git a/ansible/roles/nova-cell/templates/nova.conf.j2 b/ansible/roles/nova-cell/templates/nova.conf.j2
index b61199ee2a..b798a296fd 100644
--- a/ansible/roles/nova-cell/templates/nova.conf.j2
+++ b/ansible/roles/nova-cell/templates/nova.conf.j2
@@ -231,6 +231,7 @@ connection_string = {{ osprofiler_backend_connection_string }}
{% if enable_barbican | bool %}
[barbican]
auth_endpoint = {{ keystone_internal_url }}
+barbican_endpoint_type = internal
{% endif %}
{% if nova_compute_virt_type == "xenapi" %}
diff --git a/ansible/roles/nova/templates/nova.conf.j2 b/ansible/roles/nova/templates/nova.conf.j2
index 206be296fe..98cf559a28 100644
--- a/ansible/roles/nova/templates/nova.conf.j2
+++ b/ansible/roles/nova/templates/nova.conf.j2
@@ -197,4 +197,5 @@ connection_string = {{ osprofiler_backend_connection_string }}
{% if enable_barbican | bool %}
[barbican]
auth_endpoint = {{ keystone_internal_url }}
+barbican_endpoint_type = internal
{% endif %}
diff --git a/ansible/roles/prometheus/templates/prometheus-alertmanager.json.j2 b/ansible/roles/prometheus/templates/prometheus-alertmanager.json.j2
index d10aa8f0cb..562b910758 100644
--- a/ansible/roles/prometheus/templates/prometheus-alertmanager.json.j2
+++ b/ansible/roles/prometheus/templates/prometheus-alertmanager.json.j2
@@ -1,5 +1,5 @@
{
- "command": "/opt/prometheus_alertmanager/alertmanager --config.file=/etc/prometheus/alertmanager.yml --web.listen-address={{ api_interface_address | put_address_in_context('url') }}:{{ prometheus_alertmanager_port }} --web.external-url={{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ prometheus_alertmanager_port }} {% if groups["prometheus-alertmanager"] | length > 1 %} --cluster.listen-address={{ api_interface_address | put_address_in_context('url') }}:{{ prometheus_alertmanager_cluster_port }} {% for host in groups["prometheus-alertmanager"] %} --cluster.peer={{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ hostvars[host]['prometheus_alertmanager_cluster_port'] }}{% endfor %}{% endif %} --storage.path /var/lib/prometheus",
+ "command": "/opt/prometheus_alertmanager/alertmanager --config.file=/etc/prometheus/alertmanager.yml --web.listen-address={{ api_interface_address | put_address_in_context('url') }}:{{ prometheus_alertmanager_port }} --web.external-url={{ internal_protocol }}://{{ kolla_internal_fqdn | put_address_in_context('url') }}:{{ prometheus_alertmanager_port }} --cluster.listen-address={% if groups["prometheus-alertmanager"] | length > 1 %}{{ api_interface_address | put_address_in_context('url') }}:{{ prometheus_alertmanager_cluster_port }} {% for host in groups["prometheus-alertmanager"] %} --cluster.peer={{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ hostvars[host]['prometheus_alertmanager_cluster_port'] }}{% endfor %}{% endif %} --storage.path /var/lib/prometheus",
"config_files": [
{
"source": "{{ container_config_directory }}/prometheus-alertmanager.yml",
diff --git a/ansible/roles/rabbitmq/handlers/main.yml b/ansible/roles/rabbitmq/handlers/main.yml
index f3b78de856..cd5e39eb57 100644
--- a/ansible/roles/rabbitmq/handlers/main.yml
+++ b/ansible/roles/rabbitmq/handlers/main.yml
@@ -1,5 +1,19 @@
---
-- name: Restart rabbitmq container
+# NOTE(mgoddard): These tasks perform a 'full stop upgrade', which is necessary when moving between
+# major releases. In future kolla-ansible releases we may be able to change this to a rolling
+# restart. For info on this process see https://www.rabbitmq.com/upgrade.html
+
+- name: Restart first rabbitmq container
+ vars:
+ service_name: "rabbitmq"
+ service: "{{ rabbitmq_services[service_name] }}"
+ include_tasks: 'restart_services.yml'
+ when:
+ - kolla_action != "config"
+ - inventory_hostname == groups[service.group] | first
+ listen: Restart rabbitmq container
+
+- name: Restart remaining rabbitmq containers
vars:
service_name: "rabbitmq"
service: "{{ rabbitmq_services[service_name] }}"
@@ -7,4 +21,6 @@
when:
- kolla_action != "config"
- inventory_hostname == item
+ - inventory_hostname != groups[service.group] | first
loop: "{{ groups[service.group] }}"
+ listen: Restart rabbitmq container
diff --git a/ansible/roles/swift/templates/proxy-server.conf.j2 b/ansible/roles/swift/templates/proxy-server.conf.j2
index 958b4bf535..4845ae402b 100644
--- a/ansible/roles/swift/templates/proxy-server.conf.j2
+++ b/ansible/roles/swift/templates/proxy-server.conf.j2
@@ -98,5 +98,5 @@ use = egg:swift#s3api
[filter:s3token]
use = egg:swift#s3token
-www_authenticate_uri = {{ keystone_internal_url }}/v3
+auth_uri = {{ keystone_internal_url }}/v3
{% endif %}
diff --git a/doc/source/admin/advanced-configuration.rst b/doc/source/admin/advanced-configuration.rst
index 4834e891c7..45767d417e 100644
--- a/doc/source/admin/advanced-configuration.rst
+++ b/doc/source/admin/advanced-configuration.rst
@@ -265,27 +265,34 @@ operator needs to create ``/etc/kolla/config/global.conf`` with content:
[database]
max_pool_size = 100
-In case the operators want to customize ``policy.json`` file, they should
-create a full policy file for specific project in the same directory like above
-and Kolla will overwrite default policy file with it. Be aware, with some
-projects are keeping full policy file in source code, operators just need to
-copy it but with some others are defining default rules in codebase, they have
-to generate it.
+OpenStack policy customisation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-For example to overwrite ``policy.json`` file of Neutron project, the operator
-needs to grab ``policy.json`` from Neutron project source code, update rules
-and then put it to ``/etc/kolla/config/neutron/policy.json``.
+OpenStack services allow customisation of policy. Since the Queens release,
+default policy configuration is defined within the source code for each
+service, meaning that operators only need to override rules they wish to
+change. Projects typically provide documentation on their default policy
+configuration, for example, :keystone-doc:`Keystone `.
-.. note::
+Policy can be customised via JSON or YAML files. As of the Wallaby release, the
+JSON format is deprecated in favour of YAML. One major benefit of YAML is that
+it allows for the use of comments.
- Currently kolla-ansible only support JSON and YAML format for policy file.
+For example, to customise the Neutron policy in YAML format, the operator
+should add the customised rules in ``/etc/kolla/config/neutron/policy.yaml``.
-The operator can make these changes after services were already deployed by
-using following command:
+The operator can make these changes after services have been deployed by using
+the following command:
.. code-block:: console
- kolla-ansible reconfigure
+ kolla-ansible deploy
+
+In order to present a user with the correct interface, Horizon includes policy
+for other services. Customisations made to those services may need to be
+replicated in Horizon. For example, to customise the Neutron policy in YAML
+format for Horizon, the operator should add the customised rules in
+``/etc/kolla/config/horizon/neutron_policy.yaml``.
IP Address Constrained Environments
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/source/user/centos8.rst b/doc/source/user/centos8.rst
index fb1457f643..2b5586974c 100644
--- a/doc/source/user/centos8.rst
+++ b/doc/source/user/centos8.rst
@@ -52,8 +52,8 @@ is to differentiate CentOS 7 and CentOS 8 container images.
Migrating from CentOS 7 to CentOS 8
-----------------------------------
-This section describes how to migrate an existing deployment from CentOS 7 to
-CentOS 8.
+This section describes how to migrate an existing Train deployment from CentOS
+7 to CentOS 8.
There is no supported upgrade path from CentOS 7 to CentOS 8. Since we want to
use the same major versions of CentOS in the host and containers, the hosts
@@ -65,8 +65,8 @@ level workflow is:
* upgrade services to ensure compatibility with those available in CentOS 8
* migrate hosts to CentOS 8 in batches
-Note that in a multi-node system it is possible to have a mix of CentOS 7 and
-CentOS 8 hosts while the migration takes place.
+Note that in a multi-node system on the Train release it is possible to have a
+mix of CentOS 7 and CentOS 8 hosts while the migration takes place.
Service compatibility
~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/source/user/multinode.rst b/doc/source/user/multinode.rst
index 030faac25f..af0ef031c2 100644
--- a/doc/source/user/multinode.rst
+++ b/doc/source/user/multinode.rst
@@ -75,7 +75,7 @@ IP address and port on which the registry is listening:
docker_custom_config:
registry-mirrors:
- - 192.168.1.100:4000
+ - http://192.168.1.100:4000
.. _edit-inventory:
diff --git a/doc/source/user/quickstart.rst b/doc/source/user/quickstart.rst
index dab12be6e1..7f3d63e48e 100644
--- a/doc/source/user/quickstart.rst
+++ b/doc/source/user/quickstart.rst
@@ -98,11 +98,12 @@ If not installing Kolla Ansible in a virtual environment, skip this section.
The virtual environment should be activated before running any commands that
depend on packages installed in it.
-#. Ensure the latest version of pip is installed:
+#. Ensure the latest version of pip and setuptools are installed:
.. code-block:: console
pip install -U pip
+ pip install -U setuptools
#. Install `Ansible `__. Currently, Kolla Ansible
requires Ansible 2.6 to 2.9.
@@ -130,11 +131,12 @@ If installing Kolla Ansible in a virtual environment, skip this section.
sudo apt-get install python-pip
-#. Ensure the latest version of pip is installed:
+#. Ensure the latest version of pip and setuptools are installed:
.. code-block:: console
sudo pip install -U pip
+ sudo pip install -U setuptools
#. Install `Ansible `__. Currently, Kolla Ansible
requires Ansible 2.6 to 2.9.
diff --git a/doc/source/user/virtual-environments.rst b/doc/source/user/virtual-environments.rst
index 8af28527f9..5de5a11c2f 100644
--- a/doc/source/user/virtual-environments.rst
+++ b/doc/source/user/virtual-environments.rst
@@ -21,6 +21,7 @@ python virtual environment on the Ansible control host. For example:
virtualenv /path/to/venv
source /path/to/venv/bin/activate
pip install -U pip
+ pip install -U setuptools
pip install kolla-ansible
deactivate
diff --git a/releasenotes/notes/bug-1862765-a6cad9fd2d3f0f48.yaml b/releasenotes/notes/bug-1862765-a6cad9fd2d3f0f48.yaml
new file mode 100644
index 0000000000..52f899dbc0
--- /dev/null
+++ b/releasenotes/notes/bug-1862765-a6cad9fd2d3f0f48.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ Fix the issue when Swift deployed with S3 Token Middleware enabled.
+ Fixes `LP#1862765 `__
diff --git a/releasenotes/notes/bug-1923203-f9ff247befc4bd75.yaml b/releasenotes/notes/bug-1923203-f9ff247befc4bd75.yaml
new file mode 100644
index 0000000000..6073ed7b15
--- /dev/null
+++ b/releasenotes/notes/bug-1923203-f9ff247befc4bd75.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ Fixed an issue when Docker was configured after startup on Debian/Ubuntu,
+ which resulted in iptables rules being created - before they were disabled.
+ `LP#1923203 `__
diff --git a/releasenotes/notes/bug-1923467-80973d9fbe1f5287.yaml b/releasenotes/notes/bug-1923467-80973d9fbe1f5287.yaml
new file mode 100644
index 0000000000..df5a3a7462
--- /dev/null
+++ b/releasenotes/notes/bug-1923467-80973d9fbe1f5287.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ A bug where sriov_agent.ini wasn't copied due to ``Permission denied``
+ error was fixed.
+ `LP#1923467 `__
diff --git a/releasenotes/notes/bug-1928915-482b2d53bb2a4d92.yaml b/releasenotes/notes/bug-1928915-482b2d53bb2a4d92.yaml
new file mode 100644
index 0000000000..a009da5955
--- /dev/null
+++ b/releasenotes/notes/bug-1928915-482b2d53bb2a4d92.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ Fixed an issue where docker python SDK 5.0.0 was failing due to missing
+ six - introduced a constraint to install version lower than 5.x.
+ `LP#1928915 `__
diff --git a/releasenotes/notes/bug-1930293-d8a524f2070e6779.yaml b/releasenotes/notes/bug-1930293-d8a524f2070e6779.yaml
new file mode 100644
index 0000000000..f16c156556
--- /dev/null
+++ b/releasenotes/notes/bug-1930293-d8a524f2070e6779.yaml
@@ -0,0 +1,5 @@
+---
+fixes:
+ - |
+ Fixes more-than-2-node RabbitMQ upgrade failing randomly.
+ `LP#1930293 `__.
diff --git a/releasenotes/notes/bug-1933033-76746d127285cfe8.yaml b/releasenotes/notes/bug-1933033-76746d127285cfe8.yaml
new file mode 100644
index 0000000000..88e4789cca
--- /dev/null
+++ b/releasenotes/notes/bug-1933033-76746d127285cfe8.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ Fixes ``iscsid`` failing in current CentOS 8 based images due to
+ pid file being needlessly set.
+ `LP#1933033 `__
diff --git a/releasenotes/notes/disable-alertmanager-clustering-ec70f5f970c4933a.yaml b/releasenotes/notes/disable-alertmanager-clustering-ec70f5f970c4933a.yaml
new file mode 100644
index 0000000000..2fc3503a11
--- /dev/null
+++ b/releasenotes/notes/disable-alertmanager-clustering-ec70f5f970c4933a.yaml
@@ -0,0 +1,7 @@
+---
+fixes:
+ - |
+ Fixes potential issue with Alertmanger in non-HA deployments. In this
+ scenario, peer gossip protocol is now disabled and Alertmanager won't
+ try to form a cluster with non-existing other instances.
+ `LP#1926463 `__
diff --git a/releasenotes/notes/docker-disable-bridge-14df8b7fddbd5000.yaml b/releasenotes/notes/docker-disable-bridge-14df8b7fddbd5000.yaml
new file mode 100644
index 0000000000..23ab9632a9
--- /dev/null
+++ b/releasenotes/notes/docker-disable-bridge-14df8b7fddbd5000.yaml
@@ -0,0 +1,9 @@
+---
+features:
+ - |
+ Adds a new flag, ``docker_disable_default_network``, which
+ defaults to ``no``. Docker is using ``172.17.0.0/16`` by default for bridge
+ networking on ``docker0``, and this might cause routing problems for
+ operator networks. Setting this flag to ``yes`` will disable Docker's
+ bridge networking. This feature will be enabled by default from the
+ Wallaby 12.0.0 release.
diff --git a/releasenotes/notes/docker-disable-ip-forward-b0490b71f9f07cd6.yaml b/releasenotes/notes/docker-disable-ip-forward-b0490b71f9f07cd6.yaml
new file mode 100644
index 0000000000..025a53ba10
--- /dev/null
+++ b/releasenotes/notes/docker-disable-ip-forward-b0490b71f9f07cd6.yaml
@@ -0,0 +1,9 @@
+---
+fixes:
+ - |
+ Adds a new flag, ``docker_disable_ip_forward``, which
+ defaults to ``no`` and can be used (by setting ``yes``) to
+ disable docker's ``ip-forward`` option which makes docker set
+ ``net.ipv4.ip_forward`` sysctl to ``1``.
+ This is to protect from creating all-forwarding hosts.
+ `LP#1931615 `__
diff --git a/releasenotes/notes/fix-keepalived-upgrade-a395e39dc946e618.yaml b/releasenotes/notes/fix-keepalived-upgrade-a395e39dc946e618.yaml
new file mode 100644
index 0000000000..f499cc5a22
--- /dev/null
+++ b/releasenotes/notes/fix-keepalived-upgrade-a395e39dc946e618.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+ - |
+ Fixes an issue with keepalived which was not recreated during an upgrade if
+ configuration is unchanged. `LP#1928362
+ `__
diff --git a/tests/deploy-bifrost.sh b/tests/deploy-bifrost.sh
index 86e3d15363..1a3a414d59 100755
--- a/tests/deploy-bifrost.sh
+++ b/tests/deploy-bifrost.sh
@@ -14,7 +14,7 @@ function deploy_bifrost {
# Deploy the bifrost container.
# TODO(mgoddard): add pull action when we have a local registry service in
# CI.
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy-bifrost &> /tmp/logs/ansible/deploy-bifrost
+ kolla-ansible -i ${RAW_INVENTORY} -vvv deploy-bifrost &> /tmp/logs/ansible/deploy-bifrost
}
diff --git a/tests/deploy.sh b/tests/deploy.sh
index 18861e9336..a413854a2a 100755
--- a/tests/deploy.sh
+++ b/tests/deploy.sh
@@ -16,12 +16,11 @@ function deploy {
#TODO(inc0): Post-deploy complains that /etc/kolla is not writable. Probably we need to include become there
sudo chmod -R 777 /etc/kolla
# Actually do the deployment
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks &> /tmp/logs/ansible/deploy-prechecks
- # TODO(jeffrey4l): add pull action when we have a local registry
- # service in CI
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy &> /tmp/logs/ansible/deploy
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv post-deploy &> /tmp/logs/ansible/post-deploy
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv check &> /tmp/logs/ansible/check-deploy
+ kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks &> /tmp/logs/ansible/deploy-prechecks
+ kolla-ansible -i ${RAW_INVENTORY} -vvv pull &> /tmp/logs/ansible/pull
+ kolla-ansible -i ${RAW_INVENTORY} -vvv deploy &> /tmp/logs/ansible/deploy
+ kolla-ansible -i ${RAW_INVENTORY} -vvv post-deploy &> /tmp/logs/ansible/post-deploy
+ kolla-ansible -i ${RAW_INVENTORY} -vvv check &> /tmp/logs/ansible/check-deploy
}
diff --git a/tests/post.yml b/tests/post.yml
index 400cf3c365..5f0eb18059 100644
--- a/tests/post.yml
+++ b/tests/post.yml
@@ -46,27 +46,3 @@
mode: pull
rsync_opts:
- "--quiet"
-
-- hosts: primary
- environment:
- PATH: "{{ ansible_env.HOME + '/.local/bin:' + ansible_env.PATH }}"
- tasks:
- - name: check for existence of ara sqlite
- stat:
- path: "{{ ansible_env.HOME }}/.ara/ansible.sqlite"
- register: ara_stat_result
-
- - block:
- - name: ensure ara-report folder existence
- file:
- path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report"
- state: directory
- delegate_to: localhost
- run_once: true
-
- - name: download ara sqlite
- synchronize:
- src: "{{ ansible_env.HOME }}/.ara/ansible.sqlite"
- dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}/ara-report/"
- mode: pull
- when: ara_stat_result.stat.exists
diff --git a/tests/pre.yml b/tests/pre.yml
index 339994c4b1..1d00c6f217 100644
--- a/tests/pre.yml
+++ b/tests/pre.yml
@@ -3,6 +3,8 @@
any_errors_fatal: true
vars:
logs_dir: "/tmp/logs"
+ # NOTE(mgoddard): Use Python 3 only for CentOS 8 on stable/train.
+ playbook_python_version: "{{ '3' if ansible_os_family == 'RedHat' and ansible_distribution_major_version == '8' else '2' }}"
roles:
- bindep
- multi-node-firewall
@@ -65,9 +67,9 @@
- name: Ensure latest pip is installed
become: true
- pip:
- name: pip<21
- state: latest
+ command: >-
+ python{{ playbook_python_version }} -m pip install --upgrade
+ pip<21
- name: Ensure /tmp/logs/ dir
file:
diff --git a/tests/reconfigure.sh b/tests/reconfigure.sh
index db0854cff7..d513eb3efe 100755
--- a/tests/reconfigure.sh
+++ b/tests/reconfigure.sh
@@ -12,9 +12,9 @@ function reconfigure {
# TODO(jeffrey4l): make some configure file change and
# trigger a real reconfigure
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks &> /tmp/logs/ansible/reconfigure-prechecks
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv reconfigure &> /tmp/logs/ansible/reconfigure
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv check &> /tmp/logs/ansible/check-reconfigure
+ kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks &> /tmp/logs/ansible/reconfigure-prechecks
+ kolla-ansible -i ${RAW_INVENTORY} -vvv reconfigure &> /tmp/logs/ansible/reconfigure
+ kolla-ansible -i ${RAW_INVENTORY} -vvv check &> /tmp/logs/ansible/check-reconfigure
}
diff --git a/tests/run.yml b/tests/run.yml
index 72cdc095aa..5a6a5cae7c 100644
--- a/tests/run.yml
+++ b/tests/run.yml
@@ -162,6 +162,13 @@
state: directory
become: true
+ # Workaround for distutils.errors.DistutilsError: Could not find suitable
+ # distribution for Requirement.parse('pbr>=2.0.0') in the next task
+ - name: ensure setuptools is updated
+ command: >-
+ python{{ playbook_python_version }} -m pip install --user --upgrade
+ setuptools
+
- name: install kolla-ansible and dependencies
vars:
# Test latest ansible version on Ubuntu and CentOS 8, minimum supported on others.
@@ -169,25 +176,11 @@
{{ base_distro == 'ubuntu' or
(base_distro == 'centos' and groups['all'] | map('extract', hostvars, 'ansible_distribution_major_version') | map('int') | list | max == 8) }}
ansible_version_constraint: "{{ '<2.10,!=2.9.12' if ansible_version_latest else '<2.7' }}"
- pip:
- name:
- - "{{ kolla_ansible_src_dir }}"
- - "ansible{{ ansible_version_constraint }}"
- - "ara<1.0.0"
- # NOTE(mgoddard): pyfakefs 4.0.0 dropped support for Python 2.
- - "pyfakefs{% if playbook_python_version == '2' %}<4{% endif %}"
- # NOTE(yoctozepto): alembic 1.5.0 dropped support for SQLAlchemy 1.2.
- # This does not affect Python 3 where pip uses the new resolver.
- - "alembic{% if playbook_python_version == '2' %}<1.5{% endif %}"
- # TODO(mgoddard): Always use pip3 when previous_release is ussuri.
- executable: "pip{{ playbook_python_version }}"
- extra_args: "-c {{ upper_constraints_file }} --user"
-
- # TODO(mgoddard): Always use python3 when previous_release is ussuri.
- - name: get ARA callback plugin path
- command: "python{{ playbook_python_version }} -m ara.setup.callback_plugins"
- changed_when: false
- register: ara_callback_plugins
+ command: >-
+ python{{ playbook_python_version }} -m pip install --user
+ -c {{ upper_constraints_file }}
+ {{ kolla_ansible_src_dir }}
+ ansible{{ ansible_version_constraint }}
- name: template ansible.cfg
template:
@@ -426,10 +419,10 @@
when: item.when | default(true)
- name: upgrade kolla-ansible
- pip:
- name: "{{ kolla_ansible_src_dir }}"
- executable: "pip{{ playbook_python_version }}"
- extra_args: "-c {{ upper_constraints_file }} --user"
+ command: >-
+ python{{ playbook_python_version }} -m pip install --user
+ -c {{ upper_constraints_file }}
+ {{ kolla_ansible_src_dir }}
# Update passwords.yml to include any new passwords added in this
# release.
diff --git a/tests/setup_gate.sh b/tests/setup_gate.sh
deleted file mode 120000
index fbacb3f920..0000000000
--- a/tests/setup_gate.sh
+++ /dev/null
@@ -1 +0,0 @@
-../tools/setup_gate.sh
\ No newline at end of file
diff --git a/tests/setup_gate.sh b/tests/setup_gate.sh
new file mode 100755
index 0000000000..2eaecaadd1
--- /dev/null
+++ b/tests/setup_gate.sh
@@ -0,0 +1,141 @@
+#!/bin/bash
+
+set -o xtrace
+set -o errexit
+set -o pipefail
+
+# Enable unbuffered output for Ansible in Jenkins.
+export PYTHONUNBUFFERED=1
+
+
+function setup_openstack_clients {
+ # Prepare virtualenv for openstack deployment tests
+ local packages=(python-openstackclient python-heatclient)
+ if [[ $SCENARIO == zun ]]; then
+ packages+=(python-zunclient)
+ fi
+ if [[ $SCENARIO == ironic ]]; then
+ packages+=(python-ironicclient)
+ fi
+ if [[ $SCENARIO == masakari ]]; then
+ packages+=(python-masakariclient)
+ fi
+ if [[ $SCENARIO == scenario_nfv ]]; then
+ packages+=(python-tackerclient python-barbicanclient python-mistralclient)
+ fi
+ virtualenv ~/openstackclient-venv
+ ~/openstackclient-venv/bin/pip install -U pip
+ ~/openstackclient-venv/bin/pip install -U setuptools
+ ~/openstackclient-venv/bin/pip install -c $UPPER_CONSTRAINTS ${packages[@]}
+}
+
+function prepare_images {
+ if [[ "${BUILD_IMAGE}" == "False" ]]; then
+ return
+ fi
+
+ if [[ $SCENARIO != "bifrost" ]]; then
+ GATE_IMAGES="^cron,^fluentd,^glance,^haproxy,^keepalived,^keystone,^kolla-toolbox,^mariadb,^memcached,^neutron,^nova-,^openvswitch,^rabbitmq,^horizon,^chrony,^heat,^placement"
+ else
+ GATE_IMAGES="bifrost"
+ fi
+
+ if [[ $SCENARIO == "ceph" ]]; then
+ GATE_IMAGES+=",^ceph,^cinder"
+ fi
+
+ if [[ $SCENARIO == "zun" ]]; then
+ GATE_IMAGES+=",^zun,^kuryr,^etcd,^cinder,^iscsid"
+ if [[ $BASE_DISTRO != "centos" ]] || [[ $BASE_DISTRO_MAJOR_VERSION -eq 7 ]]; then
+ GATE_IMAGES+=",^tgtd"
+ fi
+ fi
+
+ if [[ $SCENARIO == "scenario_nfv" ]]; then
+ GATE_IMAGES+=",^tacker,^mistral,^redis,^barbican"
+ fi
+ if [[ $SCENARIO == "ironic" ]]; then
+ GATE_IMAGES+=",^dnsmasq,^ironic,^iscsid"
+ fi
+ if [[ $SCENARIO == "masakari" ]]; then
+ GATE_IMAGES+=",^masakari"
+ fi
+
+ if [[ $SCENARIO == "swift" ]]; then
+ GATE_IMAGES+=",^swift"
+ fi
+
+ if [[ $SCENARIO == "mariadb" ]]; then
+ GATE_IMAGES="^cron,^haproxy,^keepalived,^kolla-toolbox,^mariadb"
+ fi
+
+ if [[ $SCENARIO == "prometheus-efk" ]]; then
+ GATE_IMAGES="^cron,^elasticsearch,^fluentd,^grafana,^haproxy,^keepalived,^kibana,^kolla-toolbox,^mariadb,^memcached,^prometheus,^rabbitmq"
+ fi
+
+ # NOTE(yoctozepto): we cannot build and push at the same time on debian
+ # buster see https://github.com/docker/for-linux/issues/711.
+ PUSH="true"
+ if [[ "debian" == $BASE_DISTRO ]]; then
+ PUSH="false"
+ fi
+
+ sudo tee /etc/kolla/kolla-build.conf < /tmp/logs/ansible/bootstrap-servers
+
+prepare_images
diff --git a/tests/templates/ansible.cfg.j2 b/tests/templates/ansible.cfg.j2
index 256a2efd70..49bbcdf40c 100644
--- a/tests/templates/ansible.cfg.j2
+++ b/tests/templates/ansible.cfg.j2
@@ -1,6 +1,6 @@
[defaults]
-callback_plugins = {{ ara_callback_plugins.stdout }}
host_key_checking = False
[ssh_connection]
pipelining = True
+retries = 3
diff --git a/tests/test-mariadb.sh b/tests/test-mariadb.sh
index 6d26e994a5..5fbccd7bae 100755
--- a/tests/test-mariadb.sh
+++ b/tests/test-mariadb.sh
@@ -11,7 +11,7 @@ export PYTHONUNBUFFERED=1
function mariadb_stop {
echo "Stopping the database cluster"
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv stop --yes-i-really-really-mean-it --tags mariadb --skip-tags common
+ kolla-ansible -i ${RAW_INVENTORY} -vvv stop --yes-i-really-really-mean-it --tags mariadb --skip-tags common
if [[ $(sudo docker ps -q | grep mariadb | wc -l) -ne 0 ]]; then
echo "Failed to stop MariaDB cluster"
return 1
@@ -21,7 +21,7 @@ function mariadb_stop {
function mariadb_recovery {
# Recover the database cluster.
echo "Recovering the database cluster"
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv mariadb_recovery --tags mariadb --skip-tags common
+ kolla-ansible -i ${RAW_INVENTORY} -vvv mariadb_recovery --tags mariadb --skip-tags common
}
function test_recovery {
diff --git a/tests/upgrade-bifrost.sh b/tests/upgrade-bifrost.sh
index 72966166a4..c50c921ee0 100755
--- a/tests/upgrade-bifrost.sh
+++ b/tests/upgrade-bifrost.sh
@@ -15,7 +15,7 @@ function upgrade_bifrost {
# CI.
# TODO(mgoddard): make some configuration file changes and trigger a real
# upgrade.
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv deploy-bifrost &> /tmp/logs/ansible/upgrade-bifrost
+ kolla-ansible -i ${RAW_INVENTORY} -vvv deploy-bifrost &> /tmp/logs/ansible/upgrade-bifrost
}
diff --git a/tests/upgrade.sh b/tests/upgrade.sh
index c0ce10e441..a3a608f0da 100755
--- a/tests/upgrade.sh
+++ b/tests/upgrade.sh
@@ -10,10 +10,10 @@ export PYTHONUNBUFFERED=1
function upgrade {
RAW_INVENTORY=/etc/kolla/inventory
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks &> /tmp/logs/ansible/upgrade-prechecks
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv pull &> /tmp/logs/ansible/pull-upgrade
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv upgrade &> /tmp/logs/ansible/upgrade
- tools/kolla-ansible -i ${RAW_INVENTORY} -vvv check &> /tmp/logs/ansible/check-upgrade
+ kolla-ansible -i ${RAW_INVENTORY} -vvv prechecks &> /tmp/logs/ansible/upgrade-prechecks
+ kolla-ansible -i ${RAW_INVENTORY} -vvv pull &> /tmp/logs/ansible/pull-upgrade
+ kolla-ansible -i ${RAW_INVENTORY} -vvv upgrade &> /tmp/logs/ansible/upgrade
+ kolla-ansible -i ${RAW_INVENTORY} -vvv check &> /tmp/logs/ansible/check-upgrade
}
diff --git a/tools/kolla-ansible b/tools/kolla-ansible
index 077d3a71b8..ab23a8542c 100755
--- a/tools/kolla-ansible
+++ b/tools/kolla-ansible
@@ -22,6 +22,7 @@ function check_environment_coherence {
local ansible_python_cmdline
# NOTE(yoctozepto): may have multiple parts
ansible_python_cmdline=${ansible_shebang_line#\#\!}
+ ansible_python_version=$($ansible_python_cmdline -c 'import sys; print(str(sys.version_info[0])+"."+str(sys.version_info[1]))')
if ! $ansible_python_cmdline --version &>/dev/null; then
echo "ERROR: Ansible Python is not functional." >&2
@@ -66,21 +67,38 @@ function check_environment_coherence {
function find_base_dir {
local dir_name
+ local python_dir
dir_name=$(dirname "$0")
# NOTE(yoctozepto): Fix the case where dir_name is a symlink and VIRTUAL_ENV might not be. This
# happens with pyenv-virtualenv, see https://bugs.launchpad.net/kolla-ansible/+bug/1903887
dir_name=$(readlink -e "$dir_name")
+ python_dir="python${ansible_python_version}"
if [ -z "$SNAP" ]; then
if [[ ${dir_name} == "/usr/bin" ]]; then
- BASEDIR=/usr/share/kolla-ansible
+ if test -f /usr/lib/${python_dir}/*-packages/kolla-ansible.egg-link; then
+ # Editable install.
+ BASEDIR="$(head -n1 /usr/lib/${python_dir}/*-packages/kolla-ansible.egg-link)"
+ else
+ BASEDIR=/usr/share/kolla-ansible
+ fi
elif [[ ${dir_name} == "/usr/local/bin" ]]; then
- BASEDIR=/usr/local/share/kolla-ansible
+ if test -f /usr/local/lib/${python_dir}/*-packages/kolla-ansible.egg-link; then
+ # Editable install.
+ BASEDIR="$(head -n1 /usr/local/lib/${python_dir}/*-packages/kolla-ansible.egg-link)"
+ else
+ BASEDIR=/usr/local/share/kolla-ansible
+ fi
elif [[ ${dir_name} == ~/.local/bin ]]; then
- BASEDIR=~/.local/share/kolla-ansible
+ if test -f ~/.local/lib/${python_dir}/*-packages/kolla-ansible.egg-link; then
+ # Editable install.
+ BASEDIR="$(head -n1 ~/.local/lib/${python_dir}/*-packages/kolla-ansible.egg-link)"
+ else
+ BASEDIR=~/.local/share/kolla-ansible
+ fi
elif [[ -n ${VIRTUAL_ENV} ]] && [[ ${dir_name} == "$(readlink -e "${VIRTUAL_ENV}/bin")" ]]; then
- if test -f ${VIRTUAL_ENV}/lib/python*/site-packages/kolla-ansible.egg-link; then
+ if test -f ${VIRTUAL_ENV}/lib/${python_dir}/site-packages/kolla-ansible.egg-link; then
# Editable install.
- BASEDIR="$(head -n1 ${VIRTUAL_ENV}/lib/python*/site-packages/kolla-ansible.egg-link)"
+ BASEDIR="$(head -n1 ${VIRTUAL_ENV}/lib/${python_dir}/*-packages/kolla-ansible.egg-link)"
else
BASEDIR="${VIRTUAL_ENV}/share/kolla-ansible"
fi
diff --git a/tools/setup_gate.sh b/tools/setup_gate.sh
deleted file mode 100755
index 8fb9882021..0000000000
--- a/tools/setup_gate.sh
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/bin/bash
-
-set -o xtrace
-set -o errexit
-set -o pipefail
-
-# Enable unbuffered output for Ansible in Jenkins.
-export PYTHONUNBUFFERED=1
-
-
-function setup_openstack_clients {
- # Prepare virtualenv for openstack deployment tests
- local packages=(python-openstackclient python-heatclient)
- if [[ $SCENARIO == zun ]]; then
- packages+=(python-zunclient)
- fi
- if [[ $SCENARIO == ironic ]]; then
- packages+=(python-ironicclient)
- fi
- if [[ $SCENARIO == masakari ]]; then
- packages+=(python-masakariclient)
- fi
- if [[ $SCENARIO == scenario_nfv ]]; then
- packages+=(python-tackerclient python-barbicanclient python-mistralclient)
- fi
- virtualenv ~/openstackclient-venv
- ~/openstackclient-venv/bin/pip install -U pip
- ~/openstackclient-venv/bin/pip install -c $UPPER_CONSTRAINTS ${packages[@]}
-}
-
-function prepare_images {
- if [[ "${BUILD_IMAGE}" == "False" ]]; then
- return
- fi
-
- if [[ $SCENARIO != "bifrost" ]]; then
- GATE_IMAGES="^cron,^fluentd,^glance,^haproxy,^keepalived,^keystone,^kolla-toolbox,^mariadb,^memcached,^neutron,^nova-,^openvswitch,^rabbitmq,^horizon,^chrony,^heat,^placement"
- else
- GATE_IMAGES="bifrost"
- fi
-
- if [[ $SCENARIO == "ceph" ]]; then
- GATE_IMAGES+=",^ceph,^cinder"
- fi
-
- if [[ $SCENARIO == "zun" ]]; then
- GATE_IMAGES+=",^zun,^kuryr,^etcd,^cinder,^iscsid"
- if [[ $BASE_DISTRO != "centos" ]] || [[ $BASE_DISTRO_MAJOR_VERSION -eq 7 ]]; then
- GATE_IMAGES+=",^tgtd"
- fi
- fi
-
- if [[ $SCENARIO == "scenario_nfv" ]]; then
- GATE_IMAGES+=",^tacker,^mistral,^redis,^barbican"
- fi
- if [[ $SCENARIO == "ironic" ]]; then
- GATE_IMAGES+=",^dnsmasq,^ironic,^iscsid"
- fi
- if [[ $SCENARIO == "masakari" ]]; then
- GATE_IMAGES+=",^masakari"
- fi
-
- if [[ $SCENARIO == "swift" ]]; then
- GATE_IMAGES+=",^swift"
- fi
-
- if [[ $SCENARIO == "mariadb" ]]; then
- GATE_IMAGES="^cron,^haproxy,^keepalived,^kolla-toolbox,^mariadb"
- fi
-
- if [[ $SCENARIO == "prometheus-efk" ]]; then
- GATE_IMAGES="^cron,^elasticsearch,^fluentd,^grafana,^haproxy,^keepalived,^kibana,^kolla-toolbox,^mariadb,^memcached,^prometheus,^rabbitmq"
- fi
-
- # NOTE(yoctozepto): we cannot build and push at the same time on debian
- # buster see https://github.com/docker/for-linux/issues/711.
- PUSH="true"
- if [[ "debian" == $BASE_DISTRO ]]; then
- PUSH="false"
- fi
-
- sudo tee /etc/kolla/kolla-build.conf < /tmp/logs/ansible/bootstrap-servers
-
-prepare_images
diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml
index 22dd552e7d..db97691578 100644
--- a/zuul.d/base.yaml
+++ b/zuul.d/base.yaml
@@ -32,13 +32,6 @@
kolla_internal_vip_address: "192.0.2.10"
address_family: 'ipv4'
configure_swap_size: 0
- host-vars:
- primary:
- ansible_python_interpreter: python2
- secondary1:
- ansible_python_interpreter: python2
- secondary2:
- ansible_python_interpreter: python2
roles:
- zuul: zuul/zuul-jobs
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 74edc0c7e7..d68ead2ff7 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -11,15 +11,6 @@
name: kolla-ansible-centos8-source
parent: kolla-ansible-base
nodeset: kolla-ansible-centos8
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source
@@ -29,13 +20,6 @@
parent: kolla-ansible-base
nodeset: kolla-ansible-centos-mixed-7-8
voting: false
- # NOTE(mgoddard): Use Python3 on CentOS 8 hosts, overriding the use of
- # Python 2 from the base job.
- host-vars:
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source
@@ -79,15 +63,6 @@
parent: kolla-ansible-base
nodeset: kolla-ansible-centos8
voting: false
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: binary
@@ -151,15 +126,6 @@
name: kolla-ansible-centos8-source-mariadb
parent: kolla-ansible-mariadb-base
nodeset: kolla-ansible-centos8-multi
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source
@@ -239,15 +205,6 @@
name: kolla-ansible-centos8-source-bifrost
parent: kolla-ansible-bifrost-base
nodeset: kolla-ansible-centos8
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
@@ -263,15 +220,6 @@
name: kolla-ansible-centos8-source-zun
parent: kolla-ansible-zun-base
nodeset: kolla-ansible-centos8-multi
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source
@@ -296,15 +244,6 @@
name: kolla-ansible-centos8-source-swift
parent: kolla-ansible-swift-base
nodeset: kolla-ansible-centos8-multi
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source
@@ -332,15 +271,6 @@
name: kolla-ansible-centos8-source-scenario-nfv
parent: kolla-ansible-scenario-nfv-base
nodeset: kolla-ansible-centos8-multi
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source
@@ -357,15 +287,6 @@
name: kolla-ansible-centos8-source-ironic
parent: kolla-ansible-ironic-base
nodeset: kolla-ansible-centos8
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source
@@ -382,15 +303,6 @@
name: kolla-ansible-centos8-binary-ironic
parent: kolla-ansible-ironic-base
nodeset: kolla-ansible-centos8
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: binary
@@ -437,15 +349,6 @@
name: kolla-ansible-centos8-source-masakari
parent: kolla-ansible-masakari-base
nodeset: kolla-ansible-centos8
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source
@@ -465,15 +368,6 @@
parent: kolla-ansible-base
nodeset: kolla-ansible-centos8-multi
voting: false
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
- secondary1:
- ansible_python_interpreter: python3
- secondary2:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source
@@ -491,11 +385,6 @@
name: kolla-ansible-centos8-source-prometheus-efk
parent: kolla-ansible-prometheus-efk-base
nodeset: kolla-ansible-centos8
- # NOTE(mgoddard): Use Python3 on CentOS 8 jobs, overriding the use of
- # Python 2 from the base job.
- host-vars:
- primary:
- ansible_python_interpreter: python3
vars:
base_distro: centos
install_type: source