From 0353dba39a6f8843f4918554fc22300f5f2a9341 Mon Sep 17 00:00:00 2001 From: Doug Szumski <doug@stackhpc.com> Date: Tue, 26 Jun 2018 16:56:42 +0100 Subject: [PATCH] Add support for configuring MariaDB This enables: * Disabling MariaDB if external MariaDB is used * Merging additional configuration with the default Kolla provided configuration for MariaDB Story: 2002704 Task: 22545 Change-Id: I345f56d50dd64b516d563a025ec877bc4a4034e1 --- ansible/group_vars/all/kolla | 3 +++ ansible/kolla-openstack.yml | 2 ++ ansible/roles/kolla-ansible/tests/test-defaults.yml | 1 + ansible/roles/kolla-ansible/tests/test-extras.yml | 2 ++ ansible/roles/kolla-ansible/vars/main.yml | 1 + ansible/roles/kolla-openstack/defaults/main.yml | 9 +++++++++ .../molecule/default/tests/test_default.py | 1 + .../molecule/enable-everything/molecule.yml | 4 ++++ .../molecule/enable-everything/tests/test_default.py | 2 ++ ansible/roles/kolla-openstack/tasks/config.yml | 1 + ansible/roles/kolla-openstack/templates/galera.cnf.j2 | 9 +++++++++ ansible/roles/kolla-openstack/vars/main.yml | 5 +++++ ...support-for-configuring-mariadb-646badcc9dd07019.yaml | 4 ++++ 13 files changed, 44 insertions(+) create mode 100644 ansible/roles/kolla-openstack/templates/galera.cnf.j2 create mode 100644 releasenotes/notes/add-support-for-configuring-mariadb-646badcc9dd07019.yaml diff --git a/ansible/group_vars/all/kolla b/ansible/group_vars/all/kolla index 60fcf9fb..77607b95 100644 --- a/ansible/group_vars/all/kolla +++ b/ansible/group_vars/all/kolla @@ -162,6 +162,8 @@ overcloud_container_image_regex_map: enabled: "{{ kolla_enable_magnum | bool }}" - regex: manila enabled: "{{ kolla_enable_manila | bool }}" + - regex: mariadb + enabled: "{{ kolla_enable_mariadb | bool }}" - regex: murano enabled: "{{ kolla_enable_murano | bool }}" - regex: mariadb @@ -319,6 +321,7 @@ kolla_enable_kafka: "no" kolla_enable_kibana: "{{ 'yes' if kolla_enable_central_logging | bool else 'no' }}" kolla_enable_magnum: "no" kolla_enable_manila: "no" +kolla_enable_mariadb: "yes" # Support for Monasca in Kolla is a work in progress. This currently relies # on an out-of-band Monasca installation. kolla_enable_monasca: "no" diff --git a/ansible/kolla-openstack.yml b/ansible/kolla-openstack.yml index 791f1bfe..0beda1af 100644 --- a/ansible/kolla-openstack.yml +++ b/ansible/kolla-openstack.yml @@ -110,6 +110,7 @@ - { name: ironic_dnsmasq, file: ironic/ironic-dnsmasq.conf } - { name: kafka, file: kafka.server.properties } - { name: magnum, file: magnum.conf } + - { name: mariadb, file: galera.cnf } - { name: murano, file: murano.conf } - { name: neutron, file: neutron.conf } - { name: neutron_ml2, file: neutron/ml2_conf.ini } @@ -213,6 +214,7 @@ kolla_extra_ironic_dnsmasq: "{{ kolla_extra_config.ironic_dnsmasq | default }}" kolla_extra_kafka: "{{ kolla_extra_config.kafka | default }}" kolla_extra_magnum: "{{ kolla_extra_config.magnum | default }}" + kolla_extra_mariadb: "{{ kolla_extra_config.mariadb | default }}" kolla_extra_murano: "{{ kolla_extra_config.murano | default }}" kolla_extra_neutron: "{{ kolla_extra_config.neutron | default }}" kolla_extra_neutron_ml2: "{{ kolla_extra_config.neutron_ml2 | default }}" diff --git a/ansible/roles/kolla-ansible/tests/test-defaults.yml b/ansible/roles/kolla-ansible/tests/test-defaults.yml index 9a430aca..8a66d484 100644 --- a/ansible/roles/kolla-ansible/tests/test-defaults.yml +++ b/ansible/roles/kolla-ansible/tests/test-defaults.yml @@ -117,6 +117,7 @@ - enable_ironic - enable_kafka - enable_influxdb + - enable_mariadb - enable_neutron - enable_nova - enable_zookeeper diff --git a/ansible/roles/kolla-ansible/tests/test-extras.yml b/ansible/roles/kolla-ansible/tests/test-extras.yml index 5b824088..be579663 100644 --- a/ansible/roles/kolla-ansible/tests/test-extras.yml +++ b/ansible/roles/kolla-ansible/tests/test-extras.yml @@ -93,6 +93,7 @@ kolla_enable_manila: True kolla_enable_manila_backend_generic: True kolla_enable_manila_backend_hnas: True + kolla_enable_mariadb: True kolla_enable_mistral: True kolla_enable_monasca: True kolla_enable_mongodb: True @@ -227,6 +228,7 @@ #enable_manila: True #enable_manila_backend_generic: True #enable_manila_backend_hnas: True + #enable_mariadb: True #enable_mistral: True #enable_mongodb: True #enable_murano: True diff --git a/ansible/roles/kolla-ansible/vars/main.yml b/ansible/roles/kolla-ansible/vars/main.yml index 29dd9a65..5ff8610d 100644 --- a/ansible/roles/kolla-ansible/vars/main.yml +++ b/ansible/roles/kolla-ansible/vars/main.yml @@ -99,6 +99,7 @@ kolla_feature_flags: - manila_backend_hnas - manila_backend_cephfs_native - manila_backend_cephfs_nfs + - mariadb - mistral - mongodb - monasca diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml index e50fa4ff..677d3ed9 100644 --- a/ansible/roles/kolla-openstack/defaults/main.yml +++ b/ansible/roles/kolla-openstack/defaults/main.yml @@ -273,6 +273,15 @@ kolla_enable_magnum: # Free form extra configuration to append to magnum.conf. kolla_extra_magnum: +############################################################################### +# MariaDB configuration. + +# Whether to enable MariaDB. +kolla_enable_mariadb: + +# Free form extra configuration to append to galera.cnf. +kolla_extra_mariadb: + ############################################################################### # Manila configuration. diff --git a/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py b/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py index f364acab..c86d96e7 100644 --- a/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py +++ b/ansible/roles/kolla-openstack/molecule/default/tests/test_default.py @@ -49,6 +49,7 @@ def test_service_config_directory(host, path): 'kafka', 'magnum', 'manila', + 'mariadb', 'murano', 'neutron', 'nova', diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml index e15854a2..c2386746 100644 --- a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml +++ b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml @@ -63,6 +63,10 @@ provisioner: [extra-magnum.conf] foo=bar kolla_enable_manila: true + kolla_enable_mariadb: true + kolla_extra_mariadb: | + [extra-galera.cnf] + foo=bar kolla_enable_murano: true kolla_enable_monasca: true kolla_extra_murano: | diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py b/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py index 54c03d7d..089e27ed 100644 --- a/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py +++ b/ansible/roles/kolla-openstack/molecule/enable-everything/tests/test_default.py @@ -42,6 +42,7 @@ testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( 'keystone', 'magnum', 'manila', + 'mariadb', 'murano', 'neutron', 'nova', @@ -58,6 +59,7 @@ def test_service_config_directory(host, path): ['ceph.conf', 'cinder.conf', 'designate.conf', + 'galera.cnf', 'glance.conf', 'grafana.ini', 'heat.conf', diff --git a/ansible/roles/kolla-openstack/tasks/config.yml b/ansible/roles/kolla-openstack/tasks/config.yml index 459ea648..f53c0249 100644 --- a/ansible/roles/kolla-openstack/tasks/config.yml +++ b/ansible/roles/kolla-openstack/tasks/config.yml @@ -16,6 +16,7 @@ - { src: ceph.conf.j2, dest: ceph.conf, enabled: "{{ kolla_enable_ceph }}" } - { src: cinder.conf.j2, dest: cinder.conf, enabled: "{{ kolla_enable_cinder }}" } - { src: designate.conf.j2, dest: designate.conf, enabled: "{{ kolla_enable_designate }}" } + - { src: galera.cnf.j2, dest: galera.cnf, enabled: "{{ kolla_enable_mariadb }}" } - { src: glance.conf.j2, dest: glance.conf, enabled: "{{ kolla_enable_glance }}" } - { src: grafana.ini.j2, dest: grafana.ini, enabled: "{{ kolla_enable_grafana }}" } - { src: heat.conf.j2, dest: heat.conf, enabled: "{{ kolla_enable_heat }}" } diff --git a/ansible/roles/kolla-openstack/templates/galera.cnf.j2 b/ansible/roles/kolla-openstack/templates/galera.cnf.j2 new file mode 100644 index 00000000..55122ebb --- /dev/null +++ b/ansible/roles/kolla-openstack/templates/galera.cnf.j2 @@ -0,0 +1,9 @@ +# {{ ansible_managed }} + +{% if kolla_extra_mariadb %} +####################### +# Extra configuration +####################### + +{{ kolla_extra_mariadb }} +{% endif %} diff --git a/ansible/roles/kolla-openstack/vars/main.yml b/ansible/roles/kolla-openstack/vars/main.yml index 0dcb634d..c9bc4479 100644 --- a/ansible/roles/kolla-openstack/vars/main.yml +++ b/ansible/roles/kolla-openstack/vars/main.yml @@ -90,6 +90,11 @@ kolla_openstack_custom_config: dest: "{{ kolla_node_custom_config_path }}/manila" patterns: "*" enabled: "{{ kolla_enable_manila }}" + # MariaDB. + - src: "{{ kolla_extra_config_path }}/mariadb" + dest: "{{ kolla_node_custom_config_path }}/mariadb" + patterns: "*" + enabled: "{{ kolla_enable_mariadb }}" # Murano. - src: "{{ kolla_extra_config_path }}/murano" dest: "{{ kolla_node_custom_config_path }}/murano" diff --git a/releasenotes/notes/add-support-for-configuring-mariadb-646badcc9dd07019.yaml b/releasenotes/notes/add-support-for-configuring-mariadb-646badcc9dd07019.yaml new file mode 100644 index 00000000..2d5a097d --- /dev/null +++ b/releasenotes/notes/add-support-for-configuring-mariadb-646badcc9dd07019.yaml @@ -0,0 +1,4 @@ +--- +features: + - Add support for configuring MariaDB to support customising the Kolla + deployment, or using an external DB. -- GitLab