From 901b426a88aa130b6aa013204fcd58018d4e306d Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Mon, 24 May 2021 10:12:55 +0100 Subject: [PATCH] WIP: Use merge_configs and merge_yaml to generate custom config Change-Id: Id4588f4529a4522e68e22ce58711cb927fa68a9d --- ansible/kolla-bifrost.yml | 18 +--- ansible/kolla-openstack.yml | 76 ----------------- .../templates/dell-switch-bmp.conf.j2 | 2 +- ansible/roles/kolla-bifrost/defaults/main.yml | 4 + ansible/roles/kolla-bifrost/tasks/main.yml | 6 +- ansible/roles/kolla-build/tasks/main.yml | 33 +++---- .../kolla-build/templates/kolla-build.conf.j2 | 3 +- .../templates/template-override.j2.j2 | 2 +- .../roles/kolla-openstack/defaults/main.yml | 34 ++++++++ .../molecule/enable-everything/molecule.yml | 85 +------------------ .../molecule/enable-everything/prepare.yml | 48 +++++++++++ .../roles/kolla-openstack/tasks/config.yml | 10 ++- .../kolla-openstack/templates/aodh.conf.j2 | 2 +- .../templates/backup.my.cnf.j2 | 2 +- .../templates/barbican.conf.j2 | 2 +- .../kolla-openstack/templates/blazar.conf.j2 | 2 +- .../templates/ceilometer.conf.j2 | 2 +- .../kolla-openstack/templates/cinder.conf.j2 | 2 +- .../templates/cloudkitty.conf.j2 | 2 +- .../templates/designate.conf.j2 | 2 +- .../kolla-openstack/templates/galera.cnf.j2 | 2 +- .../kolla-openstack/templates/glance.conf.j2 | 2 +- .../kolla-openstack/templates/global.conf.j2 | 2 +- .../kolla-openstack/templates/gnocchi.conf.j2 | 2 +- .../kolla-openstack/templates/grafana.ini.j2 | 2 +- .../kolla-openstack/templates/heat.conf.j2 | 2 +- .../kolla-openstack/templates/ironic.conf.j2 | 2 +- .../templates/kafka.server.properties.j2 | 2 +- .../templates/keystone.conf.j2 | 2 +- .../kolla-openstack/templates/magnum.conf.j2 | 2 +- .../kolla-openstack/templates/manila.conf.j2 | 2 +- .../templates/masakari.conf.j2 | 2 +- .../kolla-openstack/templates/ml2_conf.ini.j2 | 2 +- .../kolla-openstack/templates/murano.conf.j2 | 2 +- .../kolla-openstack/templates/neutron.conf.j2 | 2 +- .../kolla-openstack/templates/nova.conf.j2 | 2 +- .../kolla-openstack/templates/octavia.conf.j2 | 2 +- .../kolla-openstack/templates/sahara.conf.j2 | 2 +- .../templates/zookeeper.cfg.j2 | 2 +- .../templates/public-openrc.sh.j2 | 2 +- tools/test-molecule.sh | 5 ++ zuul.d/project.yaml | 15 ---- 42 files changed, 148 insertions(+), 249 deletions(-) diff --git a/ansible/kolla-bifrost.yml b/ansible/kolla-bifrost.yml index 63e8dca0c..27a559186 100644 --- a/ansible/kolla-bifrost.yml +++ b/ansible/kolla-bifrost.yml @@ -3,23 +3,6 @@ hosts: localhost tags: - kolla-bifrost - vars: - kolla_bifrost_extra_globals_path: "{{ kayobe_env_config_path ~ '/kolla/config/bifrost/bifrost.yml' }}" - - pre_tasks: - - name: Check whether a Kolla Bifrost extra globals configuration file exists - stat: - path: "{{ kolla_bifrost_extra_globals_path }}" - get_checksum: False - get_md5: False - mime: False - register: globals_stat - - - name: Read the Kolla Bifrost extra globals configuration file - set_fact: - kolla_bifrost_extra_globals: "{{ lookup('template', kolla_bifrost_extra_globals_path) | from_yaml }}" - when: globals_stat.stat.exists - roles: - role: kolla-bifrost @@ -30,3 +13,4 @@ kolla_bifrost_dnsmasq_dns_servers: "{{ resolv_nameservers | default([]) }}" kolla_bifrost_domain: "{{ resolv_domain | default }}" kolla_bifrost_download_ipa: "{{ not ipa_build_images | bool }}" + kolla_bifrost_extra_config_path: "{{ kayobe_env_config_path ~ '/kolla/config' }}" diff --git a/ansible/kolla-openstack.yml b/ansible/kolla-openstack.yml index a350b4d25..717f6b03d 100644 --- a/ansible/kolla-openstack.yml +++ b/ansible/kolla-openstack.yml @@ -99,53 +99,6 @@ ipa_image_name: "ipa" pre_tasks: - block: - - name: Check whether Kolla extra configuration files exist - stat: - path: "{{ kayobe_env_config_path }}/kolla/config/{{ item.file }}" - get_checksum: False - get_md5: False - mime: False - register: stat_result - with_items: - - { name: aodh, file: aodh.conf } - - { name: barbican, file: barbican.conf } - - { name: blazar, file: blazar.conf } - - { name: ceilometer, file: ceilometer.conf } - - { name: cinder, file: cinder.conf } - - { name: cloudkitty, file: cloudkitty.conf } - - { name: designate, file: designate.conf } - - { name: glance, file: glance.conf } - - { name: global, file: global.conf } - - { name: gnocchi, file: gnocchi.conf } - - { name: grafana, file: grafana.ini } - - { name: heat, file: heat.conf } - - { name: inspector, file: ironic-inspector.conf } - - { name: ironic, file: ironic.conf } - - { name: kafka, file: kafka.server.properties } - - { name: keystone, file: keystone.conf } - - { name: magnum, file: magnum.conf } - - { name: manila, file: manila.conf } - - { name: mariabackup, file: backup.my.cnf } - - { name: mariadb, file: galera.cnf } - - { name: masakari, file: masakari.conf } - - { name: murano, file: murano.conf } - - { name: neutron, file: neutron.conf } - - { name: neutron_ml2, file: neutron/ml2_conf.ini } - - { name: nova, file: nova.conf } - - { name: octavia, file: octavia.conf } - - { name: sahara, file: sahara.conf } - - { name: zookeeper, file: zookeeper.cfg } - - - name: Initialise a fact containing extra configuration - set_fact: - kolla_extra_config: {} - - - name: Update a fact containing extra configuration - set_fact: - kolla_extra_config: "{{ kolla_extra_config | combine({item.item.name: lookup('template', '{{ item.stat.path }}')}) }}" - with_items: "{{ stat_result.results }}" - when: item.stat.exists - - name: Validate switch configuration for Neutron ML2 genericswitch driver fail: msg: > @@ -216,33 +169,4 @@ kolla_inspector_swift_auth: auth_type: none endpoint_override: "http://{% raw %}{{ api_interface_address }}{% endraw %}:{{ inspector_store_port }}" - # Extra free-form user-provided configuration. - kolla_extra_aodh: "{{ kolla_extra_config.aodh | default }}" - kolla_extra_barbican: "{{ kolla_extra_config.barbican | default }}" - kolla_extra_blazar: "{{ kolla_extra_config.blazar | default }}" - kolla_extra_ceilometer: "{{ kolla_extra_config.ceilometer | default }}" - kolla_extra_cinder: "{{ kolla_extra_config.cinder | default }}" - kolla_extra_cloudkitty: "{{ kolla_extra_config.cloudkitty | default }}" - kolla_extra_designate: "{{ kolla_extra_config.designate | default }}" - kolla_extra_glance: "{{ kolla_extra_config.glance | default }}" - kolla_extra_global: "{{ kolla_extra_config.global | default }}" - kolla_extra_gnocchi: "{{ kolla_extra_config.gnocchi | default }}" - kolla_extra_grafana: "{{ kolla_extra_config.grafana | default }}" - kolla_extra_heat: "{{ kolla_extra_config.heat | default }}" - kolla_extra_inspector: "{{ kolla_extra_config.inspector | default }}" - kolla_extra_ironic: "{{ kolla_extra_config.ironic | default }}" - kolla_extra_kafka: "{{ kolla_extra_config.kafka | default }}" - kolla_extra_keystone: "{{ kolla_extra_config.keystone | default }}" - kolla_extra_magnum: "{{ kolla_extra_config.magnum | default }}" - kolla_extra_manila: "{{ kolla_extra_config.manila | default }}" - kolla_extra_mariabackup: "{{ kolla_extra_config.mariabackup | default }}" - kolla_extra_mariadb: "{{ kolla_extra_config.mariadb | default }}" - kolla_extra_masakari: "{{ kolla_extra_config.masakari | 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 }}" - kolla_extra_nova: "{{ kolla_extra_config.nova | default }}" - kolla_extra_octavia: "{{ kolla_extra_config.octavia | default }}" - kolla_extra_sahara: "{{ kolla_extra_config.sahara | default }}" - kolla_extra_zookeeper: "{{ kolla_extra_config.zookeeper | default }}" kolla_extra_config_path: "{{ kayobe_env_config_path }}/kolla/config" diff --git a/ansible/roles/dell-switch-bmp/templates/dell-switch-bmp.conf.j2 b/ansible/roles/dell-switch-bmp/templates/dell-switch-bmp.conf.j2 index 068fe3bc2..3f2f5c775 100644 --- a/ansible/roles/dell-switch-bmp/templates/dell-switch-bmp.conf.j2 +++ b/ansible/roles/dell-switch-bmp/templates/dell-switch-bmp.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} # This file provides dnsmasq configuration for Dell Switches using Bare Metal # Provisioning (BMP). diff --git a/ansible/roles/kolla-bifrost/defaults/main.yml b/ansible/roles/kolla-bifrost/defaults/main.yml index 2d4ddb187..585a446ff 100644 --- a/ansible/roles/kolla-bifrost/defaults/main.yml +++ b/ansible/roles/kolla-bifrost/defaults/main.yml @@ -74,5 +74,9 @@ kolla_bifrost_ipa_ramdisk_checksum_algorithm: # Server inventory to be configured in {{ kolla_node_custom_config_path }}/bifrost/servers.yml. kolla_bifrost_servers: {} +# Deprecated. # Free form extra configuration to append to {{ kolla_node_custom_config_path }}/bifrost/bifrost.yml. kolla_bifrost_extra_globals: + +# Path to Kolla Ansible custom configuration. +kolla_bifrost_extra_config_path: diff --git a/ansible/roles/kolla-bifrost/tasks/main.yml b/ansible/roles/kolla-bifrost/tasks/main.yml index 3f199541f..81d471062 100644 --- a/ansible/roles/kolla-bifrost/tasks/main.yml +++ b/ansible/roles/kolla-bifrost/tasks/main.yml @@ -6,8 +6,10 @@ mode: 0750 - name: Ensure the Kolla Bifrost configuration files exist - template: - src: "{{ item.src }}" + merge_yaml: + sources: + - "{{ role_path }}/templates/{{ item.src }}" + - "{{ kolla_bifrost_extra_config_path }}/bifrost/{{ item.dest }}" dest: "{{ kolla_node_custom_config_path }}/bifrost/{{ item.dest }}" mode: 0640 with_items: diff --git a/ansible/roles/kolla-build/tasks/main.yml b/ansible/roles/kolla-build/tasks/main.yml index 08d6a74a2..331cd2a6a 100644 --- a/ansible/roles/kolla-build/tasks/main.yml +++ b/ansible/roles/kolla-build/tasks/main.yml @@ -1,23 +1,14 @@ --- -- name: Check whether a Kolla build extra configuration file exists - local_action: - module: stat - path: "{{ kolla_build_extra_config_path }}" - get_checksum: False - get_md5: False - mime: False - register: stat_result - -- name: Set a fact containing extra configuration - set_fact: - kolla_build_extra_config: "{{ lookup('template', kolla_build_extra_config_path) }}" - when: stat_result.stat.exists - -- name: Ensure the Kolla build configuration files exist - template: - src: "{{ item.src }}" - dest: "{{ kolla_build_config_path }}/{{ item.dest }}" +- name: Ensure the Kolla build configuration file exists + merge_configs: + sources: + - "{{ role_path }}/templates/kolla-build.conf.j2" + - "{{ kolla_build_extra_config_path }}" + dest: "{{ kolla_build_config_path }}/kolla-build.conf" + mode: 0644 + +- name: Ensure the Kolla build template overrides file exists + template: + src: template-override.j2.j2 + dest: "{{ kolla_build_config_path }}/template-override.j2" mode: 0644 - with_items: - - { src: kolla-build.conf.j2, dest: kolla-build.conf } - - { src: template-override.j2.j2, dest: template-override.j2 } diff --git a/ansible/roles/kolla-build/templates/kolla-build.conf.j2 b/ansible/roles/kolla-build/templates/kolla-build.conf.j2 index 18a79be3c..f420f2732 100644 --- a/ansible/roles/kolla-build/templates/kolla-build.conf.j2 +++ b/ansible/roles/kolla-build/templates/kolla-build.conf.j2 @@ -1,4 +1,5 @@ -# {{ ansible_managed }} +# FIXME: doesn't work +# {% raw %}{{ ansible_managed }}{% endraw %} [DEFAULT] diff --git a/ansible/roles/kolla-build/templates/template-override.j2.j2 b/ansible/roles/kolla-build/templates/template-override.j2.j2 index ac8957267..11e239cd1 100644 --- a/ansible/roles/kolla-build/templates/template-override.j2.j2 +++ b/ansible/roles/kolla-build/templates/template-override.j2.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% raw %} {% extends parent_template %} diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml index 975eb78af..f82af5100 100644 --- a/ansible/roles/kolla-openstack/defaults/main.yml +++ b/ansible/roles/kolla-openstack/defaults/main.yml @@ -8,6 +8,7 @@ kolla_node_custom_config_path: /etc/kolla/config ############################################################################### # Global configuration. +# Deprecated: # Free form extra configuration to append to global.conf. kolla_extra_global: @@ -17,6 +18,7 @@ kolla_extra_global: # Whether to enable Aodh. kolla_enable_aodh: +# Deprecated: # Free form extra configuration to append to aodh.conf. kolla_extra_aodh: @@ -26,6 +28,7 @@ kolla_extra_aodh: # Whether to enable Barbican. kolla_enable_barbican: +# Deprecated: # Free form extra configuration to append to barbican.conf. kolla_extra_barbican: @@ -35,6 +38,7 @@ kolla_extra_barbican: # Whether to enable Blazar. kolla_enable_blazar: +# Deprecated: # Free form extra configuration to append to blazar.conf. kolla_extra_blazar: @@ -44,6 +48,7 @@ kolla_extra_blazar: # Whether to enable Ceilometer. kolla_enable_ceilometer: +# Deprecated: # Free form extra configuration to append to ceilometer.conf. kolla_extra_ceilometer: @@ -53,6 +58,7 @@ kolla_extra_ceilometer: # Whether to enable cinder. kolla_enable_cinder: +# Deprecated: # Free form extra configuration to append to cinder.conf. kolla_extra_cinder: @@ -62,6 +68,7 @@ kolla_extra_cinder: # Whether to enable CloudKitty. kolla_enable_cloudkitty: +# Deprecated: # Free form extra configuration to append to cloudkitty.conf. kolla_extra_cloudkitty: @@ -71,6 +78,7 @@ kolla_extra_cloudkitty: # Whether to enable designate. kolla_enable_designate: +# Deprecated: # Free form extra configuration to append to designate.conf. kolla_extra_designate: @@ -86,6 +94,7 @@ kolla_enable_elasticsearch: # Whether to enable Glance. kolla_enable_glance: +# Deprecated: # Free form extra configuration to append to glance-api.conf and # glance-registry.conf. kolla_extra_glance: @@ -96,6 +105,7 @@ kolla_extra_glance: # Whether to enable Gnocchi. kolla_enable_gnocchi: +# Deprecated: # Free form extra configuration to append to gnocchi.conf. kolla_extra_gnocchi: @@ -108,6 +118,7 @@ kolla_enable_grafana: # Name of the admin user for Grafana. grafana_local_admin_user_name: +# Deprecated: # Free form extra configuration to append to grafana.ini. kolla_extra_grafana: @@ -123,6 +134,7 @@ kolla_enable_haproxy: # Whether to enable Keystone. kolla_enable_keystone: +# Deprecated: # Free form extra configuration to append to Keystone.conf kolla_extra_keystone: @@ -132,6 +144,7 @@ kolla_extra_keystone: # Whether to enable Heat. kolla_enable_heat: +# Deprecated: # Free form extra configuration to append to heat.conf. kolla_extra_heat: @@ -262,6 +275,7 @@ kolla_ironic_provisioning_network: # List of additional append parameters for baremetal PXE boot. kolla_ironic_pxe_append_params: [] +# Deprecated: # Free form extra configuration to append to ironic.conf. kolla_extra_ironic: @@ -326,6 +340,7 @@ kolla_inspector_enable_swift: # store. kolla_inspector_swift_auth: {} +# Deprecated: # Free form extra configuration to append to ironic-inspector.conf. kolla_extra_inspector: @@ -335,6 +350,7 @@ kolla_extra_inspector: # Whether to enable Kafka. kolla_enable_kafka: +# Deprecated: # Free form extra configuration to append to kafka.server.properties. kolla_extra_kafka: @@ -344,6 +360,7 @@ kolla_extra_kafka: # Whether to enable Magnum. kolla_enable_magnum: +# Deprecated: # Free form extra configuration to append to magnum.conf. kolla_extra_magnum: @@ -353,6 +370,7 @@ kolla_extra_magnum: # Whether to enable Mariabackup. kolla_enable_mariabackup: +# Deprecated: # Free form extra configuration to append to backup.my.cnf. kolla_extra_mariabackup: @@ -362,6 +380,7 @@ kolla_extra_mariabackup: # Whether to enable MariaDB. kolla_enable_mariadb: +# Deprecated: # Free form extra configuration to append to galera.cnf. kolla_extra_mariadb: @@ -371,12 +390,17 @@ kolla_extra_mariadb: # Whether to enable Manila. kolla_enable_manila: +# Deprecated: +# Free form extra configuration to append to manila.conf. +kolla_extra_manila: + ############################################################################### # Masakari configuration. # Whether to enable Masakari. kolla_enable_masakari: +# Deprecated: # Free form extra configuration to append to masakari.conf. kolla_extra_masakari: @@ -392,6 +416,7 @@ kolla_enable_monasca: # Whether to enable Murano. kolla_enable_murano: +# Deprecated: # Free form extra configuration to append to murano.conf. kolla_extra_murano: @@ -435,9 +460,11 @@ kolla_neutron_ml2_generic_switches: [] # secret: not currently supported kolla_neutron_ml2_generic_switch_hosts: [] +# Deprecated: # Free form extra configuration to append to neutron.conf. kolla_extra_neutron: +# Deprecated: # Free form extra configuration to append to ml2_conf.ini. kolla_extra_neutron_ml2: @@ -447,6 +474,7 @@ kolla_extra_neutron_ml2: # Whether to enable Nova. kolla_enable_nova: +# Deprecated: # Free form extra configuration to append to nova.conf. kolla_extra_nova: @@ -456,6 +484,10 @@ kolla_extra_nova: # Whether to enable Octavia. kolla_enable_octavia: +# Deprecated: +# Free form extra configuration to append to octavia.conf +kolla_extra_octavia: + ############################################################################### # Prometheus configuration. @@ -468,6 +500,7 @@ kolla_enable_prometheus: # Whether to enable sahara. kolla_enable_sahara: +# Deprecated: # Free form extra configuration to append to sahara.conf. kolla_extra_sahara: @@ -489,5 +522,6 @@ kolla_enable_swift: # Whether to enable Zookeeper. kolla_enable_zookeeper: +# Deprecated: # Free form extra configuration to append to zookeeper.cfg. kolla_extra_zookeeper: diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml index 9d00c8284..e1b34facf 100644 --- a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml +++ b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml @@ -15,125 +15,42 @@ provisioner: inventory: group_vars: all: - kolla_extra_config_path: + kolla_extra_config_path: ${MOLECULE_TEMP_PATH:-/tmp} kolla_enable_aodh: true - kolla_extra_aodh: | - [extra-aodh.conf] - foo=bar kolla_enable_barbican: true - kolla_extra_barbican: | - [extra-barbican.conf] - foo=bar kolla_enable_blazar: true - kolla_extra_blazar: | - [extra-blazar.conf] - foo=bar kolla_enable_ceilometer: true - kolla_extra_ceilometer: | - [extra-ceilometer.conf] - foo=bar kolla_enable_cinder: true - kolla_extra_cinder: | - [extra-cinder.conf] - foo=bar kolla_enable_cloudkitty: true - kolla_extra_cloudkitty: | - [extra-cloudkitty.conf] - foo=bar kolla_enable_designate: true - kolla_extra_designate: | - [extra-designate.conf] - foo=bar kolla_enable_elasticsearch: true kolla_enable_glance: true - kolla_extra_glance: | - [extra-glance.conf] - foo=bar - kolla_extra_global: | - [extra-global.conf] kolla_enable_gnocchi: true - kolla_extra_gnocchi: | - [extra-gnocchi.conf] - foo=bar kolla_enable_grafana: true - kolla_extra_grafana: | - [extra-grafana.ini] - foo=bar kolla_enable_haproxy: true kolla_enable_heat: true - kolla_extra_heat: | - [extra-heat.conf] - foo=bar kolla_enable_horizon: true kolla_enable_influxdb: true kolla_enable_ironic: true - kolla_extra_ironic: | - [extra-ironic.conf] - foo=bar - kolla_extra_inspector: | - [extra-ironic-inspector.conf] - foo=bar kolla_inspector_ipa_kernel_path: ${MOLECULE_TEMP_PATH:-/tmp}/ironic-agent.kernel kolla_inspector_ipa_ramdisk_path: ${MOLECULE_TEMP_PATH:-/tmp}/ironic-agent.initramfs kolla_enable_kafka: true - kolla_extra_kafka: | - [extra-kafka.server.properties] - foo=bar kolla_enable_keystone: true - kolla_extra_keystone: | - [extra-keystone.conf] - foo=bar kolla_enable_magnum: true - kolla_extra_magnum: | - [extra-magnum.conf] - foo=bar kolla_enable_manila: true - kolla_extra_manila: | - [extra-manila.conf] - foo=bar kolla_enable_mariabackup: true - kolla_extra_mariabackup: | - [extra-backup.my.cnf] - foo=bar kolla_enable_mariadb: true - kolla_extra_mariadb: | - [extra-galera.cnf] - foo=bar kolla_enable_masakari: true - kolla_extra_masakari: | - [extra-masakari.conf] - foo=bar kolla_enable_monasca: true kolla_enable_murano: true - kolla_extra_murano: | - [extra-murano.conf] - foo=bar kolla_enable_neutron: true - kolla_extra_neutron: | - [extra-neutron.conf] - foo=bar - kolla_extra_neutron_ml2: | - [extra-ml2_conf.ini] - foo=bar kolla_enable_nova: true - kolla_extra_nova: | - [extra-nova.conf] - foo=bar kolla_enable_octavia: true - kolla_extra_octavia: | - [extra-octavia.conf] - foo=bar kolla_enable_prometheus: true kolla_enable_sahara: true - kolla_extra_sahara: | - [extra-sahara.conf] - foo=bar kolla_enable_swift: true kolla_enable_storm: true kolla_enable_zookeeper: true - kolla_extra_zookeeper: | - [extra-zookeeper.cfg] - foo=bar lint: name: ansible-lint scenario: diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/prepare.yml b/ansible/roles/kolla-openstack/molecule/enable-everything/prepare.yml index d78cc6940..587ecac5f 100644 --- a/ansible/roles/kolla-openstack/molecule/enable-everything/prepare.yml +++ b/ansible/roles/kolla-openstack/molecule/enable-everything/prepare.yml @@ -25,3 +25,51 @@ with_items: - "{{ kolla_inspector_ipa_kernel_path }}" - "{{ kolla_inspector_ipa_ramdisk_path }}" + + - name: Ensure parent directories of configuration files exist + file: + path: "{{ kolla_extra_config_path }}/{{ item }}" + state: directory + recurse: yes + delegate_to: localhost + run_once: true + with_items: + - neutron + + - name: Ensure extra configuration files exist + copy: + content: | + [extra-{{ item | basename }}] + foo=bar + dest: "{{ kolla_extra_config_path }}/{{ item }}" + run_once: true + delegate_to: localhost + loop: + - aodh.conf + - barbican.conf + - blazar.conf + - ceilometer.conf + - cinder.conf + - cloudkitty.conf + - designate.conf + - glance.conf + - global.conf + - gnocchi.conf + - grafana.ini + - heat.conf + - ironic.conf + - ironic-inspector.conf + - kafka.server.properties + - keystone.conf + - magnum.conf + - manila.conf + - murano.conf + - backup.my.cnf + - galera.cnf + - masakari.conf + - neutron.conf + - neutron/ml2_conf.ini + - nova.conf + - octavia.conf + - sahara.conf + - zookeeper.cfg diff --git a/ansible/roles/kolla-openstack/tasks/config.yml b/ansible/roles/kolla-openstack/tasks/config.yml index 37c146760..1cd2acbdf 100644 --- a/ansible/roles/kolla-openstack/tasks/config.yml +++ b/ansible/roles/kolla-openstack/tasks/config.yml @@ -7,9 +7,12 @@ with_items: "{{ kolla_openstack_custom_config }}" when: item.enabled | bool +# TODO: are these all INI? - name: Ensure the Kolla OpenStack configuration files exist - template: - src: "{{ item.src }}" + merge_configs: + sources: + - "{{ role_path }}/templates/{{ item.src }}" + - "{{ kolla_extra_config_path }}/{{ item.dest }}" dest: "{{ kolla_node_custom_config_path }}/{{ item.dest }}" mode: 0640 with_items: @@ -91,8 +94,9 @@ file: path: "{{ item.0.item.dest }}/{{ item.1.path | relpath(item.0.item.src) | dirname }}" recurse: true + # NOTE(wszumski): Recurse mode with mode changes permissions of files too which + # breaks idempotency. state: directory - mode: 0750 with_subelements: - "{{ find_src_result.results }}" - files diff --git a/ansible/roles/kolla-openstack/templates/aodh.conf.j2 b/ansible/roles/kolla-openstack/templates/aodh.conf.j2 index 5d7d4c1e0..6d19d3363 100644 --- a/ansible/roles/kolla-openstack/templates/aodh.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/aodh.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_aodh %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/backup.my.cnf.j2 b/ansible/roles/kolla-openstack/templates/backup.my.cnf.j2 index 7213d824d..3c7e64508 100644 --- a/ansible/roles/kolla-openstack/templates/backup.my.cnf.j2 +++ b/ansible/roles/kolla-openstack/templates/backup.my.cnf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_mariabackup %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/barbican.conf.j2 b/ansible/roles/kolla-openstack/templates/barbican.conf.j2 index 2a33517a8..2775e237c 100644 --- a/ansible/roles/kolla-openstack/templates/barbican.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/barbican.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_barbican %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/blazar.conf.j2 b/ansible/roles/kolla-openstack/templates/blazar.conf.j2 index aab01021d..3e5c2cdc1 100644 --- a/ansible/roles/kolla-openstack/templates/blazar.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/blazar.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_blazar %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/ceilometer.conf.j2 b/ansible/roles/kolla-openstack/templates/ceilometer.conf.j2 index 5a9187e19..b8423d1cb 100644 --- a/ansible/roles/kolla-openstack/templates/ceilometer.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/ceilometer.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_ceilometer %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/cinder.conf.j2 b/ansible/roles/kolla-openstack/templates/cinder.conf.j2 index 9acf122df..170ccbc0a 100644 --- a/ansible/roles/kolla-openstack/templates/cinder.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/cinder.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_cinder %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/cloudkitty.conf.j2 b/ansible/roles/kolla-openstack/templates/cloudkitty.conf.j2 index 75929ef15..9cebdd71b 100644 --- a/ansible/roles/kolla-openstack/templates/cloudkitty.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/cloudkitty.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_cloudkitty %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/designate.conf.j2 b/ansible/roles/kolla-openstack/templates/designate.conf.j2 index 96386b077..bcf7f8774 100644 --- a/ansible/roles/kolla-openstack/templates/designate.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/designate.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_designate %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/galera.cnf.j2 b/ansible/roles/kolla-openstack/templates/galera.cnf.j2 index 55122ebb0..6c981d49e 100644 --- a/ansible/roles/kolla-openstack/templates/galera.cnf.j2 +++ b/ansible/roles/kolla-openstack/templates/galera.cnf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_mariadb %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/glance.conf.j2 b/ansible/roles/kolla-openstack/templates/glance.conf.j2 index cf4c9de77..42efe83ec 100644 --- a/ansible/roles/kolla-openstack/templates/glance.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/glance.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_enable_swift | bool %} [glance_store] diff --git a/ansible/roles/kolla-openstack/templates/global.conf.j2 b/ansible/roles/kolla-openstack/templates/global.conf.j2 index 5b27f3623..519a3fe29 100644 --- a/ansible/roles/kolla-openstack/templates/global.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/global.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_global %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/gnocchi.conf.j2 b/ansible/roles/kolla-openstack/templates/gnocchi.conf.j2 index a9781dfca..4f4bf5979 100644 --- a/ansible/roles/kolla-openstack/templates/gnocchi.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/gnocchi.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_gnocchi %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/grafana.ini.j2 b/ansible/roles/kolla-openstack/templates/grafana.ini.j2 index d1c34be6a..fbfbabaf0 100644 --- a/ansible/roles/kolla-openstack/templates/grafana.ini.j2 +++ b/ansible/roles/kolla-openstack/templates/grafana.ini.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_grafana %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/heat.conf.j2 b/ansible/roles/kolla-openstack/templates/heat.conf.j2 index 586fcc32a..8d7715c58 100644 --- a/ansible/roles/kolla-openstack/templates/heat.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/heat.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_heat %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/ironic.conf.j2 b/ansible/roles/kolla-openstack/templates/ironic.conf.j2 index 17c869ed5..111c325bf 100644 --- a/ansible/roles/kolla-openstack/templates/ironic.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/ironic.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} [DEFAULT] enabled_hardware_types: {{ kolla_ironic_enabled_hardware_types | join(',') }} diff --git a/ansible/roles/kolla-openstack/templates/kafka.server.properties.j2 b/ansible/roles/kolla-openstack/templates/kafka.server.properties.j2 index 12d0dac24..03b3b397c 100644 --- a/ansible/roles/kolla-openstack/templates/kafka.server.properties.j2 +++ b/ansible/roles/kolla-openstack/templates/kafka.server.properties.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_kafka %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/keystone.conf.j2 b/ansible/roles/kolla-openstack/templates/keystone.conf.j2 index 753e98bb8..840267acc 100644 --- a/ansible/roles/kolla-openstack/templates/keystone.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/keystone.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_keystone %} ####################### # Extra configuration diff --git a/ansible/roles/kolla-openstack/templates/magnum.conf.j2 b/ansible/roles/kolla-openstack/templates/magnum.conf.j2 index 03e40fc9e..b06c6d3bd 100644 --- a/ansible/roles/kolla-openstack/templates/magnum.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/magnum.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_magnum %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/manila.conf.j2 b/ansible/roles/kolla-openstack/templates/manila.conf.j2 index 63faff851..c1571bbfc 100644 --- a/ansible/roles/kolla-openstack/templates/manila.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/manila.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_manila %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/masakari.conf.j2 b/ansible/roles/kolla-openstack/templates/masakari.conf.j2 index 5a6848c8f..d88c4300e 100644 --- a/ansible/roles/kolla-openstack/templates/masakari.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/masakari.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_masakari %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/ml2_conf.ini.j2 b/ansible/roles/kolla-openstack/templates/ml2_conf.ini.j2 index 1e49ae17a..769d9d548 100644 --- a/ansible/roles/kolla-openstack/templates/ml2_conf.ini.j2 +++ b/ansible/roles/kolla-openstack/templates/ml2_conf.ini.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} [ml2] {% if kolla_neutron_ml2_mechanism_drivers %} diff --git a/ansible/roles/kolla-openstack/templates/murano.conf.j2 b/ansible/roles/kolla-openstack/templates/murano.conf.j2 index 5d6af4b97..20f632bef 100644 --- a/ansible/roles/kolla-openstack/templates/murano.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/murano.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_murano %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/neutron.conf.j2 b/ansible/roles/kolla-openstack/templates/neutron.conf.j2 index 1cf183d8f..3dff3d90c 100644 --- a/ansible/roles/kolla-openstack/templates/neutron.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/neutron.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_neutron %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/nova.conf.j2 b/ansible/roles/kolla-openstack/templates/nova.conf.j2 index 772261a59..861f41b55 100644 --- a/ansible/roles/kolla-openstack/templates/nova.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/nova.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_nova %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/octavia.conf.j2 b/ansible/roles/kolla-openstack/templates/octavia.conf.j2 index 4210d8485..6ffb92c05 100644 --- a/ansible/roles/kolla-openstack/templates/octavia.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/octavia.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_octavia %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/sahara.conf.j2 b/ansible/roles/kolla-openstack/templates/sahara.conf.j2 index 995cfe9bb..a4f8d07f6 100644 --- a/ansible/roles/kolla-openstack/templates/sahara.conf.j2 +++ b/ansible/roles/kolla-openstack/templates/sahara.conf.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_sahara %} ####################### diff --git a/ansible/roles/kolla-openstack/templates/zookeeper.cfg.j2 b/ansible/roles/kolla-openstack/templates/zookeeper.cfg.j2 index 08bdc8aa2..dac459a6c 100644 --- a/ansible/roles/kolla-openstack/templates/zookeeper.cfg.j2 +++ b/ansible/roles/kolla-openstack/templates/zookeeper.cfg.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% if kolla_extra_zookeeper %} ####################### diff --git a/ansible/roles/public-openrc/templates/public-openrc.sh.j2 b/ansible/roles/public-openrc/templates/public-openrc.sh.j2 index d0356e800..e58f7f32e 100644 --- a/ansible/roles/public-openrc/templates/public-openrc.sh.j2 +++ b/ansible/roles/public-openrc/templates/public-openrc.sh.j2 @@ -1,4 +1,4 @@ -# {{ ansible_managed }} +# {% raw %}{{ ansible_managed }}{% endraw %} {% for line in (admin_openrc.content | b64decode).splitlines() %} {% if "export OS_AUTH_URL" in line %} diff --git a/tools/test-molecule.sh b/tools/test-molecule.sh index 41b9f8a77..e36b8f789 100755 --- a/tools/test-molecule.sh +++ b/tools/test-molecule.sh @@ -7,6 +7,11 @@ set -e molecules="$(find ansible/roles/ -name molecule -type d)" +PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# FIXME: doesn't get passed through to linter. +export ANSIBLE_ACTION_PLUGINS="$PARENT/../kayobe/plugins/action:~/.ansible/plugins/action:/usr/share/ansible/plugins/action" + failed=0 ran=0 for molecule in $molecules; do diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index b9e7f2179..1da00728f 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -1,26 +1,11 @@ --- - project: - templates: - - openstack-cover-jobs - - openstack-python3-xena-jobs - - publish-openstack-docs-pti - - release-notes-jobs-python3 check: jobs: - kayobe-tox-ansible-syntax - kayobe-tox-ansible - kayobe-tox-molecule - kayobe-overcloud-centos8s - - kayobe-overcloud-ubuntu-focal - - kayobe-overcloud-tls-centos8s - - kayobe-overcloud-host-configure-centos8s - - kayobe-overcloud-host-configure-ubuntu-focal - - kayobe-overcloud-upgrade-centos8s - - kayobe-seed-centos8s - - kayobe-seed-ubuntu-focal - - kayobe-seed-upgrade-centos8s - - kayobe-seed-vm-centos8s - - kayobe-seed-vm-ubuntu-focal gate: queue: kayobe