From d8ee0fa027140fb8a7504bd6685b6dcdfe3ac8fe Mon Sep 17 00:00:00 2001 From: Ross Martyn Date: Thu, 4 Apr 2019 11:46:22 +0100 Subject: [PATCH] Multiple updates for Kayobe --- 1. Gather facts for localhost in kolla-ansible.yml 2. Don't include unconfigured networks in network_interfaces 3. Added Keystone configuration extra config merge --- 1. Facts are necessary for the kolla-ansible role, which references the ansible_user_uid fact 2. It is possible to skip configuring a network, by setting its name to None This is done in networks.yml as follows: admin_oc_net_name: Currently, these networks may still be included in the 'network_interfaces' list for each host, despite the fact that they are not in use. A classic example is when ironic is not enabled, it is currently still necessary to define provisioning and cleaning networks. This change avoids including any networks that have their name set to None in network_interfaces. 3. Added support for Keystone custom configuration Added tests and documentation to add support for keystone extra configuration Co-Authored-By: Mark Goddard {{ (compute_default_network_interfaces + - compute_extra_network_interfaces) | unique | list }} + compute_extra_network_interfaces) | reject('none') | unique | list }} # List of default networks to which compute nodes are attached. compute_default_network_interfaces: > diff --git a/ansible/group_vars/all/controllers b/ansible/group_vars/all/controllers index b8ef9f05f..4d278a911 100644 --- a/ansible/group_vars/all/controllers +++ b/ansible/group_vars/all/controllers @@ -14,7 +14,7 @@ controller_network_interfaces: > {{ (controller_default_network_interfaces + controller_extra_network_interfaces + (controller_network_host_network_interfaces - if inventory_hostname in groups['network'] else [])) | unique | list }} + if inventory_hostname in groups['network'] else [])) | reject('none') | unique | list }} # List of default networks to which controller nodes are attached. controller_default_network_interfaces: > @@ -36,7 +36,7 @@ controller_extra_network_interfaces: [] controller_network_host_network_interfaces: > {{ ([public_net_name, tunnel_net_name] + - external_net_names) | unique | list }} + external_net_names) | reject('none') | unique | list }} ############################################################################### # Controller node BIOS configuration. diff --git a/ansible/group_vars/all/monitoring b/ansible/group_vars/all/monitoring index b89bd340c..d03e4f2ae 100644 --- a/ansible/group_vars/all/monitoring +++ b/ansible/group_vars/all/monitoring @@ -14,13 +14,13 @@ monitoring_network_interfaces: > {{ controller_network_interfaces | unique | list if inventory_hostname in groups['controllers'] else (monitoring_default_network_interfaces + - monitoring_extra_network_interfaces) | unique | list }} + monitoring_extra_network_interfaces) | reject('none') | unique | list }} # List of default networks to which monitoring nodes are attached. monitoring_default_network_interfaces: > {{ [admin_oc_net_name, internal_net_name, - public_net_name] | unique | list }} + public_net_name] | reject('none') | unique | list }} # List of extra networks to which monitoring nodes are attached. monitoring_extra_network_interfaces: [] diff --git a/ansible/group_vars/all/seed b/ansible/group_vars/all/seed index 12620ae79..b53b1dbaf 100644 --- a/ansible/group_vars/all/seed +++ b/ansible/group_vars/all/seed @@ -12,13 +12,13 @@ seed_bootstrap_user: "{{ lookup('env', 'USER') }}" # List of networks to which seed nodes are attached. seed_network_interfaces: > {{ (seed_default_network_interfaces + - seed_extra_network_interfaces) | unique | list }} + seed_extra_network_interfaces) | reject('none') | unique | list }} # List of default networks to which seed nodes are attached. seed_default_network_interfaces: > {{ [admin_oc_net_name, oob_oc_net_name, - provision_oc_net_name] | unique | list }} + provision_oc_net_name] | reject('none') | unique | list }} # List of extra networks to which seed nodes are attached. seed_extra_network_interfaces: [] diff --git a/ansible/group_vars/all/seed-hypervisor b/ansible/group_vars/all/seed-hypervisor index 506b4dbfe..0cacd4375 100644 --- a/ansible/group_vars/all/seed-hypervisor +++ b/ansible/group_vars/all/seed-hypervisor @@ -12,7 +12,7 @@ seed_hypervisor_bootstrap_user: "{{ lookup('env', 'USER') }}" # List of networks to which seed hypervisor nodes are attached. seed_hypervisor_network_interfaces: > {{ (seed_hypervisor_default_network_interfaces + - seed_hypervisor_extra_network_interfaces) | unique | list }} + seed_hypervisor_extra_network_interfaces) | reject('none') | unique | list }} # List of default networks to which seed hypervisor nodes are attached. seed_hypervisor_default_network_interfaces: "{{ seed_default_network_interfaces }}" diff --git a/ansible/group_vars/all/storage b/ansible/group_vars/all/storage index d80572e0e..3deb1f3b3 100644 --- a/ansible/group_vars/all/storage +++ b/ansible/group_vars/all/storage @@ -27,7 +27,7 @@ storage_default_network_interfaces: > {{ [admin_oc_net_name, internal_net_name, storage_mgmt_net_name, - storage_net_name] | unique | list }} + storage_net_name] | reject('none') | unique | list }} # List of extra networks to which storage nodes are attached. storage_extra_network_interfaces: [] diff --git a/ansible/kolla-ansible.yml b/ansible/kolla-ansible.yml index 580c823cd..ca9b85d71 100644 --- a/ansible/kolla-ansible.yml +++ b/ansible/kolla-ansible.yml @@ -213,6 +213,7 @@ hosts: localhost tags: - kolla-ansible + gather_facts: true vars: # We need to reference configuration for the network node. # We pick the first host from the group for this. It is possible that at diff --git a/ansible/kolla-openstack.yml b/ansible/kolla-openstack.yml index dfeabbabf..e093406f5 100644 --- a/ansible/kolla-openstack.yml +++ b/ansible/kolla-openstack.yml @@ -109,6 +109,7 @@ - { 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: mariadb, file: galera.cnf } @@ -212,6 +213,7 @@ 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_mariadb: "{{ kolla_extra_config.mariadb | default }}" diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml index dc5e3ebe9..368be6065 100644 --- a/ansible/roles/kolla-openstack/defaults/main.yml +++ b/ansible/roles/kolla-openstack/defaults/main.yml @@ -67,6 +67,15 @@ kolla_extra_grafana: kolla_enable_haproxy: ############################################################################### +# Keystone configuration. + +# Whether to enable Keystone. +kolla_enable_keystone: + +# Free form extra configuration to append to Keystone.conf +kolla_extra_keystone: + +############################################################################## # Heat configuration. # Whether to enable Heat. diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml index e36cb7b33..547745b98 100644 --- a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml +++ b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml @@ -54,6 +54,10 @@ provisioner: 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] 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 a8d224ef7..2766f2525 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 @@ -69,6 +69,7 @@ def test_service_config_directory(host, path): 'ironic.conf', 'ironic-inspector.conf', 'kafka.server.properties', + 'keystone.conf', 'magnum.conf', 'manila.conf', 'neutron/ml2_conf.ini', diff --git a/ansible/roles/kolla-openstack/tasks/config.yml b/ansible/roles/kolla-openstack/tasks/config.yml index 374b0660b..324543d4a 100644 --- a/ansible/roles/kolla-openstack/tasks/config.yml +++ b/ansible/roles/kolla-openstack/tasks/config.yml @@ -23,6 +23,7 @@ - { src: ironic.conf.j2, dest: ironic.conf, enabled: "{{ kolla_enable_ironic }}" } - { src: ironic-inspector.conf.j2, dest: ironic-inspector.conf, enabled: "{{ kolla_enable_ironic }}" } - { src: kafka.server.properties.j2, dest: kafka.server.properties, enabled: "{{ kolla_enable_kafka }}" } + - { src: keystone.conf.j2, dest: keystone.conf, enabled: "{{ kolla_enable_keystone }}" } - { src: magnum.conf.j2, dest: magnum.conf, enabled: "{{ kolla_enable_magnum }}" } - { src: manila.conf.j2, dest: manila.conf, enabled: "{{ kolla_enable_manila }}" } - { src: ml2_conf.ini.j2, dest: neutron/ml2_conf.ini, enabled: "{{ kolla_enable_neutron }}" } diff --git a/ansible/roles/kolla-openstack/templates/keystone.conf.j2 b/ansible/roles/kolla-openstack/templates/keystone.conf.j2 new file mode 100644 index 000000000..753e98bb8 --- /dev/null +++ b/ansible/roles/kolla-openstack/templates/keystone.conf.j2 @@ -0,0 +1,8 @@ +# {{ ansible_managed }} +{% if kolla_extra_keystone %} +####################### +# Extra configuration +####################### +{{ kolla_extra_keystone }} +{% endif %} + diff --git a/doc/source/configuration/kolla-ansible.rst b/doc/source/configuration/kolla-ansible.rst index d32a8964d..650d39230 100644 --- a/doc/source/configuration/kolla-ansible.rst +++ b/doc/source/configuration/kolla-ansible.rst @@ -173,6 +173,7 @@ which files are supported. ``kafka.server.properties`` Kafka configuration. ``kafka/*`` Extended Kafka configuration. ``keepalived/*`` Extended keepalived configuration. + ``keystone.conf`` Keystone configuration. ``keystone/*`` Extended keystone configuration. ``magnum.conf`` Magnum configuration. ``magnum/*`` Extended magnum configuration. diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index aa3f4ffe2..9669f0d22 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -195,6 +195,7 @@ #kolla_enable_ironic_pxe_uefi: #kolla_enable_iscsid: #kolla_enable_karbor: +#kolla_enable_keystone: #kolla_enable_kuryr: #kolla_enable_magnum: #kolla_enable_manila: diff --git a/releasenotes/notes/ignore-unconfigured-nets-93beaf96f43af1ed.yaml b/releasenotes/notes/ignore-unconfigured-nets-93beaf96f43af1ed.yaml new file mode 100644 index 000000000..cfb046da8 --- /dev/null +++ b/releasenotes/notes/ignore-unconfigured-nets-93beaf96f43af1ed.yaml @@ -0,0 +1,9 @@ +--- +features: + - | + Adds support for skipping configuration of a network, by setting its name + to ``None``. This is done in ``networks.yml`` as follows:: + + admin_oc_net_name: + - | + Adds support for custom configuration of ``keystone.conf``.