aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadosław Piliszek <radoslaw.piliszek@gmail.com>2020-07-31 17:54:52 +0200
committerMichal Arbet <michal.arbet@ultimum.io>2024-12-01 22:16:51 +0100
commit345ecbf55e079c6f578302c3e2189fa56e4ff5fe (patch)
treef1258a74b842593bebd9a113eca1f37901f32506
parent53376aed8fc8175a2e5a2ca69dfe15a56a16273f (diff)
downloadkolla-ansible-345ecbf55e079c6f578302c3e2189fa56e4ff5fe.tar.gz
kolla-ansible-345ecbf55e079c6f578302c3e2189fa56e4ff5fe.zip
Refactor services' check-containers and optimise
This might fix some hidden bugs where the check tasks forgot to include params important for the service. We also get a nice optimisation by using a filtered loop instead of task skipping per service with 'when'. As proven in https://review.opendev.org/c/openstack/kolla-ansible/+/914997 This refactoring allows for further optimisation and fixing work to proceed with much less hassle. Including getting rid of many notify statements as the restarts are now safely handled by check-containers. Some notifies had to stay, because of special edge cases eg. in rolling upgrades and loadbalancer config. One downside is we remove the little optimisation for Zun that ignored config change for copying loopback but this is an acceptable tradeoff considering the benefits above. Co-Authored-By: Roman Krček <roman.krcek@tietoevry.com> Change-Id: I855dfef33aa0f3fd1301295bb8ede3e587e7162a Partially-Implements: blueprint performance-improvements
-rw-r--r--ansible/library/kolla_container.py2
-rw-r--r--ansible/roles/aodh/tasks/check-containers.yml15
-rw-r--r--ansible/roles/barbican/tasks/check-containers.yml15
-rw-r--r--ansible/roles/blazar/tasks/check-containers.yml15
-rw-r--r--ansible/roles/ceilometer/tasks/check-containers.yml16
-rw-r--r--ansible/roles/cinder/tasks/check-containers.yml18
-rw-r--r--ansible/roles/cinder/tasks/external_ceph.yml6
-rw-r--r--ansible/roles/cloudkitty/tasks/check-containers.yml15
-rw-r--r--ansible/roles/collectd/tasks/check-containers.yml15
-rw-r--r--ansible/roles/common/tasks/check-containers.yml16
-rw-r--r--ansible/roles/cyborg/tasks/check-containers.yml16
-rw-r--r--ansible/roles/designate/tasks/backend_external.yml4
-rw-r--r--ansible/roles/designate/tasks/check-containers.yml15
-rw-r--r--ansible/roles/etcd/tasks/check-containers.yml15
-rw-r--r--ansible/roles/glance/tasks/check-containers.yml17
-rw-r--r--ansible/roles/glance/tasks/external_ceph.yml4
-rw-r--r--ansible/roles/gnocchi/tasks/check-containers.yml15
-rw-r--r--ansible/roles/gnocchi/tasks/external_ceph.yml4
-rw-r--r--ansible/roles/grafana/tasks/check-containers.yml14
-rw-r--r--ansible/roles/hacluster/tasks/check-containers.yml26
-rw-r--r--ansible/roles/heat/tasks/check-containers.yml15
-rw-r--r--ansible/roles/horizon/tasks/check-containers.yml16
-rw-r--r--ansible/roles/influxdb/tasks/check-containers.yml14
-rw-r--r--ansible/roles/ironic/tasks/check-containers.yml18
-rw-r--r--ansible/roles/iscsi/tasks/check-containers.yml16
-rw-r--r--ansible/roles/keystone/tasks/check-containers.yml15
-rw-r--r--ansible/roles/kuryr/tasks/check-containers.yml17
-rw-r--r--ansible/roles/letsencrypt/tasks/check-containers.yml16
-rw-r--r--ansible/roles/loadbalancer/tasks/check-containers.yml16
-rw-r--r--ansible/roles/magnum/tasks/check-containers.yml16
-rw-r--r--ansible/roles/manila/tasks/check-containers.yml16
-rw-r--r--ansible/roles/manila/tasks/external_ceph.yml4
-rw-r--r--ansible/roles/mariadb/handlers/main.yml2
-rw-r--r--ansible/roles/mariadb/tasks/check-containers.yml16
-rw-r--r--ansible/roles/masakari/tasks/check-containers.yml16
-rw-r--r--ansible/roles/memcached/tasks/check-containers.yml16
-rw-r--r--ansible/roles/mistral/tasks/check-containers.yml15
-rw-r--r--ansible/roles/multipathd/tasks/check-containers.yml15
-rw-r--r--ansible/roles/neutron/tasks/check-containers.yml17
-rw-r--r--ansible/roles/nova-cell/defaults/main.yml2
-rw-r--r--ansible/roles/nova-cell/tasks/check-containers.yml20
-rw-r--r--ansible/roles/nova-cell/tasks/external_ceph.yml6
-rw-r--r--ansible/roles/nova/tasks/check-containers.yml19
-rw-r--r--ansible/roles/octavia/tasks/check-containers.yml15
-rw-r--r--ansible/roles/opensearch/tasks/check-containers.yml16
-rw-r--r--ansible/roles/openvswitch/tasks/check-containers.yml16
-rw-r--r--ansible/roles/ovn-controller/tasks/check-containers.yml14
-rw-r--r--ansible/roles/ovn-db/tasks/check-containers.yml14
-rw-r--r--ansible/roles/ovs-dpdk/tasks/check-containers.yml15
-rw-r--r--ansible/roles/placement/tasks/check-containers.yml19
-rw-r--r--ansible/roles/prometheus/tasks/check-containers.yml16
-rw-r--r--ansible/roles/rabbitmq/tasks/check-containers.yml16
-rw-r--r--ansible/roles/redis/tasks/check-containers.yml16
-rw-r--r--ansible/roles/service-check-containers/tasks/main.yml30
-rw-r--r--ansible/roles/skyline/tasks/check-containers.yml15
-rw-r--r--ansible/roles/tacker/tasks/check-containers.yml15
-rw-r--r--ansible/roles/telegraf/tasks/check-containers.yml15
-rw-r--r--ansible/roles/trove/tasks/check-containers.yml15
-rw-r--r--ansible/roles/venus/tasks/check-containers.yml15
-rw-r--r--ansible/roles/watcher/tasks/check-containers.yml15
-rw-r--r--ansible/roles/zun/handlers/main.yml13
-rw-r--r--ansible/roles/zun/tasks/check-containers.yml19
-rw-r--r--ansible/roles/zun/tasks/external_ceph.yml4
-rw-r--r--releasenotes/notes/refactor-container-check-27624449c47f5e6e.yaml23
64 files changed, 161 insertions, 761 deletions
diff --git a/ansible/library/kolla_container.py b/ansible/library/kolla_container.py
index a2cf44daa..a4eaaaedd 100644
--- a/ansible/library/kolla_container.py
+++ b/ansible/library/kolla_container.py
@@ -267,6 +267,8 @@ EXAMPLES = '''
def generate_module():
# NOTE(jeffrey4l): add empty string '' to choices let us use
# pid_mode: "{{ service.pid_mode | default ('') }}" in yaml
+ # NOTE(r-krcek): arguments_spec should also be reflected in the list of
+ # arguments in service-check-containers role
argument_spec = dict(
common_options=dict(required=False, type='dict', default=dict()),
action=dict(required=True, type='str',
diff --git a/ansible/roles/aodh/tasks/check-containers.yml b/ansible/roles/aodh/tasks/check-containers.yml
index ae2a21242..b7e2f7c29 100644
--- a/ansible/roles/aodh/tasks/check-containers.yml
+++ b/ansible/roles/aodh/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check aodh containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ aodh_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/barbican/tasks/check-containers.yml b/ansible/roles/barbican/tasks/check-containers.yml
index 13a763e7d..b7e2f7c29 100644
--- a/ansible/roles/barbican/tasks/check-containers.yml
+++ b/ansible/roles/barbican/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check barbican containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ barbican_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/blazar/tasks/check-containers.yml b/ansible/roles/blazar/tasks/check-containers.yml
index b1a3b9cc8..b7e2f7c29 100644
--- a/ansible/roles/blazar/tasks/check-containers.yml
+++ b/ansible/roles/blazar/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check blazar containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ blazar_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/ceilometer/tasks/check-containers.yml b/ansible/roles/ceilometer/tasks/check-containers.yml
index dec2865e3..b7e2f7c29 100644
--- a/ansible/roles/ceilometer/tasks/check-containers.yml
+++ b/ansible/roles/ceilometer/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check ceilometer containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ ceilometer_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/cinder/tasks/check-containers.yml b/ansible/roles/cinder/tasks/check-containers.yml
index 50595bbc8..b7e2f7c29 100644
--- a/ansible/roles/cinder/tasks/check-containers.yml
+++ b/ansible/roles/cinder/tasks/check-containers.yml
@@ -1,17 +1,3 @@
---
-- name: Check cinder containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- tmpfs: "{{ item.value.tmpfs | default(omit) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- ipc_mode: "{{ item.value.ipc_mode | default('') }}"
- with_dict: "{{ cinder_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/cinder/tasks/external_ceph.yml b/ansible/roles/cinder/tasks/external_ceph.yml
index 4b5b8dcd3..cf9c34fd1 100644
--- a/ansible/roles/cinder/tasks/external_ceph.yml
+++ b/ansible/roles/cinder/tasks/external_ceph.yml
@@ -35,8 +35,6 @@
with_nested:
- "{{ cinder_services | dict2items }}"
- "{{ cinder_ceph_backends + [cinder_backup_ceph_backend] }}"
- notify:
- - "Restart {{ service_name }} container"
- name: Copy over Ceph keyring files for cinder-volume
vars:
@@ -51,8 +49,6 @@
when:
- external_ceph_cephx_enabled | bool
- service | service_enabled_and_mapped_to_host
- notify:
- - Restart cinder-volume container
- name: Copy over Ceph keyring files for cinder-backup
vars:
@@ -69,8 +65,6 @@
when:
- external_ceph_cephx_enabled | bool
- service | service_enabled_and_mapped_to_host
- notify:
- - Restart cinder-backup container
- name: Ensuring config directory has correct owner and permission
become: true
diff --git a/ansible/roles/cloudkitty/tasks/check-containers.yml b/ansible/roles/cloudkitty/tasks/check-containers.yml
index 73fdcf74b..b7e2f7c29 100644
--- a/ansible/roles/cloudkitty/tasks/check-containers.yml
+++ b/ansible/roles/cloudkitty/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check cloudkitty containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ cloudkitty_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/collectd/tasks/check-containers.yml b/ansible/roles/collectd/tasks/check-containers.yml
index 820587667..b7e2f7c29 100644
--- a/ansible/roles/collectd/tasks/check-containers.yml
+++ b/ansible/roles/collectd/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check collectd containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- with_dict: "{{ collectd_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/common/tasks/check-containers.yml b/ansible/roles/common/tasks/check-containers.yml
index 1aa8b2073..b7e2f7c29 100644
--- a/ansible/roles/common/tasks/check-containers.yml
+++ b/ansible/roles/common/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check common containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- environment: "{{ item.value.environment }}"
- with_dict: "{{ common_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/cyborg/tasks/check-containers.yml b/ansible/roles/cyborg/tasks/check-containers.yml
index a7bcb4b97..b7e2f7c29 100644
--- a/ansible/roles/cyborg/tasks/check-containers.yml
+++ b/ansible/roles/cyborg/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check cyborg containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ cyborg_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - Restart {{ item.key }} container
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/designate/tasks/backend_external.yml b/ansible/roles/designate/tasks/backend_external.yml
index 67a1990f8..75e3efe01 100644
--- a/ansible/roles/designate/tasks/backend_external.yml
+++ b/ansible/roles/designate/tasks/backend_external.yml
@@ -9,8 +9,6 @@
- designate_backend_external == 'bind9'
- item.key in [ "designate-worker" ]
with_dict: "{{ designate_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - Restart {{ item.key }} container
- name: Copying over rndc.key (designate_backend_external)
template:
@@ -22,5 +20,3 @@
- designate_backend_external == 'bind9'
- item.key in [ "designate-worker" ]
with_dict: "{{ designate_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - Restart {{ item.key }} container
diff --git a/ansible/roles/designate/tasks/check-containers.yml b/ansible/roles/designate/tasks/check-containers.yml
index 1dfe7ca1e..b7e2f7c29 100644
--- a/ansible/roles/designate/tasks/check-containers.yml
+++ b/ansible/roles/designate/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check designate containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ designate_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/etcd/tasks/check-containers.yml b/ansible/roles/etcd/tasks/check-containers.yml
index 11e9b5434..b7e2f7c29 100644
--- a/ansible/roles/etcd/tasks/check-containers.yml
+++ b/ansible/roles/etcd/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check etcd containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- environment: "{{ item.value.environment }}"
- with_dict: "{{ etcd_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/glance/tasks/check-containers.yml b/ansible/roles/glance/tasks/check-containers.yml
index 641ba907f..b7e2f7c29 100644
--- a/ansible/roles/glance/tasks/check-containers.yml
+++ b/ansible/roles/glance/tasks/check-containers.yml
@@ -1,16 +1,3 @@
---
-- name: Check glance containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(omit) }}"
- environment: "{{ item.value.environment | default(omit) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ glance_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/glance/tasks/external_ceph.yml b/ansible/roles/glance/tasks/external_ceph.yml
index 8137f4541..3daa656bd 100644
--- a/ansible/roles/glance/tasks/external_ceph.yml
+++ b/ansible/roles/glance/tasks/external_ceph.yml
@@ -21,8 +21,6 @@
become: true
when: inventory_hostname in groups['glance-api']
with_items: "{{ glance_ceph_backends }}"
- notify:
- - Restart glance-api container
- name: Copy over ceph Glance keyrings
vars:
@@ -34,8 +32,6 @@
become: true
with_items: "{{ glance_ceph_backends }}"
when: inventory_hostname in groups['glance-api']
- notify:
- - Restart glance-api container
- name: Ensuring config directory has correct owner and permission
file:
diff --git a/ansible/roles/gnocchi/tasks/check-containers.yml b/ansible/roles/gnocchi/tasks/check-containers.yml
index 4369977f2..b7e2f7c29 100644
--- a/ansible/roles/gnocchi/tasks/check-containers.yml
+++ b/ansible/roles/gnocchi/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check gnocchi containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ gnocchi_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/gnocchi/tasks/external_ceph.yml b/ansible/roles/gnocchi/tasks/external_ceph.yml
index d05629f9f..c36fd9855 100644
--- a/ansible/roles/gnocchi/tasks/external_ceph.yml
+++ b/ansible/roles/gnocchi/tasks/external_ceph.yml
@@ -18,8 +18,6 @@
mode: "0660"
become: true
with_dict: "{{ gnocchi_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - Restart {{ item.key }} container
- name: Copy over ceph Gnocchi keyrings
template:
@@ -28,8 +26,6 @@
mode: "0660"
become: true
with_dict: "{{ gnocchi_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - Restart {{ item.key }} container
- name: Ensuring config directory has correct owner and permission
become: true
diff --git a/ansible/roles/grafana/tasks/check-containers.yml b/ansible/roles/grafana/tasks/check-containers.yml
index 4c24c3b50..b7e2f7c29 100644
--- a/ansible/roles/grafana/tasks/check-containers.yml
+++ b/ansible/roles/grafana/tasks/check-containers.yml
@@ -1,13 +1,3 @@
---
-- name: Check grafana containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- with_dict: "{{ grafana_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/hacluster/tasks/check-containers.yml b/ansible/roles/hacluster/tasks/check-containers.yml
index 0a0f8253e..b7e2f7c29 100644
--- a/ansible/roles/hacluster/tasks/check-containers.yml
+++ b/ansible/roles/hacluster/tasks/check-containers.yml
@@ -1,25 +1,3 @@
---
-- name: Check hacluster containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ service.container_name }}"
- image: "{{ service.image | default(omit) }}"
- volumes: "{{ service.volumes | default(omit) }}"
- dimensions: "{{ service.dimensions | default(omit) }}"
- volumes_from: "{{ service.volumes_from | default(omit) }}"
- privileged: "{{ service.privileged | default(omit) }}"
- cap_add: "{{ service.cap_add | default(omit) }}"
- environment: "{{ service.environment | default(omit) }}"
- ipc_mode: "{{ service.ipc_mode | default(omit) }}"
- pid_mode: "{{ service.pid_mode | default(omit) }}"
- security_opt: "{{ service.security_opt | default(omit) }}"
- labels: "{{ service.labels | default(omit) }}"
- command: "{{ service.command | default(omit) }}"
- vars:
- service_name: "{{ item.key }}"
- service: "{{ item.value }}"
- with_dict: "{{ hacluster_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ service_name }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/heat/tasks/check-containers.yml b/ansible/roles/heat/tasks/check-containers.yml
index 9ac2c53f4..b7e2f7c29 100644
--- a/ansible/roles/heat/tasks/check-containers.yml
+++ b/ansible/roles/heat/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check heat containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ heat_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/horizon/tasks/check-containers.yml b/ansible/roles/horizon/tasks/check-containers.yml
index b7e38d8f5..b7e2f7c29 100644
--- a/ansible/roles/horizon/tasks/check-containers.yml
+++ b/ansible/roles/horizon/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Deploy horizon container
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- environment: "{{ item.value.environment }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ horizon_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/influxdb/tasks/check-containers.yml b/ansible/roles/influxdb/tasks/check-containers.yml
index ac1408971..b7e2f7c29 100644
--- a/ansible/roles/influxdb/tasks/check-containers.yml
+++ b/ansible/roles/influxdb/tasks/check-containers.yml
@@ -1,13 +1,3 @@
---
-- name: Check influxdb containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- with_dict: "{{ influxdb_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/ironic/tasks/check-containers.yml b/ansible/roles/ironic/tasks/check-containers.yml
index 7ee5e7771..b7e2f7c29 100644
--- a/ansible/roles/ironic/tasks/check-containers.yml
+++ b/ansible/roles/ironic/tasks/check-containers.yml
@@ -1,17 +1,3 @@
---
-- name: Check ironic containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- cap_add: "{{ item.value.cap_add | default([]) }}"
- environment: "{{ item.value.environment | default(omit) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ ironic_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/iscsi/tasks/check-containers.yml b/ansible/roles/iscsi/tasks/check-containers.yml
index 3eae52913..b7e2f7c29 100644
--- a/ansible/roles/iscsi/tasks/check-containers.yml
+++ b/ansible/roles/iscsi/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check iscsi containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- ipc_mode: "{{ item.value.ipc_mode }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- with_dict: "{{ iscsi_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/keystone/tasks/check-containers.yml b/ansible/roles/keystone/tasks/check-containers.yml
index 226d979dc..b7e2f7c29 100644
--- a/ansible/roles/keystone/tasks/check-containers.yml
+++ b/ansible/roles/keystone/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check keystone containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ keystone_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/kuryr/tasks/check-containers.yml b/ansible/roles/kuryr/tasks/check-containers.yml
index c1fdb0c5e..b7e2f7c29 100644
--- a/ansible/roles/kuryr/tasks/check-containers.yml
+++ b/ansible/roles/kuryr/tasks/check-containers.yml
@@ -1,16 +1,3 @@
---
-- name: Check kuryr containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- cap_add: "{{ item.value.cap_add }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ kuryr_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/letsencrypt/tasks/check-containers.yml b/ansible/roles/letsencrypt/tasks/check-containers.yml
index 0c20e0523..b7e2f7c29 100644
--- a/ansible/roles/letsencrypt/tasks/check-containers.yml
+++ b/ansible/roles/letsencrypt/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check LetsEncrypt containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- environment: "{{ item.value.environment | default(omit) }}"
- with_dict: "{{ letsencrypt_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/loadbalancer/tasks/check-containers.yml b/ansible/roles/loadbalancer/tasks/check-containers.yml
index ee6f92fe4..b7e2f7c29 100644
--- a/ansible/roles/loadbalancer/tasks/check-containers.yml
+++ b/ansible/roles/loadbalancer/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check loadbalancer containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- with_dict: "{{ loadbalancer_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/magnum/tasks/check-containers.yml b/ansible/roles/magnum/tasks/check-containers.yml
index b233b5e60..b7e2f7c29 100644
--- a/ansible/roles/magnum/tasks/check-containers.yml
+++ b/ansible/roles/magnum/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check magnum containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- environment: "{{ item.value.environment }}"
- with_dict: "{{ magnum_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/manila/tasks/check-containers.yml b/ansible/roles/manila/tasks/check-containers.yml
index ce5200472..b7e2f7c29 100644
--- a/ansible/roles/manila/tasks/check-containers.yml
+++ b/ansible/roles/manila/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check manila containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ manila_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/manila/tasks/external_ceph.yml b/ansible/roles/manila/tasks/external_ceph.yml
index 8a66ed370..3b70b0ad4 100644
--- a/ansible/roles/manila/tasks/external_ceph.yml
+++ b/ansible/roles/manila/tasks/external_ceph.yml
@@ -23,8 +23,6 @@
- inventory_hostname in groups['manila-share']
- item.enabled | bool
with_items: "{{ manila_ceph_backends }}"
- notify:
- - Restart manila-share container
- name: Copy over ceph Manila keyrings
template:
@@ -36,8 +34,6 @@
when:
- inventory_hostname in groups['manila-share']
- item.enabled | bool
- notify:
- - Restart manila-share container
- name: Ensuring config directory has correct owner and permission
become: true
diff --git a/ansible/roles/mariadb/handlers/main.yml b/ansible/roles/mariadb/handlers/main.yml
index 156e16627..78d99e4a1 100644
--- a/ansible/roles/mariadb/handlers/main.yml
+++ b/ansible/roles/mariadb/handlers/main.yml
@@ -83,7 +83,5 @@
volumes: "{{ service.volumes }}"
dimensions: "{{ service.dimensions }}"
environment: "{{ service.environment }}"
- listen:
- - Restart mariadb-clustercheck container
when:
- service | service_enabled_and_mapped_to_host
diff --git a/ansible/roles/mariadb/tasks/check-containers.yml b/ansible/roles/mariadb/tasks/check-containers.yml
index f4f7a603b..b7e2f7c29 100644
--- a/ansible/roles/mariadb/tasks/check-containers.yml
+++ b/ansible/roles/mariadb/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check mariadb containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- environment: "{{ item.value.environment | default(omit) }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ mariadb_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/masakari/tasks/check-containers.yml b/ansible/roles/masakari/tasks/check-containers.yml
index fa46c70bc..b7e2f7c29 100644
--- a/ansible/roles/masakari/tasks/check-containers.yml
+++ b/ansible/roles/masakari/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check masakari containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- ipc_mode: "{{ item.value.ipc_mode | default(omit) }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- with_dict: "{{ masakari_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - Restart {{ item.key }} container
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/memcached/tasks/check-containers.yml b/ansible/roles/memcached/tasks/check-containers.yml
index 49d1c2953..b7e2f7c29 100644
--- a/ansible/roles/memcached/tasks/check-containers.yml
+++ b/ansible/roles/memcached/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check memcached container
- vars:
- service: "{{ memcached_services.memcached }}"
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ service.container_name }}"
- image: "{{ service.image }}"
- volumes: "{{ service.volumes }}"
- dimensions: "{{ service.dimensions }}"
- healthcheck: "{{ service.healthcheck | default(omit) }}"
- when: service | service_enabled_and_mapped_to_host
- notify: Restart memcached container
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/mistral/tasks/check-containers.yml b/ansible/roles/mistral/tasks/check-containers.yml
index 7ed520ca3..b7e2f7c29 100644
--- a/ansible/roles/mistral/tasks/check-containers.yml
+++ b/ansible/roles/mistral/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check mistral containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ mistral_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/multipathd/tasks/check-containers.yml b/ansible/roles/multipathd/tasks/check-containers.yml
index 5d41bdba5..b7e2f7c29 100644
--- a/ansible/roles/multipathd/tasks/check-containers.yml
+++ b/ansible/roles/multipathd/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check multipathd containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- ipc_mode: "{{ item.value.ipc_mode }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes }}"
- with_dict: "{{ multipathd_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/neutron/tasks/check-containers.yml b/ansible/roles/neutron/tasks/check-containers.yml
index cc3ec4fa8..b7e2f7c29 100644
--- a/ansible/roles/neutron/tasks/check-containers.yml
+++ b/ansible/roles/neutron/tasks/check-containers.yml
@@ -1,16 +1,3 @@
---
-- name: Check neutron containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- environment: "{{ item.value.environment | default(omit) }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ neutron_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/nova-cell/defaults/main.yml b/ansible/roles/nova-cell/defaults/main.yml
index a497a5fdc..b3f445d0d 100644
--- a/ansible/roles/nova-cell/defaults/main.yml
+++ b/ansible/roles/nova-cell/defaults/main.yml
@@ -1,4 +1,6 @@
---
+project_name: "nova"
+
nova_cell_services:
nova-libvirt:
container_name: nova_libvirt
diff --git a/ansible/roles/nova-cell/tasks/check-containers.yml b/ansible/roles/nova-cell/tasks/check-containers.yml
index 93452874a..b7e2f7c29 100644
--- a/ansible/roles/nova-cell/tasks/check-containers.yml
+++ b/ansible/roles/nova-cell/tasks/check-containers.yml
@@ -1,19 +1,3 @@
---
-- name: Check nova-cell containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- environment: "{{ item.value.environment | default(omit) }}"
- pid_mode: "{{ item.value.pid_mode | default('') }}"
- cgroupns_mode: "{{ item.value.cgroupns_mode | default(omit) }}"
- ipc_mode: "{{ item.value.ipc_mode | default(omit) }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ nova_cell_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/nova-cell/tasks/external_ceph.yml b/ansible/roles/nova-cell/tasks/external_ceph.yml
index 30a679976..4bf94c44d 100644
--- a/ansible/roles/nova-cell/tasks/external_ceph.yml
+++ b/ansible/roles/nova-cell/tasks/external_ceph.yml
@@ -61,8 +61,6 @@
- inventory_hostname in groups[nova_cell_compute_group]
- nova_backend == "rbd"
- external_ceph_cephx_enabled | bool
- notify:
- - Restart {{ item }} container
- name: Copy over ceph cinder keyring file
template:
@@ -78,8 +76,6 @@
- inventory_hostname in groups[nova_cell_compute_group]
- nova_backend == "rbd"
- external_ceph_cephx_enabled | bool
- notify:
- - Restart {{ item }} container
- name: Copy over ceph.conf
vars:
@@ -100,8 +96,6 @@
when:
- service | service_enabled_and_mapped_to_host
- nova_backend == "rbd"
- notify:
- - Restart {{ item }} container
- block:
- name: Ensure /etc/ceph directory exists (host libvirt)
diff --git a/ansible/roles/nova/tasks/check-containers.yml b/ansible/roles/nova/tasks/check-containers.yml
index f1b6e1817..b7e2f7c29 100644
--- a/ansible/roles/nova/tasks/check-containers.yml
+++ b/ansible/roles/nova/tasks/check-containers.yml
@@ -1,18 +1,3 @@
---
-- name: Check nova containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- environment: "{{ item.value.environment | default(omit) }}"
- pid_mode: "{{ item.value.pid_mode | default('') }}"
- ipc_mode: "{{ item.value.ipc_mode | default(omit) }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ nova_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/octavia/tasks/check-containers.yml b/ansible/roles/octavia/tasks/check-containers.yml
index ac4244ed6..b7e2f7c29 100644
--- a/ansible/roles/octavia/tasks/check-containers.yml
+++ b/ansible/roles/octavia/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check octavia containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ octavia_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/opensearch/tasks/check-containers.yml b/ansible/roles/opensearch/tasks/check-containers.yml
index 44f7253c2..b7e2f7c29 100644
--- a/ansible/roles/opensearch/tasks/check-containers.yml
+++ b/ansible/roles/opensearch/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check opensearch containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- dimensions: "{{ item.value.dimensions }}"
- environment: "{{ item.value.environment | default(omit) }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- with_dict: "{{ opensearch_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/openvswitch/tasks/check-containers.yml b/ansible/roles/openvswitch/tasks/check-containers.yml
index d030119b1..b7e2f7c29 100644
--- a/ansible/roles/openvswitch/tasks/check-containers.yml
+++ b/ansible/roles/openvswitch/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check openvswitch containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck }}"
- with_dict: "{{ openvswitch_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/ovn-controller/tasks/check-containers.yml b/ansible/roles/ovn-controller/tasks/check-containers.yml
index 1cd016795..b7e2f7c29 100644
--- a/ansible/roles/ovn-controller/tasks/check-containers.yml
+++ b/ansible/roles/ovn-controller/tasks/check-containers.yml
@@ -1,13 +1,3 @@
---
-- name: Check ovn-controller containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- with_dict: "{{ ovn_controller_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - Restart {{ item.key }} container
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/ovn-db/tasks/check-containers.yml b/ansible/roles/ovn-db/tasks/check-containers.yml
index 194328231..b7e2f7c29 100644
--- a/ansible/roles/ovn-db/tasks/check-containers.yml
+++ b/ansible/roles/ovn-db/tasks/check-containers.yml
@@ -1,13 +1,3 @@
---
-- name: Check ovn containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- with_dict: "{{ ovn_db_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - Restart {{ item.key }} container
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/ovs-dpdk/tasks/check-containers.yml b/ansible/roles/ovs-dpdk/tasks/check-containers.yml
index 4448bd5cb..b7e2f7c29 100644
--- a/ansible/roles/ovs-dpdk/tasks/check-containers.yml
+++ b/ansible/roles/ovs-dpdk/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check ovs containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- with_dict: "{{ ovsdpdk_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/placement/tasks/check-containers.yml b/ansible/roles/placement/tasks/check-containers.yml
index c9f56cadd..b7e2f7c29 100644
--- a/ansible/roles/placement/tasks/check-containers.yml
+++ b/ansible/roles/placement/tasks/check-containers.yml
@@ -1,18 +1,3 @@
---
-- name: Check placement containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- environment: "{{ item.value.environment | default(omit) }}"
- pid_mode: "{{ item.value.pid_mode | default('') }}"
- ipc_mode: "{{ item.value.ipc_mode | default(omit) }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ placement_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/prometheus/tasks/check-containers.yml b/ansible/roles/prometheus/tasks/check-containers.yml
index 373e12847..b7e2f7c29 100644
--- a/ansible/roles/prometheus/tasks/check-containers.yml
+++ b/ansible/roles/prometheus/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check prometheus containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- pid_mode: "{{ item.value.pid_mode | default('') }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- environment: "{{ item.value.environment | default(omit) }}"
- with_dict: "{{ prometheus_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/rabbitmq/tasks/check-containers.yml b/ansible/roles/rabbitmq/tasks/check-containers.yml
index 5a6cc9e65..b7e2f7c29 100644
--- a/ansible/roles/rabbitmq/tasks/check-containers.yml
+++ b/ansible/roles/rabbitmq/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check rabbitmq containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- environment: "{{ item.value.environment }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ rabbitmq_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - Restart rabbitmq container
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/redis/tasks/check-containers.yml b/ansible/roles/redis/tasks/check-containers.yml
index 63f7b40bd..b7e2f7c29 100644
--- a/ansible/roles/redis/tasks/check-containers.yml
+++ b/ansible/roles/redis/tasks/check-containers.yml
@@ -1,15 +1,3 @@
---
-- name: Check redis containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- environment: "{{ item.environment | default(omit) }}"
- volumes: "{{ item.value.volumes }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ redis_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/service-check-containers/tasks/main.yml b/ansible/roles/service-check-containers/tasks/main.yml
new file mode 100644
index 000000000..a936238c1
--- /dev/null
+++ b/ansible/roles/service-check-containers/tasks/main.yml
@@ -0,0 +1,30 @@
+---
+# NOTE(r-krcek): List of arguments should follow argument_spec in
+# kolla_container module
+- name: "{{ kolla_role_name | default(project_name) }} | Check containers"
+ become: true
+ vars:
+ service_name: "{{ item.key }}"
+ service: "{{ item.value }}"
+ kolla_container:
+ action: "compare_container"
+ common_options: "{{ docker_common_options }}"
+ name: "{{ service.container_name }}"
+ image: "{{ service.image | default(omit) }}"
+ volumes: "{{ service.volumes | default(omit) }}"
+ dimensions: "{{ service.dimensions | default(omit) }}"
+ tmpfs: "{{ service.tmpfs | default(omit) }}"
+ volumes_from: "{{ service.volumes_from | default(omit) }}"
+ privileged: "{{ service.privileged | default(omit) }}"
+ cap_add: "{{ service.cap_add | default(omit) }}"
+ environment: "{{ service.environment | default(omit) }}"
+ healthcheck: "{{ service.healthcheck | default(omit) }}"
+ ipc_mode: "{{ service.ipc_mode | default(omit) }}"
+ pid_mode: "{{ service.pid_mode | default(omit) }}"
+ security_opt: "{{ service.security_opt | default(omit) }}"
+ labels: "{{ service.labels | default(omit) }}"
+ command: "{{ service.command | default(omit) }}"
+ cgroupns_mode: "{{ service.cgroupns_mode | default(omit) }}"
+ with_dict: "{{ lookup('vars', (kolla_role_name | default(project_name)) + '_services') | select_services_enabled_and_mapped_to_host }}"
+ notify:
+ - "Restart {{ service_name }} container"
diff --git a/ansible/roles/skyline/tasks/check-containers.yml b/ansible/roles/skyline/tasks/check-containers.yml
index bc59238e1..b7e2f7c29 100644
--- a/ansible/roles/skyline/tasks/check-containers.yml
+++ b/ansible/roles/skyline/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check skyline container
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ horizon.healthcheck | default(omit) }}"
- with_dict: "{{ skyline_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/tacker/tasks/check-containers.yml b/ansible/roles/tacker/tasks/check-containers.yml
index fb3ac5140..b7e2f7c29 100644
--- a/ansible/roles/tacker/tasks/check-containers.yml
+++ b/ansible/roles/tacker/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check tacker container
- become: true
- kolla_container:
- common_options: "{{ docker_common_options }}"
- action: "compare_container"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ tacker_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/telegraf/tasks/check-containers.yml b/ansible/roles/telegraf/tasks/check-containers.yml
index da1cfd849..b7e2f7c29 100644
--- a/ansible/roles/telegraf/tasks/check-containers.yml
+++ b/ansible/roles/telegraf/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check telegraf containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes }}"
- pid_mode: "{{ item.value.pid_mode }}"
- dimensions: "{{ item.value.dimensions }}"
- with_dict: "{{ telegraf_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/trove/tasks/check-containers.yml b/ansible/roles/trove/tasks/check-containers.yml
index d5beeba07..b7e2f7c29 100644
--- a/ansible/roles/trove/tasks/check-containers.yml
+++ b/ansible/roles/trove/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check trove containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ trove_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/venus/tasks/check-containers.yml b/ansible/roles/venus/tasks/check-containers.yml
index a44b1b03f..b7e2f7c29 100644
--- a/ansible/roles/venus/tasks/check-containers.yml
+++ b/ansible/roles/venus/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check venus containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ venus_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/watcher/tasks/check-containers.yml b/ansible/roles/watcher/tasks/check-containers.yml
index a7beab967..b7e2f7c29 100644
--- a/ansible/roles/watcher/tasks/check-containers.yml
+++ b/ansible/roles/watcher/tasks/check-containers.yml
@@ -1,14 +1,3 @@
---
-- name: Check watcher containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ watcher_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- - "Restart {{ item.key }} container"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/zun/handlers/main.yml b/ansible/roles/zun/handlers/main.yml
index 0a78a2434..0d21f4575 100644
--- a/ansible/roles/zun/handlers/main.yml
+++ b/ansible/roles/zun/handlers/main.yml
@@ -13,8 +13,6 @@
volumes: "{{ service.volumes | reject('equalto', '') | list }}"
dimensions: "{{ service.dimensions }}"
healthcheck: "{{ service.healthcheck | default(omit) }}"
- listen:
- - zun-api container changed
- name: Restart zun-wsproxy container
vars:
@@ -30,8 +28,6 @@
volumes: "{{ service.volumes | reject('equalto', '') | list }}"
dimensions: "{{ service.dimensions }}"
healthcheck: "{{ service.healthcheck | default(omit) }}"
- listen:
- - zun-wsproxy container changed
- name: Restart zun-compute container
vars:
@@ -47,8 +43,6 @@
volumes: "{{ service.volumes | reject('equalto', '') | list }}"
dimensions: "{{ service.dimensions }}"
healthcheck: "{{ service.healthcheck | default(omit) }}"
- listen:
- - zun-compute container changed
- name: Restart zun-cni-daemon container
vars:
@@ -64,8 +58,6 @@
volumes: "{{ service.volumes | reject('equalto', '') | list }}"
dimensions: "{{ service.dimensions }}"
healthcheck: "{{ service.healthcheck | default(omit) }}"
- listen:
- - zun-cni-daemon container changed
- name: Copy loopback binary from zun-cni-daemon container to host
vars:
@@ -74,7 +66,6 @@
become: true
command: "{{ kolla_container_engine }} cp {{ service.container_name }}:/opt/loopback /opt/cni/bin/"
# NOTE(yoctozepto): it would be cleaner to listen only on image change
- # but there is no such mechanism (yet) and container change should be
- # good enough (better than including config change triggers)
+ # but there is no such mechanism (yet)
listen:
- - zun-cni-daemon container changed
+ - Restart zun-cni-daemon container
diff --git a/ansible/roles/zun/tasks/check-containers.yml b/ansible/roles/zun/tasks/check-containers.yml
index 2f680d12f..b7e2f7c29 100644
--- a/ansible/roles/zun/tasks/check-containers.yml
+++ b/ansible/roles/zun/tasks/check-containers.yml
@@ -1,18 +1,3 @@
---
-- name: Check zun containers
- become: true
- kolla_container:
- action: "compare_container"
- common_options: "{{ docker_common_options }}"
- name: "{{ item.value.container_name }}"
- image: "{{ item.value.image }}"
- privileged: "{{ item.value.privileged | default(False) }}"
- volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
- dimensions: "{{ item.value.dimensions }}"
- healthcheck: "{{ item.value.healthcheck | default(omit) }}"
- with_dict: "{{ zun_services | select_services_enabled_and_mapped_to_host }}"
- notify:
- # NOTE(yoctozepto): Zun differs from other projects because we want
- # to differentiate between config change and container property
- # change
- - "{{ item.key }} container changed"
+- import_role:
+ name: service-check-containers
diff --git a/ansible/roles/zun/tasks/external_ceph.yml b/ansible/roles/zun/tasks/external_ceph.yml
index 324f28bb4..e57410b6b 100644
--- a/ansible/roles/zun/tasks/external_ceph.yml
+++ b/ansible/roles/zun/tasks/external_ceph.yml
@@ -5,8 +5,6 @@
dest: "{{ node_config_directory }}/zun-compute/"
mode: "0660"
become: true
- notify:
- - Restart zun-compute container
- name: Copy over Ceph keyring files for zun-compute
copy:
@@ -15,8 +13,6 @@
mode: "0660"
become: true
when: external_ceph_cephx_enabled | bool
- notify:
- - Restart zun-compute container
- name: Ensuring config directory has correct owner and permission
become: true
diff --git a/releasenotes/notes/refactor-container-check-27624449c47f5e6e.yaml b/releasenotes/notes/refactor-container-check-27624449c47f5e6e.yaml
new file mode 100644
index 000000000..14796d8f9
--- /dev/null
+++ b/releasenotes/notes/refactor-container-check-27624449c47f5e6e.yaml
@@ -0,0 +1,23 @@
+---
+features:
+ - |
+ Refactor services' check-containers and optimise
+
+ This might fix some hidden bugs where the check tasks forgot to
+ include params important for the service.
+
+ We also get a nice optimisation by using a filtered loop instead
+ of task skipping per service with 'when'. As proven in
+ https://review.opendev.org/c/openstack/kolla-ansible/+/914997
+
+ This refactoring allows for further optimisation and
+ fixing work to proceed with much less hassle. Including getting
+ rid of many notify statements as the restarts are now safely handled
+ by check-containers. Some notifies had to stay, because of special
+ edge cases eg. in rolling upgrades and loadbalancer config.
+
+ One downside is we remove the little optimisation for Zun that
+ ignored config change for copying loopback but this is an
+ acceptable tradeoff considering the benefits above.
+
+ `Blueprint performance-improvements <https://blueprints.launchpad.net/kolla-ansible/+spec/performance-improvements>`__