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

@ -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)
vars:
services_need_config:

@ -12,6 +12,21 @@
- item.value.enabled | bool
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
local_action: stat path="{{ item }}"
run_once: True

@ -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
when: inventory_hostname in groups['cinder-api']
- 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-scheduler'] or
inventory_hostname in groups['cinder-backup']

@ -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
vars:
services_need_config:

@ -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)
merge_configs:
sources:

@ -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
file:
path: "{{ node_config_directory }}/{{ item.key }}"
@ -22,6 +12,16 @@
- item.value.enabled | bool
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
local_action: stat path="{{ item }}"
run_once: True

@ -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
copy:
src: "{{ item }}"

@ -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)
merge_configs:
sources:

@ -12,6 +12,16 @@
- item.value.enabled | bool
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
local_action: stat path="{{ item }}"
run_once: True

@ -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
when: inventory_hostname in groups['gnocchi-api']

@ -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
template:
src: "{{ node_custom_config }}/gnocchi/ceph.conf"

@ -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
merge_configs:
sources:

@ -12,6 +12,20 @@
- item.value.enabled | bool
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
local_action: stat path="{{ item }}"
run_once: True

@ -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
when: manila_dev_mode | bool

@ -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
template:
src: "{{ node_custom_config }}/manila/ceph.conf"

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

@ -24,6 +24,22 @@
- item.value.enabled | bool
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
local_action: stat path="{{ item }}"
run_once: True

@ -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
when: inventory_hostname in groups['nova-api']

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