Generate Ceph configuration during upgrade

If upgrading the nova, cinder or manila services via 'kolla-ansible
upgrade', the Ceph config files are not generated. Users will expect
that these files are generated, to pull in any changes from their
configuration or the base kolla configuration.

This change moves Ceph tasks inside config.yml to ensure that they are
performed during deploy, reconfigure and upgrade. This has been done for
nova, cinder, gnocchi and manila - glance already does this.

Change-Id: Ic75692c2bcba9b81dee922ff6fbbccd160e7fa19
Closes-Bug: #1794275
This commit is contained in:
Mark Goddard 2018-09-25 12:37:26 +01:00
parent 8045b3fbd0
commit 242625dff4
19 changed files with 67 additions and 156 deletions

View File

@ -1,22 +1,4 @@
--- ---
- name: Ensuring config directory exists
vars:
services_need_directory:
- "cinder-volume"
- "cinder-backup"
file:
path: "{{ node_config_directory }}/{{ item.key }}"
state: "directory"
owner: "{{ config_owner_user }}"
group: "{{ config_owner_group }}"
mode: "0770"
become: true
when:
- item.value.enabled | bool
- inventory_hostname in groups[item.value.group]
- item.key in services_need_directory
with_dict: "{{ cinder_services }}"
- name: Copying over ceph.conf(s) - name: Copying over ceph.conf(s)
vars: vars:
services_need_config: services_need_config:

View File

@ -12,6 +12,21 @@
- item.value.enabled | bool - item.value.enabled | bool
with_dict: "{{ cinder_services }}" with_dict: "{{ cinder_services }}"
- include_tasks: ceph.yml
when:
- (enable_ceph | bool) and (cinder_backend_ceph | bool)
- inventory_hostname in groups['ceph-mon'] or
inventory_hostname in groups['cinder-api'] or
inventory_hostname in groups['cinder-volume'] or
inventory_hostname in groups['cinder-scheduler'] or
inventory_hostname in groups['cinder-backup']
- include_tasks: external_ceph.yml
when:
- (enable_ceph | bool == False) and (cinder_backend_ceph | bool)
- inventory_hostname in groups['cinder-volume'] or
inventory_hostname in groups['cinder-backup']
- name: Check if policies shall be overwritten - name: Check if policies shall be overwritten
local_action: stat path="{{ item }}" local_action: stat path="{{ item }}"
run_once: True run_once: True

View File

@ -1,24 +1,10 @@
--- ---
- include_tasks: ceph.yml
when:
- (enable_ceph | bool) and (cinder_backend_ceph | bool)
- inventory_hostname in groups['ceph-mon'] or
inventory_hostname in groups['cinder-api'] or
inventory_hostname in groups['cinder-volume'] or
inventory_hostname in groups['cinder-scheduler'] or
inventory_hostname in groups['cinder-backup']
- include_tasks: external_ceph.yml
when:
- (enable_ceph | bool == False) and (cinder_backend_ceph | bool)
- inventory_hostname in groups['cinder-volume'] or
inventory_hostname in groups['cinder-backup']
- include_tasks: register.yml - include_tasks: register.yml
when: inventory_hostname in groups['cinder-api'] when: inventory_hostname in groups['cinder-api']
- include_tasks: config.yml - include_tasks: config.yml
when: inventory_hostname in groups['cinder-api'] or when: inventory_hostname in groups['ceph-mon'] or
inventory_hostname in groups['cinder-api'] or
inventory_hostname in groups['cinder-volume'] or inventory_hostname in groups['cinder-volume'] or
inventory_hostname in groups['cinder-scheduler'] or inventory_hostname in groups['cinder-scheduler'] or
inventory_hostname in groups['cinder-backup'] inventory_hostname in groups['cinder-backup']

View File

@ -1,22 +1,4 @@
--- ---
- name: Ensuring config directory exists
vars:
services_need_directory:
- "cinder-volume"
- "cinder-backup"
file:
path: "{{ node_config_directory }}/{{ item.key }}"
state: "directory"
owner: "{{ config_owner_user }}"
group: "{{ config_owner_group }}"
mode: "0770"
become: true
when:
- item.value.enabled | bool
- inventory_hostname in groups[item.value.group]
- item.key in services_need_directory
with_dict: "{{ cinder_services }}"
- name: Copying over ceph.conf for Cinder - name: Copying over ceph.conf for Cinder
vars: vars:
services_need_config: services_need_config:

View File

