kolla-ansible/ansible/roles/cinder/tasks/config.yml
Bertrand Lallau a3dfdfc085 Simplify Openstack services configuration possibilities
Actually Openstack services configuration can be overriden using many
files:
- /etc/kolla/config/<< service name >>/<< config file >>
- /etc/kolla/config/<< service name >>/<<host>>/<< config file >>
- /etc/kolla/config/global.conf
- /etc/kolla/config/database.conf
- /etc/kolla/config/messaging.conf

Only per-service configuration is actually documented here:
https://github.com/openstack/kolla-ansible/blob/master/doc/advanced-configuration.rst#L164

Allowing to globally modify service configuration can be perform too,
but it can be done in 3 different manners, all not documented:
- /etc/kolla/config/global.conf
- /etc/kolla/config/database.conf
- /etc/kolla/config/messaging.conf

database.conf and messaging.conf seems redundant with global.conf.
In order to simplify codebase it seems logical to remove them.

Documentation has been added for overriding configuration globally and
release note has been added too.

Closes-Bug: #1682479
Change-Id: I5d922dfc0d938173bad34ac64e490b78db1b7e31
2017-09-13 17:47:36 +02:00

122 lines
4.2 KiB
YAML

---
- name: Ensuring config directories exist
file:
path: "{{ node_config_directory }}/{{ item.key }}"
state: "directory"
recurse: yes
when:
- inventory_hostname in groups[item.value.group]
- item.value.enabled | bool
with_dict: "{{ cinder_services }}"
- name: Copying over config.json files for services
template:
src: "{{ item.key }}.json.j2"
dest: "{{ node_config_directory }}/{{ item.key }}/config.json"
register: cinder_config_jsons
when:
- inventory_hostname in groups[item.value.group]
- item.value.enabled | bool
with_dict: "{{ cinder_services }}"
notify:
- Restart cinder-api container
- Restart cinder-scheduler container
- Restart cinder-volume container
- Restart cinder-backup container
- name: Copying over cinder-wsgi.conf
vars:
service: "{{ cinder_services['cinder-api'] }}"
template:
src: "{{ item }}"
dest: "{{ node_config_directory }}/cinder-api/cinder-wsgi.conf"
with_first_found:
- "{{ node_custom_config }}/cinder/{{ inventory_hostname }}/cinder-wsgi.conf"
- "{{ node_custom_config }}/cinder/cinder-wsgi.conf"
- "cinder-wsgi.conf.j2"
register: wsgi_cinder_api
when:
- inventory_hostname in groups[service.group]
- service.enabled | bool
notify:
- Restart cinder-api container
- name: Copying over cinder.conf
vars:
service_name: "{{ item.key }}"
merge_configs:
sources:
- "{{ role_path }}/templates/cinder.conf.j2"
- "{{ node_custom_config }}/global.conf"
- "{{ node_custom_config }}/cinder.conf"
- "{{ node_custom_config }}/cinder/{{ item.key }}.conf"
- "{{ node_custom_config }}/cinder/{{ inventory_hostname }}/cinder.conf"
dest: "{{ node_config_directory }}/{{ item.key }}/cinder.conf"
register: cinder_confs
when:
- item.value.enabled | bool
- inventory_hostname in groups[item.value.group]
with_dict: "{{ cinder_services }}"
notify:
- Restart cinder-api container
- Restart cinder-scheduler container
- Restart cinder-volume container
- Restart cinder-backup container
- name: Check if policies shall be overwritten
local_action: stat path="{{ node_custom_config }}/cinder/policy.json"
run_once: True
register: cinder_policy
- name: Copying over existing policy.json
template:
src: "{{ node_custom_config }}/cinder/policy.json"
dest: "{{ node_config_directory }}/{{ item.key }}/policy.json"
register: cinder_policy_jsons
when:
- cinder_policy.stat.exists
- inventory_hostname in groups[item.value.group]
with_dict: "{{ cinder_services }}"
notify:
- Restart cinder-api container
- Restart cinder-scheduler container
- Restart cinder-volume container
- Restart cinder-backup container
- name: Copying over nfs_shares files for cinder_volume
template:
src: "{{ item }}"
dest: "{{ node_config_directory }}/cinder-volume/nfs_shares"
with_first_found:
- files:
- "{{ node_custom_config }}/nfs_shares.j2"
- "{{ node_custom_config }}/cinder/nfs_shares.j2"
- "{{ node_custom_config }}/cinder/cinder-volume/nfs_shares.j2"
- "{{ node_custom_config }}/cinder/{{ inventory_hostname }}/nfs_shares.j2"
- "{{ node_custom_config }}/nfs_shares"
- "{{ node_custom_config }}/cinder/nfs_shares"
- "{{ node_custom_config }}/cinder/cinder-volume/nfs_shares"
- "{{ node_custom_config }}/cinder/{{ inventory_hostname }}/nfs_shares"
skip: "{{ not enable_cinder_backend_nfs | bool and not enable_cinder_backend_hnas_nfs | bool }}"
- name: Check cinder containers
kolla_docker:
action: "compare_container"
common_options: "{{ docker_common_options }}"
name: "{{ item.value.container_name }}"
image: "{{ item.value.image }}"
volumes: "{{ item.value.volumes | reject('equalto', '') | list }}"
privileged: "{{ item.value.privileged | default(False) }}"
ipc_mode: "{{ item.value.ipc_mode | default('') }}"
register: check_cinder_containers
when:
- action != "config"
- inventory_hostname in groups[item.value.group]
- item.value.enabled | bool
with_dict: "{{ cinder_services }}"
notify:
- Restart cinder-api container
- Restart cinder-scheduler container
- Restart cinder-volume container
- Restart cinder-backup container