c70d806666
When Nova, Glance, or Cinder are deployed alongside an external Ceph deployment handlers will fail to trigger if keyring files are updated, which results in the containers not being restarted. This change adds the missing 'when' conditions for nova-libvirt, nova-compute, cinder-volume, cinder-backup, and glance-api containers. Change-Id: I8e183aac9a72e7a7210f7edc7cdcbaedd4fbcaa9
111 lines
5.4 KiB
YAML
111 lines
5.4 KiB
YAML
---
|
|
- name: Restart cinder-api container
|
|
vars:
|
|
service_name: "cinder-api"
|
|
service: "{{ cinder_services[service_name] }}"
|
|
config_json: "{{ cinder_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
cinder_conf: "{{ cinder_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
policy_overwriting: "{{ cinder_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
cinder_api_container: "{{ check_cinder_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "recreate_or_restart_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ service.container_name }}"
|
|
image: "{{ service.image }}"
|
|
volumes: "{{ service.volumes | reject('equalto', '') | list }}"
|
|
dimensions: "{{ service.dimensions }}"
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname in groups[service.group]
|
|
- service.enabled | bool
|
|
- config_json.changed | bool
|
|
or cinder_conf.changed | bool
|
|
or wsgi_cinder_api.changed | bool
|
|
or policy_overwriting.changed | bool
|
|
or cinder_api_container.changed | bool
|
|
|
|
- name: Restart cinder-scheduler container
|
|
vars:
|
|
service_name: "cinder-scheduler"
|
|
service: "{{ cinder_services[service_name] }}"
|
|
config_json: "{{ cinder_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
cinder_conf: "{{ cinder_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
policy_overwriting: "{{ cinder_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
cinder_scheduler_container: "{{ check_cinder_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "recreate_or_restart_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ service.container_name }}"
|
|
image: "{{ service.image }}"
|
|
volumes: "{{ service.volumes | reject('equalto', '') | list }}"
|
|
dimensions: "{{ service.dimensions }}"
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname in groups[service.group]
|
|
- service.enabled | bool
|
|
- config_json.changed | bool
|
|
or cinder_conf.changed | bool
|
|
or policy_overwriting.changed | bool
|
|
or cinder_scheduler_container.changed | bool
|
|
|
|
- name: Restart cinder-volume container
|
|
vars:
|
|
service_name: "cinder-volume"
|
|
service: "{{ cinder_services[service_name] }}"
|
|
config_json: "{{ cinder_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
cinder_conf: "{{ cinder_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
ceph_conf: "{{ ceph_confs.results|selectattr('item.key', 'equalto', service_name)|first if ceph_confs is defined else none }}"
|
|
policy_overwriting: "{{ cinder_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
cinder_volume_container: "{{ check_cinder_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "recreate_or_restart_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ service.container_name }}"
|
|
image: "{{ service.image }}"
|
|
privileged: "{{ service.privileged | default(False) }}"
|
|
ipc_mode: "{{ service.ipc_mode | default('') }}"
|
|
volumes: "{{ service.volumes | reject('equalto', '') | list }}"
|
|
dimensions: "{{ service.dimensions }}"
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname in groups[service.group]
|
|
- service.enabled | bool
|
|
- config_json.changed | bool
|
|
or cinder_conf.changed | bool
|
|
or policy_overwriting.changed | bool
|
|
or cinder_volume_container.changed | bool
|
|
or ( ceph_conf is not none and ceph_conf.changed | bool )
|
|
or ( cinder_volume_ceph_keyring is defined and cinder_volume_ceph_keyring.changed | bool )
|
|
|
|
- name: Restart cinder-backup container
|
|
vars:
|
|
service_name: "cinder-backup"
|
|
service: "{{ cinder_services[service_name] }}"
|
|
config_json: "{{ cinder_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
cinder_conf: "{{ cinder_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
ceph_conf: "{{ ceph_confs.results|selectattr('item.key', 'equalto', service_name)|first if ceph_confs is defined else none }}"
|
|
policy_overwriting: "{{ cinder_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
cinder_backup_container: "{{ check_cinder_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
|
|
become: true
|
|
kolla_docker:
|
|
action: "recreate_or_restart_container"
|
|
common_options: "{{ docker_common_options }}"
|
|
name: "{{ service.container_name }}"
|
|
image: "{{ service.image }}"
|
|
privileged: "{{ service.privileged | default(False) }}"
|
|
volumes: "{{ service.volumes | reject('equalto', '') | list }}"
|
|
dimensions: "{{ service.dimensions }}"
|
|
when:
|
|
- kolla_action != "config"
|
|
- inventory_hostname in groups[service.group]
|
|
- service.enabled | bool
|
|
- config_json.changed | bool
|
|
or cinder_conf.changed | bool
|
|
or policy_overwriting.changed | bool
|
|
or cinder_backup_container.changed | bool
|
|
or ( ceph_conf is not none and ceph_conf.changed | bool )
|
|
or ( cinder_backup_ceph_keyring is defined and cinder_backup_ceph_keyring.changed | bool )
|