From c70d806666a522e38e812ba287a8f7289e704957 Mon Sep 17 00:00:00 2001 From: Scott Solkhon Date: Sun, 10 Mar 2019 21:57:05 +0000 Subject: [PATCH] Add mising handlers for external Ceph. 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 --- ansible/roles/cinder/handlers/main.yml | 2 ++ ansible/roles/cinder/tasks/external_ceph.yml | 2 ++ ansible/roles/glance/handlers/main.yml | 1 + ansible/roles/glance/tasks/external_ceph.yml | 1 + ansible/roles/nova/handlers/main.yml | 4 ++++ ansible/roles/nova/tasks/external_ceph.yml | 3 +++ 6 files changed, 13 insertions(+) diff --git a/ansible/roles/cinder/handlers/main.yml b/ansible/roles/cinder/handlers/main.yml index 8a2d2dde06..08122965a4 100644 --- a/ansible/roles/cinder/handlers/main.yml +++ b/ansible/roles/cinder/handlers/main.yml @@ -78,6 +78,7 @@ 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: @@ -106,3 +107,4 @@ 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 ) diff --git a/ansible/roles/cinder/tasks/external_ceph.yml b/ansible/roles/cinder/tasks/external_ceph.yml index 66b735d0fc..f60614974e 100644 --- a/ansible/roles/cinder/tasks/external_ceph.yml +++ b/ansible/roles/cinder/tasks/external_ceph.yml @@ -26,6 +26,7 @@ dest: "{{ node_config_directory }}/cinder-volume/" mode: "0660" become: true + register: cinder_volume_ceph_keyring with_fileglob: - "{{ node_custom_config }}/cinder/cinder-volume/ceph.client*" when: @@ -41,6 +42,7 @@ dest: "{{ node_config_directory }}/cinder-backup/" mode: "0660" become: true + register: cinder_backup_ceph_keyring with_fileglob: - "{{ node_custom_config }}/cinder/cinder-backup/ceph.client*" when: diff --git a/ansible/roles/glance/handlers/main.yml b/ansible/roles/glance/handlers/main.yml index f4a53179be..c6fad22423 100644 --- a/ansible/roles/glance/handlers/main.yml +++ b/ansible/roles/glance/handlers/main.yml @@ -27,3 +27,4 @@ or policy_overwriting.changed | bool or glance_api_container.changed | bool or glance_upgrading | bool + or ( glance_api_ceph_files is defined and glance_api_ceph_files.changed | bool ) diff --git a/ansible/roles/glance/tasks/external_ceph.yml b/ansible/roles/glance/tasks/external_ceph.yml index 33b20731b8..4bf6f8f87d 100644 --- a/ansible/roles/glance/tasks/external_ceph.yml +++ b/ansible/roles/glance/tasks/external_ceph.yml @@ -5,6 +5,7 @@ dest: "{{ node_config_directory }}/glance-api/" mode: "0660" become: true + register: glance_api_ceph_files when: inventory_hostname in groups['glance-api'] with_fileglob: - "{{ node_custom_config }}/glance/ceph*" diff --git a/ansible/roles/nova/handlers/main.yml b/ansible/roles/nova/handlers/main.yml index a634128179..e00ca12124 100644 --- a/ansible/roles/nova/handlers/main.yml +++ b/ansible/roles/nova/handlers/main.yml @@ -105,6 +105,9 @@ or nova_libvirt_confs.changed | bool or nova_libvirt_container.changed | bool or ( ceph_conf is not none and ceph_conf.changed | bool ) + or ( nova_ceph_keyring is defined and nova_ceph_keyring.changed | bool ) + or ( libvirt_secrets_xml is defined and libvirt_secrets_xml.changed | bool ) + or ( libvirt_secrets_key is defined and libvirt_secrets_key.changed | bool ) - name: Restart nova-scheduler container vars: @@ -293,6 +296,7 @@ or nova_compute_release_file | bool or nova_compute_container.changed | bool or ( ceph_conf is not none and ceph_conf.changed | bool ) + or ( nova_ceph_keyring is defined and nova_ceph_keyring.changed | bool ) - name: Restart nova-compute-ironic container vars: diff --git a/ansible/roles/nova/tasks/external_ceph.yml b/ansible/roles/nova/tasks/external_ceph.yml index 6d5663fa39..20698e9aa3 100644 --- a/ansible/roles/nova/tasks/external_ceph.yml +++ b/ansible/roles/nova/tasks/external_ceph.yml @@ -34,6 +34,7 @@ dest: "{{ node_config_directory }}/{{ item }}/" mode: "0660" become: true + register: nova_ceph_keyring with_items: - nova-compute - nova-libvirt @@ -67,6 +68,7 @@ dest: "{{ node_config_directory }}/nova-libvirt/secrets/{{ item.uuid }}.xml" mode: "0600" become: true + register: libvirt_secrets_xml when: - inventory_hostname in groups['compute'] - item.enabled | bool @@ -102,6 +104,7 @@ dest: "{{ node_config_directory }}/nova-libvirt/secrets/{{ item.uuid }}.base64" mode: "0600" become: true + register: libvirt_secrets_key when: - inventory_hostname in groups['compute'] - item.enabled | bool