@ -1,12 +1,4 @@
--- ---
- name: Ensuring config directory exists
file:
path: "{{ node_config_directory }}/glance-api"
state: "directory"
mode: "0770"
become: true
when: inventory_hostname in groups['glance-api']
- name: Copying over ceph.conf(s) - name: Copying over ceph.conf(s)
merge_configs: merge_configs:
sources: sources:

View File

@ -1,14 +1,4 @@
--- ---
- include_tasks: ceph.yml
when:
- enable_ceph | bool
- glance_backend_ceph | bool
- include_tasks: external_ceph.yml
when:
- enable_ceph | bool == False
- glance_backend_ceph | bool
- name: Ensuring config directories exist - name: Ensuring config directories exist
file: file:
path: "{{ node_config_directory }}/{{ item.key }}" path: "{{ node_config_directory }}/{{ item.key }}"
@ -22,6 +12,16 @@
- item.value.enabled | bool - item.value.enabled | bool
with_dict: "{{ glance_services }}" with_dict: "{{ glance_services }}"
- include_tasks: ceph.yml
when:
- enable_ceph | bool
- glance_backend_ceph | bool
- include_tasks: external_ceph.yml
when:
- enable_ceph | bool == False
- glance_backend_ceph | bool
- name: Check if policies shall be overwritten - name: Check if policies shall be overwritten
local_action: stat path="{{ item }}" local_action: stat path="{{ item }}"
run_once: True run_once: True

View File

@ -1,12 +1,4 @@
--- ---
- name: Ensuring config directory exists
file:
path: "{{ node_config_directory }}/glance-api"
state: "directory"
mode: "0770"
become: true
when: inventory_hostname in groups['glance-api']
- name: Copy over ceph files - name: Copy over ceph files
copy: copy:
src: "{{ item }}" src: "{{ item }}"

View File

@ -1,15 +1,4 @@
--- ---
- name: Ensuring config directory exists
file:
path: "{{ node_config_directory }}/{{ item }}"
state: "directory"
become: true
when: inventory_hostname in groups[item]
with_items:
- "gnocchi-api"
- "gnocchi-metricd"
- "gnocchi-statsd"
- name: Copying over ceph.conf(s) - name: Copying over ceph.conf(s)
merge_configs: merge_configs:
sources: sources:

View File

@ -12,6 +12,16 @@
- item.value.enabled | bool - item.value.enabled | bool
with_dict: "{{ gnocchi_services }}" with_dict: "{{ gnocchi_services }}"
- include_tasks: ceph.yml
when:
- enable_ceph | bool
- gnocchi_backend_storage == 'ceph'
- include_tasks: external_ceph.yml
when:
- enable_ceph | bool == False
- gnocchi_backend_storage == 'ceph'
- name: Check if policies shall be overwritten - name: Check if policies shall be overwritten
local_action: stat path="{{ item }}" local_action: stat path="{{ item }}"
run_once: True run_once: True

View File

@ -1,14 +1,4 @@
--- ---
- include_tasks: ceph.yml
when:
- enable_ceph | bool
- gnocchi_backend_storage == 'ceph'
- include_tasks: external_ceph.yml
when:
- enable_ceph | bool == False
- gnocchi_backend_storage == 'ceph'
- include_tasks: register.yml - include_tasks: register.yml
when: inventory_hostname in groups['gnocchi-api'] when: inventory_hostname in groups['gnocchi-api']

View File

@ -1,15 +1,4 @@
--- ---
- name: Ensuring config directory exists
file:
path: "{{ node_config_directory }}/{{ item }}"
state: "directory"
become: true
when: inventory_hostname in groups[item]
with_items:
- "gnocchi-api"
- "gnocchi-metricd"
- "gnocchi-statsd"
- name: Copy over ceph.conf file - name: Copy over ceph.conf file
template: template:
src: "{{ node_custom_config }}/gnocchi/ceph.conf" src: "{{ node_custom_config }}/gnocchi/ceph.conf"

View File

@ -1,10 +1,4 @@
--- ---
- name: Ensuring config directory exists
file:
path: "{{ node_config_directory }}/manila-share"
state: "directory"
become: true
- name: Copying over ceph.conf for manila - name: Copying over ceph.conf for manila
merge_configs: merge_configs:
sources: sources:

View File

