From 6a737b19686c821c32778bb847c6548d51eef002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Piliszek?= Date: Fri, 12 Jul 2019 17:15:42 +0200 Subject: [PATCH] Fix handling of docker restart policy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Docker has no restart policy named 'never'. It has 'no'. This has bitten us already (see [1]) and might bite us again whenever we want to change the restart policy to 'no'. This patch makes our docker integration honor all valid restart policies and only valid restart policies. All relevant docker restart policy usages are patched as well. I added some FIXMEs around which are relevant to kolla-ansible docker integration. They are not fixed in here to not alter behavior. [1] https://review.opendev.org/667363 Change-Id: I1c9764fb9bbda08a71186091aced67433ad4e3d6 Signed-off-by: Radosław Piliszek --- ansible/group_vars/all.yml | 4 +-- ansible/library/kolla_docker.py | 28 +++++++++++-------- .../roles/aodh/tasks/bootstrap_service.yml | 2 +- .../barbican/tasks/bootstrap_service.yml | 2 +- .../roles/blazar/tasks/bootstrap_service.yml | 2 +- .../ceilometer/tasks/bootstrap_service.yml | 2 +- ansible/roles/ceph/tasks/bootstrap_osds.yml | 4 +-- ansible/roles/ceph/tasks/generate_cluster.yml | 2 +- .../roles/cinder/tasks/bootstrap_service.yml | 2 +- ansible/roles/cinder/tasks/upgrade.yml | 2 +- .../cloudkitty/tasks/bootstrap_service.yml | 2 +- .../congress/tasks/bootstrap_service.yml | 2 +- .../roles/cyborg/tasks/bootstrap_service.yml | 2 +- .../designate/tasks/bootstrap_service.yml | 2 +- .../roles/freezer/tasks/bootstrap_service.yml | 2 +- .../roles/glance/tasks/bootstrap_service.yml | 2 +- .../roles/glance/tasks/rolling_upgrade.yml | 6 ++-- .../roles/gnocchi/tasks/bootstrap_service.yml | 2 +- .../roles/heat/tasks/bootstrap_service.yml | 2 +- .../roles/horizon/tasks/bootstrap_service.yml | 2 +- ansible/roles/ironic/tasks/bootstrap.yml | 2 +- .../roles/ironic/tasks/bootstrap_service.yml | 4 +-- .../roles/ironic/tasks/rolling_upgrade.yml | 2 +- .../roles/karbor/tasks/bootstrap_service.yml | 2 +- ansible/roles/keystone/handlers/main.yml | 4 +-- .../keystone/tasks/bootstrap_service.yml | 2 +- .../roles/magnum/tasks/bootstrap_service.yml | 2 +- .../roles/manila/tasks/bootstrap_service.yml | 2 +- ansible/roles/mariadb/handlers/main.yml | 6 ++-- ansible/roles/mariadb/tasks/backup.yml | 2 +- .../roles/mariadb/tasks/bootstrap_cluster.yml | 2 +- .../roles/mariadb/tasks/recover_cluster.yml | 6 ++-- .../roles/mistral/tasks/bootstrap_service.yml | 2 +- .../roles/monasca/tasks/bootstrap_service.yml | 2 +- ansible/roles/mongodb/tasks/bootstrap.yml | 2 +- .../roles/murano/tasks/bootstrap_service.yml | 2 +- .../roles/neutron/tasks/bootstrap_service.yml | 4 +-- .../roles/neutron/tasks/rolling_upgrade.yml | 4 +-- .../roles/nova/tasks/bootstrap_service.yml | 2 +- ansible/roles/nova/tasks/create_cells.yml | 8 +++--- ansible/roles/nova/tasks/rolling_upgrade.yml | 2 +- .../roles/octavia/tasks/bootstrap_service.yml | 2 +- .../roles/panko/tasks/bootstrap_service.yml | 2 +- .../placement/tasks/bootstrap_service.yml | 2 +- ansible/roles/placement/tasks/upgrade.yml | 2 +- .../roles/qinling/tasks/bootstrap_service.yml | 2 +- ansible/roles/rabbitmq/tasks/bootstrap.yml | 2 +- .../roles/rally/tasks/bootstrap_service.yml | 2 +- .../roles/sahara/tasks/bootstrap_service.yml | 2 +- .../searchlight/tasks/bootstrap_service.yml | 2 +- .../roles/senlin/tasks/bootstrap_service.yml | 2 +- .../roles/solum/tasks/bootstrap_service.yml | 2 +- .../roles/tacker/tasks/bootstrap_service.yml | 2 +- .../roles/trove/tasks/bootstrap_service.yml | 2 +- .../roles/vitrage/tasks/bootstrap_service.yml | 2 +- .../roles/watcher/tasks/bootstrap_service.yml | 2 +- ansible/roles/zun/tasks/bootstrap_service.yml | 2 +- tests/templates/globals-default.j2 | 2 +- tests/test_kolla_docker.py | 3 +- 59 files changed, 91 insertions(+), 84 deletions(-) diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 9b5922f3e6..92f804c07d 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -100,10 +100,10 @@ docker_runtime_directory: "" docker_log_max_file: 5 docker_log_max_size: 50m -# Valid options are [ never, on-failure, always, unless-stopped ] +# Valid options are [ no, on-failure, always, unless-stopped ] docker_restart_policy: "unless-stopped" -# '0' means unlimited retries +# '0' means unlimited retries (applies only to 'on-failure' policy) docker_restart_policy_retry: "10" # Common options used throughout Docker diff --git a/ansible/library/kolla_docker.py b/ansible/library/kolla_docker.py index 492a0b1dc7..dee7a0df2b 100644 --- a/ansible/library/kolla_docker.py +++ b/ansible/library/kolla_docker.py @@ -14,6 +14,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +# FIXME(yoctozepto): this module does *not* validate "common_options" which are +# a hacky way to seed most usages of kolla_docker in kolla-ansible ansible +# playbooks - caution has to be exerted when setting "common_options" + +# FIXME(yoctozepto): restart_policy is *not* checked in the container + import json import os import shlex @@ -156,17 +162,17 @@ options: type: bool restart_policy: description: - - Determine what docker does when the container exits + - When docker restarts the container (does not affect checks) required: False type: str choices: - - never + - no - on-failure - always - unless-stopped restart_retries: description: - - How many times to attempt a restart if restart_policy is set + - How many times to attempt a restart if 'on-failure' policy is set type: int default: 10 volumes: @@ -675,16 +681,17 @@ class DockerWorker(object): dimensions = self.parse_dimensions(dimensions) options.update(dimensions) - if self.params.get('restart_policy') in ['on-failure', - 'always', - 'unless-stopped']: - policy = {'Name': self.params.get('restart_policy')} + restart_policy = self.params.get('restart_policy') + + if restart_policy is not None: + restart_policy = {'Name': restart_policy} # NOTE(Jeffrey4l): MaximumRetryCount is only needed for on-failure # policy - if self.params.get('restart_policy') == 'on-failure': + if restart_policy['Name'] == 'on-failure': retries = self.params.get('restart_retries') - policy['MaximumRetryCount'] = retries - options['restart_policy'] = policy + if retries is not None: + restart_policy['MaximumRetryCount'] = retries + options['restart_policy'] = restart_policy if binds: options['binds'] = binds @@ -917,7 +924,6 @@ def generate_module(): remove_on_exit=dict(required=False, type='bool', default=True), restart_policy=dict(required=False, type='str', choices=[ 'no', - 'never', 'on-failure', 'always', 'unless-stopped']), diff --git a/ansible/roles/aodh/tasks/bootstrap_service.yml b/ansible/roles/aodh/tasks/bootstrap_service.yml index ce099f5f20..1edd8581fd 100644 --- a/ansible/roles/aodh/tasks/bootstrap_service.yml +++ b/ansible/roles/aodh/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_aodh" - restart_policy: "never" + restart_policy: no volumes: "{{ aodh_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[aodh_api.group][0] }}" diff --git a/ansible/roles/barbican/tasks/bootstrap_service.yml b/ansible/roles/barbican/tasks/bootstrap_service.yml index 0410f975f2..9b4618a3c0 100644 --- a/ansible/roles/barbican/tasks/bootstrap_service.yml +++ b/ansible/roles/barbican/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_barbican" - restart_policy: "never" + restart_policy: no volumes: "{{ barbican_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[barbican_api.group][0] }}" diff --git a/ansible/roles/blazar/tasks/bootstrap_service.yml b/ansible/roles/blazar/tasks/bootstrap_service.yml index b59b8aed19..71fb97a560 100644 --- a/ansible/roles/blazar/tasks/bootstrap_service.yml +++ b/ansible/roles/blazar/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_blazar" - restart_policy: "never" + restart_policy: no volumes: "{{ blazar_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[blazar_api.group][0] }}" diff --git a/ansible/roles/ceilometer/tasks/bootstrap_service.yml b/ansible/roles/ceilometer/tasks/bootstrap_service.yml index 3860060eab..617df689cb 100644 --- a/ansible/roles/ceilometer/tasks/bootstrap_service.yml +++ b/ansible/roles/ceilometer/tasks/bootstrap_service.yml @@ -15,7 +15,7 @@ labels: BOOTSTRAP: name: "bootstrap_ceilometer" - restart_policy: "never" + restart_policy: no volumes: "{{ ceilometer_notification.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[ceilometer_notification.group][0] }}" diff --git a/ansible/roles/ceph/tasks/bootstrap_osds.yml b/ansible/roles/ceph/tasks/bootstrap_osds.yml index aef33395e7..471e547222 100644 --- a/ansible/roles/ceph/tasks/bootstrap_osds.yml +++ b/ansible/roles/ceph/tasks/bootstrap_osds.yml @@ -78,7 +78,7 @@ BOOTSTRAP: name: "bootstrap_osd_{{ item.0 }}" privileged: True - restart_policy: "never" + restart_policy: no volumes: - "{{ node_config_directory }}/ceph-osd/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" @@ -139,7 +139,7 @@ BOOTSTRAP: name: "bootstrap_osd_cache_{{ item.0 }}" privileged: True - restart_policy: "never" + restart_policy: no volumes: - "{{ node_config_directory }}/ceph-osd/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" diff --git a/ansible/roles/ceph/tasks/generate_cluster.yml b/ansible/roles/ceph/tasks/generate_cluster.yml index 121e36aaa4..fd23756ec8 100644 --- a/ansible/roles/ceph/tasks/generate_cluster.yml +++ b/ansible/roles/ceph/tasks/generate_cluster.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_ceph_mon" - restart_policy: "never" + restart_policy: no volumes: - "{{ node_config_directory }}/ceph-mon/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" diff --git a/ansible/roles/cinder/tasks/bootstrap_service.yml b/ansible/roles/cinder/tasks/bootstrap_service.yml index c45ab06476..e97e579752 100644 --- a/ansible/roles/cinder/tasks/bootstrap_service.yml +++ b/ansible/roles/cinder/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_cinder" - restart_policy: "never" + restart_policy: no volumes: "{{ cinder_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[cinder_api.group][0] }}" diff --git a/ansible/roles/cinder/tasks/upgrade.yml b/ansible/roles/cinder/tasks/upgrade.yml index 79865c7774..7f267399c3 100644 --- a/ansible/roles/cinder/tasks/upgrade.yml +++ b/ansible/roles/cinder/tasks/upgrade.yml @@ -27,7 +27,7 @@ labels: BOOTSTRAP: name: "bootstrap_cinder" - restart_policy: "never" + restart_policy: no volumes: "{{ cinder_api.volumes }}" run_once: True delegate_to: "{{ groups[cinder_api.group][0] }}" diff --git a/ansible/roles/cloudkitty/tasks/bootstrap_service.yml b/ansible/roles/cloudkitty/tasks/bootstrap_service.yml index 35305c7d13..19ea71d187 100644 --- a/ansible/roles/cloudkitty/tasks/bootstrap_service.yml +++ b/ansible/roles/cloudkitty/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_cloudkitty" - restart_policy: "never" + restart_policy: no volumes: "{{ cloudkitty_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[cloudkitty_api.group][0] }}" diff --git a/ansible/roles/congress/tasks/bootstrap_service.yml b/ansible/roles/congress/tasks/bootstrap_service.yml index 85fcb131c4..61f001d4b7 100644 --- a/ansible/roles/congress/tasks/bootstrap_service.yml +++ b/ansible/roles/congress/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_congress" - restart_policy: "never" + restart_policy: no volumes: "{{ congress_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[congress_api.group][0] }}" diff --git a/ansible/roles/cyborg/tasks/bootstrap_service.yml b/ansible/roles/cyborg/tasks/bootstrap_service.yml index 164aeae2d7..bbba4b8510 100644 --- a/ansible/roles/cyborg/tasks/bootstrap_service.yml +++ b/ansible/roles/cyborg/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_cyborg" - restart_policy: "never" + restart_policy: no volumes: "{{ cyborg_api.volumes }}" run_once: True delegate_to: "{{ groups[cyborg_api.group][0] }}" diff --git a/ansible/roles/designate/tasks/bootstrap_service.yml b/ansible/roles/designate/tasks/bootstrap_service.yml index b7928f91d9..7c82e95477 100644 --- a/ansible/roles/designate/tasks/bootstrap_service.yml +++ b/ansible/roles/designate/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_designate" - restart_policy: "never" + restart_policy: no volumes: "{{ designate_central.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[designate_central.group][0] }}" diff --git a/ansible/roles/freezer/tasks/bootstrap_service.yml b/ansible/roles/freezer/tasks/bootstrap_service.yml index d926c35c32..a70b29454e 100644 --- a/ansible/roles/freezer/tasks/bootstrap_service.yml +++ b/ansible/roles/freezer/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_freezer" - restart_policy: "never" + restart_policy: no volumes: "{{ freezer_api.volumes | reject('equalto', '') | list }}" run_once: True delegate_to: "{{ groups[freezer_api.group][0] }}" diff --git a/ansible/roles/glance/tasks/bootstrap_service.yml b/ansible/roles/glance/tasks/bootstrap_service.yml index f182d7d689..ca2222b70c 100644 --- a/ansible/roles/glance/tasks/bootstrap_service.yml +++ b/ansible/roles/glance/tasks/bootstrap_service.yml @@ -32,7 +32,7 @@ labels: BOOTSTRAP: name: "bootstrap_glance" - restart_policy: "never" + restart_policy: no volumes: "{{ glance_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[glance_api.group][0] }}" diff --git a/ansible/roles/glance/tasks/rolling_upgrade.yml b/ansible/roles/glance/tasks/rolling_upgrade.yml index c971507faa..1884b73246 100644 --- a/ansible/roles/glance/tasks/rolling_upgrade.yml +++ b/ansible/roles/glance/tasks/rolling_upgrade.yml @@ -43,7 +43,7 @@ labels: BOOTSTRAP: name: "bootstrap_glance" - restart_policy: "never" + restart_policy: no volumes: "{{ glance_api.volumes }}" run_once: True delegate_to: "{{ groups[glance_api.group][0] }}" @@ -64,7 +64,7 @@ labels: BOOTSTRAP: name: "bootstrap_glance" - restart_policy: "never" + restart_policy: no volumes: "{{ glance_api.volumes }}" run_once: True delegate_to: "{{ groups[glance_api.group][0] }}" @@ -94,7 +94,7 @@ labels: BOOTSTRAP: name: "bootstrap_glance" - restart_policy: "never" + restart_policy: no volumes: "{{ glance_api.volumes }}" run_once: True delegate_to: "{{ groups[glance_api.group][0] }}" diff --git a/ansible/roles/gnocchi/tasks/bootstrap_service.yml b/ansible/roles/gnocchi/tasks/bootstrap_service.yml index 0b0c42e366..0992575a59 100644 --- a/ansible/roles/gnocchi/tasks/bootstrap_service.yml +++ b/ansible/roles/gnocchi/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_gnocchi" - restart_policy: "never" + restart_policy: no volumes: "{{ gnocchi_api.volumes }}" run_once: True delegate_to: "{{ groups[gnocchi_api.group][0] }}" diff --git a/ansible/roles/heat/tasks/bootstrap_service.yml b/ansible/roles/heat/tasks/bootstrap_service.yml index 9d2ae0b044..8f6a757380 100644 --- a/ansible/roles/heat/tasks/bootstrap_service.yml +++ b/ansible/roles/heat/tasks/bootstrap_service.yml @@ -22,7 +22,7 @@ labels: BOOTSTRAP: name: "bootstrap_heat" - restart_policy: "never" + restart_policy: no volumes: "{{ heat_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[heat_api.group][0] }}" diff --git a/ansible/roles/horizon/tasks/bootstrap_service.yml b/ansible/roles/horizon/tasks/bootstrap_service.yml index 4ad45a8d65..213d71fab1 100644 --- a/ansible/roles/horizon/tasks/bootstrap_service.yml +++ b/ansible/roles/horizon/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_horizon" - restart_policy: "never" + restart_policy: no volumes: "{{ horizon.volumes }}" run_once: True delegate_to: "{{ groups[horizon.group][0] }}" diff --git a/ansible/roles/ironic/tasks/bootstrap.yml b/ansible/roles/ironic/tasks/bootstrap.yml index 3ed859d657..cb4511a106 100644 --- a/ansible/roles/ironic/tasks/bootstrap.yml +++ b/ansible/roles/ironic/tasks/bootstrap.yml @@ -68,6 +68,6 @@ labels: BOOTSTRAP: name: "bootstrap_ironic_pxe" - restart_policy: "never" + restart_policy: no volumes: "{{ ironic_pxe.volumes }}" when: inventory_hostname in groups[ironic_pxe.group] diff --git a/ansible/roles/ironic/tasks/bootstrap_service.yml b/ansible/roles/ironic/tasks/bootstrap_service.yml index cbb27021ca..35739a714c 100644 --- a/ansible/roles/ironic/tasks/bootstrap_service.yml +++ b/ansible/roles/ironic/tasks/bootstrap_service.yml @@ -18,7 +18,7 @@ labels: BOOTSTRAP: name: "bootstrap_ironic" - restart_policy: "never" + restart_policy: no volumes: "{{ ironic_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[ironic_api.group][0] }}" @@ -39,7 +39,7 @@ labels: BOOTSTRAP: name: "bootstrap_ironic_inspector" - restart_policy: "never" + restart_policy: no volumes: "{{ ironic_inspector.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[ironic_inspector.group][0] }}" diff --git a/ansible/roles/ironic/tasks/rolling_upgrade.yml b/ansible/roles/ironic/tasks/rolling_upgrade.yml index 2b502fec1b..d51d506ffe 100644 --- a/ansible/roles/ironic/tasks/rolling_upgrade.yml +++ b/ansible/roles/ironic/tasks/rolling_upgrade.yml @@ -36,7 +36,7 @@ labels: BOOTSTRAP: name: "bootstrap_ironic" - restart_policy: "never" + restart_policy: no volumes: "{{ ironic_api.volumes }}" run_once: True delegate_to: "{{ groups[ironic_api.group][0] }}" diff --git a/ansible/roles/karbor/tasks/bootstrap_service.yml b/ansible/roles/karbor/tasks/bootstrap_service.yml index 0d272eb8e7..806f8a52ea 100644 --- a/ansible/roles/karbor/tasks/bootstrap_service.yml +++ b/ansible/roles/karbor/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_karbor" - restart_policy: "never" + restart_policy: no volumes: "{{ karbor_api.volumes }}" run_once: True delegate_to: "{{ groups[karbor_api.group][0] }}" diff --git a/ansible/roles/keystone/handlers/main.yml b/ansible/roles/keystone/handlers/main.yml index fa6b30e0c1..b6ddfaf804 100644 --- a/ansible/roles/keystone/handlers/main.yml +++ b/ansible/roles/keystone/handlers/main.yml @@ -18,7 +18,7 @@ labels: KOLLA_UPGRADE: name: "init_upgrade_database" - restart_policy: "never" + restart_policy: no volumes: "{{ service.volumes|reject('equalto', '')|list }}" dimensions: "{{ service.dimensions }}" run_once: True @@ -87,7 +87,7 @@ labels: KOLLA_UPGRADE: name: "finish_upgrade_database" - restart_policy: "never" + restart_policy: no volumes: "{{ service.volumes|reject('equalto', '')|list }}" dimensions: "{{ service.dimensions }}" run_once: True diff --git a/ansible/roles/keystone/tasks/bootstrap_service.yml b/ansible/roles/keystone/tasks/bootstrap_service.yml index b499a69161..0a296fb2b8 100644 --- a/ansible/roles/keystone/tasks/bootstrap_service.yml +++ b/ansible/roles/keystone/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_keystone" - restart_policy: "never" + restart_policy: no volumes: "{{ keystone.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups['keystone'][0] }}" diff --git a/ansible/roles/magnum/tasks/bootstrap_service.yml b/ansible/roles/magnum/tasks/bootstrap_service.yml index 35bca46386..40e3272301 100644 --- a/ansible/roles/magnum/tasks/bootstrap_service.yml +++ b/ansible/roles/magnum/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_magnum" - restart_policy: "never" + restart_policy: no volumes: "{{ magnum_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[magnum_api.group][0] }}" diff --git a/ansible/roles/manila/tasks/bootstrap_service.yml b/ansible/roles/manila/tasks/bootstrap_service.yml index 29cac2ac12..0371bf06ab 100644 --- a/ansible/roles/manila/tasks/bootstrap_service.yml +++ b/ansible/roles/manila/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_manila" - restart_policy: "never" + restart_policy: no volumes: "{{ manila_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[manila_api.group][0] }}" diff --git a/ansible/roles/mariadb/handlers/main.yml b/ansible/roles/mariadb/handlers/main.yml index 76ff2757cf..7ac1f0f6ba 100644 --- a/ansible/roles/mariadb/handlers/main.yml +++ b/ansible/roles/mariadb/handlers/main.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "{{ service.container_name }}" - restart_policy: "never" + restart_policy: no volumes: "{{ service.volumes }}" dimensions: "{{ service.dimensions }}" when: @@ -117,7 +117,7 @@ labels: UPGRADE: name: "upgrade_mariadb" - restart_policy: "never" + restart_policy: no volumes: "{{ service.volumes }}" no_log: true when: @@ -183,7 +183,7 @@ labels: UPGRADE: name: "upgrade_mariadb" - restart_policy: "never" + restart_policy: no volumes: "{{ service.volumes }}" no_log: true when: diff --git a/ansible/roles/mariadb/tasks/backup.yml b/ansible/roles/mariadb/tasks/backup.yml index f6ad91c34c..1895b61cac 100644 --- a/ansible/roles/mariadb/tasks/backup.yml +++ b/ansible/roles/mariadb/tasks/backup.yml @@ -6,7 +6,7 @@ common_options: "{{ docker_common_options }}" image: "{{ xtrabackup_image_full }}" name: "xtrabackup" - restart_policy: "never" + restart_policy: no remove_on_exit: True environment: BACKUP_TYPE: "{{ mariadb_backup_type }}" diff --git a/ansible/roles/mariadb/tasks/bootstrap_cluster.yml b/ansible/roles/mariadb/tasks/bootstrap_cluster.yml index aeb8bb7fa8..e843fcc0d8 100644 --- a/ansible/roles/mariadb/tasks/bootstrap_cluster.yml +++ b/ansible/roles/mariadb/tasks/bootstrap_cluster.yml @@ -17,7 +17,7 @@ labels: BOOTSTRAP: name: "bootstrap_mariadb" - restart_policy: "never" + restart_policy: no volumes: "{{ service.volumes }}" notify: - Bootstrap MariaDB cluster diff --git a/ansible/roles/mariadb/tasks/recover_cluster.yml b/ansible/roles/mariadb/tasks/recover_cluster.yml index 1dbc3a5f7c..c00e8552e3 100644 --- a/ansible/roles/mariadb/tasks/recover_cluster.yml +++ b/ansible/roles/mariadb/tasks/recover_cluster.yml @@ -41,7 +41,7 @@ labels: BOOTSTRAP: name: mariadb_wsrep_recovery - restart_policy: "never" + restart_policy: no volumes: "{{ mariadb_service.volumes }}" - name: Copying MariaDB log file to /tmp @@ -135,7 +135,7 @@ labels: BOOTSTRAP: name: "{{ mariadb_service.container_name }}" - restart_policy: "never" + restart_policy: no volumes: "{{ mariadb_service.volumes }}" when: - bootstrap_host is defined @@ -193,7 +193,7 @@ labels: BOOTSTRAP: name: "{{ mariadb_service.container_name }}" - restart_policy: "never" + restart_policy: no volumes: "{{ mariadb_service.volumes }}" when: - bootstrap_host is defined diff --git a/ansible/roles/mistral/tasks/bootstrap_service.yml b/ansible/roles/mistral/tasks/bootstrap_service.yml index 83f148c29b..dc001d1dc1 100644 --- a/ansible/roles/mistral/tasks/bootstrap_service.yml +++ b/ansible/roles/mistral/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_mistral" - restart_policy: "never" + restart_policy: no volumes: "{{ mistral_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[mistral_api.group][0] }}" diff --git a/ansible/roles/monasca/tasks/bootstrap_service.yml b/ansible/roles/monasca/tasks/bootstrap_service.yml index a2b53cc683..f1826c5a0b 100644 --- a/ansible/roles/monasca/tasks/bootstrap_service.yml +++ b/ansible/roles/monasca/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_monasca" - restart_policy: "never" + restart_policy: no volumes: "{{ monasca_api.volumes }}" run_once: True delegate_to: "{{ groups[monasca_api.group][0] }}" diff --git a/ansible/roles/mongodb/tasks/bootstrap.yml b/ansible/roles/mongodb/tasks/bootstrap.yml index 9eeab0aaa6..c899eb07c6 100644 --- a/ansible/roles/mongodb/tasks/bootstrap.yml +++ b/ansible/roles/mongodb/tasks/bootstrap.yml @@ -10,7 +10,7 @@ KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" image: "{{ mongodb_image_full }}" name: "bootstrap_mongodb" - restart_policy: "never" + restart_policy: no volumes: - "{{ node_config_directory }}/mongodb/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" diff --git a/ansible/roles/murano/tasks/bootstrap_service.yml b/ansible/roles/murano/tasks/bootstrap_service.yml index 8e7d7ea810..c1acf18ee2 100644 --- a/ansible/roles/murano/tasks/bootstrap_service.yml +++ b/ansible/roles/murano/tasks/bootstrap_service.yml @@ -12,7 +12,7 @@ labels: BOOTSTRAP: name: "bootstrap_murano" - restart_policy: "never" + restart_policy: no volumes: - "{{ node_config_directory }}/murano-api/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" diff --git a/ansible/roles/neutron/tasks/bootstrap_service.yml b/ansible/roles/neutron/tasks/bootstrap_service.yml index 9afb9c52c9..62c9e6374a 100644 --- a/ansible/roles/neutron/tasks/bootstrap_service.yml +++ b/ansible/roles/neutron/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_neutron" - restart_policy: "never" + restart_policy: no volumes: "{{ neutron_server.volumes }}" run_once: True delegate_to: "{{ groups[neutron_server.group][0] }}" @@ -36,7 +36,7 @@ labels: BOOTSTRAP: name: "bootstrap_neutron_sfc" - restart_policy: "never" + restart_policy: no volumes: "{{ neutron_server.volumes }}" when: - enable_neutron_sfc | bool diff --git a/ansible/roles/neutron/tasks/rolling_upgrade.yml b/ansible/roles/neutron/tasks/rolling_upgrade.yml index 91a6688cff..b1dc000c1e 100644 --- a/ansible/roles/neutron/tasks/rolling_upgrade.yml +++ b/ansible/roles/neutron/tasks/rolling_upgrade.yml @@ -23,7 +23,7 @@ labels: UPGRADE: name: "bootstrap_neutron" - restart_policy: "never" + restart_policy: no volumes: "{{ neutron_server.volumes }}" run_once: True delegate_to: "{{ groups['neutron-server'][0] }}" @@ -79,7 +79,7 @@ labels: UPGRADE: name: "bootstrap_neutron" - restart_policy: "never" + restart_policy: no volumes: "{{ neutron_server.volumes }}" run_once: True delegate_to: "{{ groups['neutron-server'][0] }}" diff --git a/ansible/roles/nova/tasks/bootstrap_service.yml b/ansible/roles/nova/tasks/bootstrap_service.yml index eed9d2cbea..295bb2ded5 100644 --- a/ansible/roles/nova/tasks/bootstrap_service.yml +++ b/ansible/roles/nova/tasks/bootstrap_service.yml @@ -18,7 +18,7 @@ labels: BOOTSTRAP: name: "bootstrap_nova" - restart_policy: "never" + restart_policy: no volumes: "{{ nova_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[nova_api.group][0] }}" diff --git a/ansible/roles/nova/tasks/create_cells.yml b/ansible/roles/nova/tasks/create_cells.yml index f430124a6c..c46e2b4226 100644 --- a/ansible/roles/nova/tasks/create_cells.yml +++ b/ansible/roles/nova/tasks/create_cells.yml @@ -12,7 +12,7 @@ labels: BOOTSTRAP: name: "create_cell0_nova" - restart_policy: "never" + restart_policy: no volumes: "{{ nova_api.volumes|reject('equalto', '')|list }}" register: map_cell0 changed_when: @@ -39,7 +39,7 @@ labels: BOOTSTRAP: name: "list_cells_nova" - restart_policy: "never" + restart_policy: no volumes: "{{ nova_api.volumes|reject('equalto', '')|list }}" register: existing_cells_list changed_when: false @@ -77,7 +77,7 @@ labels: BOOTSTRAP: name: "create_cell_nova" - restart_policy: "never" + restart_policy: no volumes: "{{ nova_api.volumes|reject('equalto', '')|list }}" register: base_cell changed_when: @@ -103,7 +103,7 @@ labels: BOOTSTRAP: name: "create_cell_nova" - restart_policy: "never" + restart_policy: no volumes: "{{ nova_api.volumes|reject('equalto', '')|list }}" register: base_cell changed_when: diff --git a/ansible/roles/nova/tasks/rolling_upgrade.yml b/ansible/roles/nova/tasks/rolling_upgrade.yml index 962321975b..d1f1daeb93 100644 --- a/ansible/roles/nova/tasks/rolling_upgrade.yml +++ b/ansible/roles/nova/tasks/rolling_upgrade.yml @@ -40,7 +40,7 @@ labels: BOOTSTRAP: name: "bootstrap_nova" - restart_policy: "never" + restart_policy: no volumes: "{{ nova_api.volumes }}" run_once: True delegate_to: "{{ groups[nova_api.group][0] }}" diff --git a/ansible/roles/octavia/tasks/bootstrap_service.yml b/ansible/roles/octavia/tasks/bootstrap_service.yml index 1c752cb701..af6d2fd6be 100644 --- a/ansible/roles/octavia/tasks/bootstrap_service.yml +++ b/ansible/roles/octavia/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_octavia" - restart_policy: "never" + restart_policy: no volumes: "{{ octavia_api.volumes }}" run_once: True delegate_to: "{{ groups[octavia_api.group][0] }}" diff --git a/ansible/roles/panko/tasks/bootstrap_service.yml b/ansible/roles/panko/tasks/bootstrap_service.yml index e6e9dd3b2f..e5c690841b 100644 --- a/ansible/roles/panko/tasks/bootstrap_service.yml +++ b/ansible/roles/panko/tasks/bootstrap_service.yml @@ -15,7 +15,7 @@ labels: BOOTSTRAP: name: "bootstrap_panko" - restart_policy: "never" + restart_policy: no volumes: "{{ panko_api.volumes }}" run_once: True delegate_to: "{{ groups[panko_api.group][0] }}" diff --git a/ansible/roles/placement/tasks/bootstrap_service.yml b/ansible/roles/placement/tasks/bootstrap_service.yml index 7d7b8e7b4f..480ff066a7 100644 --- a/ansible/roles/placement/tasks/bootstrap_service.yml +++ b/ansible/roles/placement/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_placement" - restart_policy: "never" + restart_policy: no volumes: "{{ placement_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[placement_api.group][0] }}" diff --git a/ansible/roles/placement/tasks/upgrade.yml b/ansible/roles/placement/tasks/upgrade.yml index 96f61d7229..c5c755453e 100644 --- a/ansible/roles/placement/tasks/upgrade.yml +++ b/ansible/roles/placement/tasks/upgrade.yml @@ -28,7 +28,7 @@ labels: BOOTSTRAP: name: "bootstrap_placement" - restart_policy: "never" + restart_policy: no volumes: "{{ placement_api.volumes }}" run_once: True delegate_to: "{{ groups[placement_api.group][0] }}" diff --git a/ansible/roles/qinling/tasks/bootstrap_service.yml b/ansible/roles/qinling/tasks/bootstrap_service.yml index 7428401cd5..6c95ebd5a9 100644 --- a/ansible/roles/qinling/tasks/bootstrap_service.yml +++ b/ansible/roles/qinling/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_qinling" - restart_policy: "never" + restart_policy: no volumes: "{{ qinling_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[qinling_api.group][0] }}" diff --git a/ansible/roles/rabbitmq/tasks/bootstrap.yml b/ansible/roles/rabbitmq/tasks/bootstrap.yml index 2556d278e4..13e0933970 100644 --- a/ansible/roles/rabbitmq/tasks/bootstrap.yml +++ b/ansible/roles/rabbitmq/tasks/bootstrap.yml @@ -21,6 +21,6 @@ labels: BOOTSTRAP: name: "{{ project_name }}_bootstrap" - restart_policy: "never" + restart_policy: no volumes: "{{ service.volumes }}" when: rabbitmq_volume is changed diff --git a/ansible/roles/rally/tasks/bootstrap_service.yml b/ansible/roles/rally/tasks/bootstrap_service.yml index c174ecef68..86da382c5f 100644 --- a/ansible/roles/rally/tasks/bootstrap_service.yml +++ b/ansible/roles/rally/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_rally" - restart_policy: "never" + restart_policy: no volumes: "{{ rally.volumes }}" run_once: True delegate_to: "{{ groups[rally.group][0] }}" diff --git a/ansible/roles/sahara/tasks/bootstrap_service.yml b/ansible/roles/sahara/tasks/bootstrap_service.yml index 2a60cf6695..9a9a8395fd 100644 --- a/ansible/roles/sahara/tasks/bootstrap_service.yml +++ b/ansible/roles/sahara/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_sahara" - restart_policy: "never" + restart_policy: no volumes: "{{ sahara_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[sahara_api.group][0] }}" diff --git a/ansible/roles/searchlight/tasks/bootstrap_service.yml b/ansible/roles/searchlight/tasks/bootstrap_service.yml index d210e24162..53c44a3838 100644 --- a/ansible/roles/searchlight/tasks/bootstrap_service.yml +++ b/ansible/roles/searchlight/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_searchlight" - restart_policy: "never" + restart_policy: no volumes: "{{ searchlight_api.volumes }}" run_once: True delegate_to: "{{ groups[searchlight_api.group][0] }}" diff --git a/ansible/roles/senlin/tasks/bootstrap_service.yml b/ansible/roles/senlin/tasks/bootstrap_service.yml index c584b7a7ae..abbfa2e834 100644 --- a/ansible/roles/senlin/tasks/bootstrap_service.yml +++ b/ansible/roles/senlin/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_senlin" - restart_policy: "never" + restart_policy: no volumes: "{{ senlin_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[senlin_api.group][0] }}" diff --git a/ansible/roles/solum/tasks/bootstrap_service.yml b/ansible/roles/solum/tasks/bootstrap_service.yml index fc63c094b5..231b963b69 100644 --- a/ansible/roles/solum/tasks/bootstrap_service.yml +++ b/ansible/roles/solum/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_solum" - restart_policy: "never" + restart_policy: no volumes: "{{ solum_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[solum_api.group][0] }}" diff --git a/ansible/roles/tacker/tasks/bootstrap_service.yml b/ansible/roles/tacker/tasks/bootstrap_service.yml index bfbaf1e87c..573fcc7f90 100644 --- a/ansible/roles/tacker/tasks/bootstrap_service.yml +++ b/ansible/roles/tacker/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_tacker" - restart_policy: "never" + restart_policy: no volumes: "{{ tacker_server.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[tacker_server.group][0] }}" diff --git a/ansible/roles/trove/tasks/bootstrap_service.yml b/ansible/roles/trove/tasks/bootstrap_service.yml index 7a6811b079..8e4f5e2735 100644 --- a/ansible/roles/trove/tasks/bootstrap_service.yml +++ b/ansible/roles/trove/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_trove" - restart_policy: "never" + restart_policy: no volumes: "{{ trove_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[trove_api.group][0] }}" diff --git a/ansible/roles/vitrage/tasks/bootstrap_service.yml b/ansible/roles/vitrage/tasks/bootstrap_service.yml index 96daedfe48..771be16102 100644 --- a/ansible/roles/vitrage/tasks/bootstrap_service.yml +++ b/ansible/roles/vitrage/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_vitrage" - restart_policy: "never" + restart_policy: no volumes: "{{ vitrage_api.volumes | reject('equalto', '') | list }}" run_once: True delegate_to: "{{ groups[vitrage_api.group][0] }}" diff --git a/ansible/roles/watcher/tasks/bootstrap_service.yml b/ansible/roles/watcher/tasks/bootstrap_service.yml index 089e9f2dc4..1323bddd4c 100644 --- a/ansible/roles/watcher/tasks/bootstrap_service.yml +++ b/ansible/roles/watcher/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_watcher" - restart_policy: "never" + restart_policy: no volumes: "{{ watcher_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[watcher_api.group][0] }}" diff --git a/ansible/roles/zun/tasks/bootstrap_service.yml b/ansible/roles/zun/tasks/bootstrap_service.yml index 17abc43d87..686d393e8f 100644 --- a/ansible/roles/zun/tasks/bootstrap_service.yml +++ b/ansible/roles/zun/tasks/bootstrap_service.yml @@ -14,7 +14,7 @@ labels: BOOTSTRAP: name: "bootstrap_zun" - restart_policy: "never" + restart_policy: no volumes: "{{ zun_api.volumes|reject('equalto', '')|list }}" run_once: True delegate_to: "{{ groups[zun_api.group][0] }}" diff --git a/tests/templates/globals-default.j2 b/tests/templates/globals-default.j2 index fc40b8fa25..9ee430c3ae 100644 --- a/tests/templates/globals-default.j2 +++ b/tests/templates/globals-default.j2 @@ -2,7 +2,7 @@ kolla_base_distro: "{{ base_distro }}" kolla_install_type: "{{ install_type }}" network_interface: "{{ api_interface_name }}" -docker_restart_policy: "never" +docker_restart_policy: "no" # Use a random router id, otherwise it may result in the same router id # in the CI gate. diff --git a/tests/test_kolla_docker.py b/tests/test_kolla_docker.py index b5982678ca..35be4ecbab 100644 --- a/tests/test_kolla_docker.py +++ b/tests/test_kolla_docker.py @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +# FIXME(yoctozepto): tests do not imitate how ansible would handle module args + import copy import imp import os @@ -71,7 +73,6 @@ class ModuleArgsTest(base.BaseTestCase): remove_on_exit=dict(required=False, type='bool', default=True), restart_policy=dict( required=False, type='str', choices=['no', - 'never', 'on-failure', 'always', 'unless-stopped']),