@ -12,6 +12,20 @@
- item.value.enabled | bool - item.value.enabled | bool
with_dict: "{{ manila_services }}" with_dict: "{{ manila_services }}"
- include_tasks: ceph.yml
when:
- enable_ceph | bool
- enable_ceph_mds | bool
- (enable_manila_backend_cephfs_native | bool) or (enable_manila_backend_cephfs_nfs | bool)
- inventory_hostname in groups['manila-share']
- include_tasks: external_ceph.yml
when:
- enable_ceph| bool == False
- enable_ceph_mds| bool == False
- (enable_manila_backend_cephfs_native | bool) or (enable_manila_backend_cephfs_nfs | bool)
- inventory_hostname in groups['manila-share']
- name: Check if policies shall be overwritten - name: Check if policies shall be overwritten
local_action: stat path="{{ item }}" local_action: stat path="{{ item }}"
run_once: True run_once: True

View File

@ -1,18 +1,4 @@
--- ---
- include_tasks: ceph.yml
when:
- enable_ceph | bool
- enable_ceph_mds | bool
- (enable_manila_backend_cephfs_native | bool) or (enable_manila_backend_cephfs_nfs | bool)
- inventory_hostname in groups['manila-share']
- include_tasks: external_ceph.yml
when:
- enable_ceph| bool == False
- enable_ceph_mds| bool == False
- (enable_manila_backend_cephfs_native | bool) or (enable_manila_backend_cephfs_nfs | bool)
- inventory_hostname in groups['manila-share']
- include_tasks: clone.yml - include_tasks: clone.yml
when: manila_dev_mode | bool when: manila_dev_mode | bool

View File

@ -1,12 +1,4 @@
--- ---
- name: Ensuring config directory exists
file:
path: "{{ node_config_directory }}/manila-share"
state: "directory"
become: true
when:
- inventory_hostname in groups['manila-share']
- name: Copying over ceph.conf for manila - name: Copying over ceph.conf for manila
template: template:
src: "{{ node_custom_config }}/manila/ceph.conf" src: "{{ node_custom_config }}/manila/ceph.conf"

View File

@ -6,7 +6,6 @@
mode: "0770" mode: "0770"
become: true become: true
with_items: with_items:
- "nova-compute"
- "nova-libvirt/secrets" - "nova-libvirt/secrets"
when: inventory_hostname in groups['compute'] when: inventory_hostname in groups['compute']

View File

@ -24,6 +24,22 @@
- item.value.enabled | bool - item.value.enabled | bool
with_dict: "{{ nova_services }}" with_dict: "{{ nova_services }}"
- include_tasks: ceph.yml
when:
- enable_ceph | bool and nova_backend == "rbd"
- inventory_hostname in groups['ceph-mon'] or
inventory_hostname in groups['compute'] or
inventory_hostname in groups['nova-api'] or
inventory_hostname in groups['nova-conductor'] or
inventory_hostname in groups['nova-consoleauth'] or
inventory_hostname in groups['nova-novncproxy'] or
inventory_hostname in groups['nova-scheduler']
- include_tasks: external_ceph.yml
when:
- not enable_ceph | bool and (nova_backend == "rbd" or cinder_backend_ceph | bool)
- inventory_hostname in groups['compute']
- name: Check if policies shall be overwritten - name: Check if policies shall be overwritten
local_action: stat path="{{ item }}" local_action: stat path="{{ item }}"
run_once: True run_once: True

View File

@ -1,20 +1,4 @@
--- ---
- include_tasks: ceph.yml
when:
- enable_ceph | bool and nova_backend == "rbd"
- inventory_hostname in groups['ceph-mon'] or
inventory_hostname in groups['compute'] or
inventory_hostname in groups['nova-api'] or
inventory_hostname in groups['nova-conductor'] or
inventory_hostname in groups['nova-consoleauth'] or
inventory_hostname in groups['nova-novncproxy'] or
inventory_hostname in groups['nova-scheduler']
- include_tasks: external_ceph.yml
when:
- not enable_ceph | bool and (nova_backend == "rbd" or cinder_backend_ceph | bool)
- inventory_hostname in groups['compute']
- include_tasks: register.yml - include_tasks: register.yml
when: inventory_hostname in groups['nova-api'] when: inventory_hostname in groups['nova-api']

View File

@ -6,7 +6,6 @@
mode: "0770" mode: "0770"
become: true become: true
with_items: with_items:
- "nova-compute"
- "nova-libvirt/secrets" - "nova-libvirt/secrets"
when: inventory_hostname in groups['compute'] when: inventory_hostname in groups['compute']