Resolve invalid chars in groups
Since ansible 2.8, usage of dashes in group names is against convention, so by default Ansible issues a warning for such group names. This patch aims to finaly rename groups for all new deployments, while making the transition for existing ones as smooth as possible. For existing deployments old defenitions will be respected, and a new set of groups produced. It's up do operators to perform the clean up of old groups. We also change the value of ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS to show the warning, but konvert groups names to the new format. This is needed to ensure roles and playbooks will have expected group names in them, even though this may affect negatively cases, where OSA deploy hosts are also being used for internal operations. Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-plugins/+/978458 Change-Id: I94907bcce7947df48f8cd19c3a79a8c7242dbc2d Signed-off-by: Dmitriy Rabotyagov <dmitriy.rabotyagov@cleura.com>
This commit is contained in:
@@ -467,7 +467,7 @@ Assuming, you currently have a config like the one below in your
|
||||
control03:
|
||||
ip: 172.29.236.13
|
||||
|
||||
shared-infra_hosts: *control_hosts
|
||||
shared_infra_hosts: *control_hosts
|
||||
|
||||
Convert it to something like this:
|
||||
|
||||
@@ -494,7 +494,7 @@ Convert it to something like this:
|
||||
ip: 172.29.236.23
|
||||
|
||||
In the example above we de-couple each service that is part of the
|
||||
`shared-infra_hosts` and define them separately, along with providing MariaDB
|
||||
`shared_infra_hosts` and define them separately, along with providing MariaDB
|
||||
its new destination host.
|
||||
|
||||
* Create the container on the new infra node:
|
||||
@@ -586,7 +586,7 @@ this:
|
||||
|
||||
.. note::
|
||||
|
||||
Ensure that you don’t have more generic shared-infra_hosts defined.
|
||||
Ensure that you don’t have more generic shared_infra_hosts defined.
|
||||
|
||||
Now we need to manually re-generate the inventory and ensure that a new
|
||||
record was mapped to our infra01:
|
||||
|
||||
@@ -99,7 +99,7 @@ Example:
|
||||
|
||||
.. code-block:: shell-session
|
||||
|
||||
# openstack-ansible haproxy-install.yml --tags haproxy-service-config
|
||||
# openstack-ansible openstack.osa.haproxy --tags haproxy-service-config
|
||||
|
||||
ceph
|
||||
----
|
||||
@@ -112,7 +112,7 @@ Example:
|
||||
|
||||
.. code-block:: shell-session
|
||||
|
||||
# openstack-ansible ceph-install.yml --tags ceph
|
||||
# openstack-ansible openstack.osa.ceph_install --tags ceph
|
||||
|
||||
uwsgi
|
||||
-----
|
||||
|
||||
@@ -72,7 +72,7 @@ host.
|
||||
|
||||
The configuration in the ``openstack_user_config.yml`` file defines which hosts
|
||||
run the containers and services deployed by OpenStack-Ansible. For
|
||||
example, hosts listed in the ``shared-infra_hosts`` section run containers for
|
||||
example, hosts listed in the ``shared_infra_hosts`` section run containers for
|
||||
many of the shared services that your OpenStack environment requires. Some of
|
||||
these services include databases, Memcached, and RabbitMQ. Several other
|
||||
host types contain other types of containers, and all of these are listed
|
||||
@@ -111,11 +111,11 @@ the br-mgmt container management bridge on each target host.
|
||||
br-mgmt interface, please, refer to the `guide <https://docs.openstack.org/openstack-ansible/latest/reference/inventory/configure-inventory.html#having-ssh-network-different-from-openstack-management-network>`_.
|
||||
|
||||
#. Configure a list containing at least three infrastructure
|
||||
target hosts in the ``shared-infra_hosts`` section:
|
||||
target hosts in the ``shared_infra_hosts`` section:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
infra01:
|
||||
ip: INFRA01_IP_ADDRESS
|
||||
infra02:
|
||||
@@ -139,25 +139,25 @@ the br-mgmt container management bridge on each target host.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
network-infra_hosts:
|
||||
network_infra_hosts:
|
||||
infra01:
|
||||
ip: INFRA01_IP_ADDRESS
|
||||
infra02: ...
|
||||
|
||||
network-northd_hosts:
|
||||
network_northd_hosts:
|
||||
infra01:
|
||||
ip: INFRA01_IP_ADDRESS
|
||||
infra02: ...
|
||||
|
||||
When deploying OpenStack with OVN, it's essential to properly configure
|
||||
``network-gateway_hosts`` depending on your network architecture. There are
|
||||
``network_gateway_hosts`` depending on your network architecture. There are
|
||||
two typical scenarios:
|
||||
|
||||
Scenario 1: DVR with gateway on compute nodes:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
network-gateway_hosts:
|
||||
network_gateway_hosts:
|
||||
compute01:
|
||||
ip: COMPUTE01_IP_ADDRESS
|
||||
compute02: ...
|
||||
@@ -166,7 +166,7 @@ the br-mgmt container management bridge on each target host.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
network-gateway_hosts:
|
||||
network_gateway_hosts:
|
||||
network01:
|
||||
ip: NETWORK01_IP_ADDRESS
|
||||
network02: ...
|
||||
@@ -182,11 +182,11 @@ the br-mgmt container management bridge on each target host.
|
||||
compute02: ...
|
||||
|
||||
#. Configure a list containing at least one repository target host in
|
||||
the ``repo-infra_hosts`` section:
|
||||
the ``repo_infra_hosts`` section:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
repo-infra_hosts:
|
||||
repo_infra_hosts:
|
||||
infra01:
|
||||
ip: INFRA01_IP_ADDRESS
|
||||
infra02:
|
||||
|
||||
@@ -180,32 +180,32 @@ In order to achieve that we need:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
az1-infra_hosts: &infra_az1
|
||||
az1_infra_hosts: &infra_az1
|
||||
az1-infra1:
|
||||
ip: 172.39.123.11
|
||||
|
||||
az2-infra_hosts: &infra_az2
|
||||
az2_infra_hosts: &infra_az2
|
||||
az2-infra2:
|
||||
ip: 172.39.123.12
|
||||
|
||||
az3-infra_hosts: &infra_az3
|
||||
az3_infra_hosts: &infra_az3
|
||||
az3-infra3:
|
||||
ip: 172.39.123.13
|
||||
|
||||
shared-infra_hosts: &controllers
|
||||
shared_infra_hosts: &controllers
|
||||
<<: *infra_az1
|
||||
<<: *infra_az2
|
||||
<<: *infra_az3
|
||||
|
||||
az1-compute_hosts: &computes_az1
|
||||
az1_compute_hosts: &computes_az1
|
||||
az1-compute01:
|
||||
ip: 172.39.123.100
|
||||
|
||||
az2-compute_hosts: &computes_az2
|
||||
az2_compute_hosts: &computes_az2
|
||||
az2-compute01:
|
||||
ip: 172.39.123.150
|
||||
|
||||
az3-compute_hosts: &computes_az3
|
||||
az3_compute_hosts: &computes_az3
|
||||
az3-compute01:
|
||||
ip: 172.39.123.200
|
||||
|
||||
@@ -281,12 +281,12 @@ When OpenStack-Ansible generates its dynamic inventory, the affinity
|
||||
setting determines how many containers of a similar type are deployed on a
|
||||
single physical host.
|
||||
|
||||
Using ``shared-infra_hosts`` as an example, consider this
|
||||
Using ``shared_infra_hosts`` as an example, consider this
|
||||
``openstack_user_config.yml`` configuration:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.101
|
||||
infra2:
|
||||
@@ -294,7 +294,7 @@ Using ``shared-infra_hosts`` as an example, consider this
|
||||
infra3:
|
||||
ip: 172.29.236.103
|
||||
|
||||
Three hosts are assigned to the ``shared-infra_hosts`` group,
|
||||
Three hosts are assigned to the ``shared_infra_hosts`` group,
|
||||
OpenStack-Ansible ensures that each host runs a single database container,
|
||||
a single Memcached container, and a single RabbitMQ container. Each host has
|
||||
an affinity of 1 by default, which means that each host runs one of each
|
||||
@@ -306,7 +306,7 @@ your ``openstack_user_config.yml`` file would look as follows:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
infra1:
|
||||
affinity:
|
||||
rabbit_mq_container: 0
|
||||
@@ -356,7 +356,7 @@ Example:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
infra1:
|
||||
ip: 192.168.0.101
|
||||
management_ip: 172.29.236.101
|
||||
|
||||
@@ -34,7 +34,7 @@ the ``conf.d/`` directory is identical to the syntax used in the
|
||||
``openstack_user_config.yml`` file.
|
||||
|
||||
In these files, the target hosts are listed under one or more
|
||||
headings, such as ``shared-infra_hosts`` or ``storage_hosts``, which serve as
|
||||
headings, such as ``shared_infra_hosts`` or ``storage_hosts``, which serve as
|
||||
Ansible group mappings. These groups map to the physical
|
||||
hosts.
|
||||
|
||||
@@ -66,11 +66,11 @@ groups, that define where each service deploys. By reviewing files within the
|
||||
in the default layout.
|
||||
|
||||
For example, the ``shared-infra.yml`` file defines a container group,
|
||||
``shared-infra_containers``, as a subset of the ``all_containers``
|
||||
inventory group. The ``shared- infra_containers`` container group is
|
||||
mapped to the ``shared-infra_hosts`` host group. All of the service
|
||||
components in the ``shared-infra_containers`` container group are
|
||||
deployed to each target host in the ``shared-infra_hosts host`` group.
|
||||
``shared_infra_containers``, as a subset of the ``all_containers``
|
||||
inventory group. The ``shared_infra_containers`` container group is
|
||||
mapped to the ``shared_infra_hosts`` host group. All of the service
|
||||
components in the ``shared_infra_containers`` container group are
|
||||
deployed to each target host in the ``shared_infra_hosts host`` group.
|
||||
|
||||
Within a ``physical_skel`` section, the OpenStack-Ansible dynamic inventory
|
||||
expects to find a pair of keys. The first key maps to items in the
|
||||
@@ -79,7 +79,7 @@ expects to find a pair of keys. The first key maps to items in the
|
||||
|
||||
To continue the example, the ``memcache.yml`` file defines the
|
||||
``memcache_container`` container group. This group is a subset of the
|
||||
``shared-infra_containers`` group, which is itself a subset of
|
||||
``shared_infra_containers`` group, which is itself a subset of
|
||||
the ``all_containers`` inventory group.
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -10,7 +10,7 @@ the Ceph backend for images, volumes, and instances.
|
||||
|
||||
This example environment has the following characteristics:
|
||||
|
||||
* Three infrastructure (control plane) hosts with ceph-mon containers
|
||||
* Three infrastructure (control plane) hosts with ``ceph_mon`` containers
|
||||
* Two compute hosts
|
||||
* Three Ceph OSD storage hosts
|
||||
* One log aggregation host
|
||||
@@ -63,10 +63,11 @@ integration in three ways:
|
||||
No ssh access by OpenStack-Ansible is required to the ceph cluster.
|
||||
* deploying a ceph cluster as part of the OpenStack-Ansible deployment
|
||||
by using the roles maintained by the `Ceph-Ansible`_ project. Deployers
|
||||
can enable the ``ceph-install.yml`` playbook by adding hosts to the
|
||||
``ceph-mon_hosts`` and ``ceph-osd_hosts`` groups in
|
||||
``openstack_user_config.yml``. In order to enable ``ceph-rgw-install.yml``
|
||||
playbook you need to add ``ceph-rgw_hosts`` in ``openstack_user_config.yml``.
|
||||
can enable the ``openstack.osa.ceph_install`` playbook by adding hosts to
|
||||
the ``ceph_mon_hosts`` and ``ceph_osd_hosts`` groups in
|
||||
``openstack_user_config.yml``. In order to enable
|
||||
``openstack.osa.ceph_rgw_install`` playbook you need to add
|
||||
``ceph_rgw_hosts`` in ``openstack_user_config.yml``.
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ OpenStack-Ansible gives you the option of deploying Ceph Object Gateway
|
||||
|
||||
In particular, the ``openstack.osa.ceph_rgw_install`` playbook
|
||||
(which includes ``openstack.osa.ceph_rgw_keystone_setup``) will deploy
|
||||
radosgw to any ``ceph-rgw`` hosts, and create a corresponding Keystone
|
||||
radosgw to any ``ceph_rgw`` hosts, and create a corresponding Keystone
|
||||
``object-store`` service catalog entry. The service endpoints do
|
||||
contain the ``AUTH_%(tenant_id)s`` prefix just like in native Swift,
|
||||
so public read ACLs and temp URLs will work just like they do in
|
||||
@@ -25,9 +25,9 @@ is an example configuration snippet:
|
||||
|
||||
.. note::
|
||||
|
||||
Mentioned below overrides are default ones and will be applied to `ceph-rgw` group
|
||||
Mentioned below overrides are default ones and will be applied to `ceph_rgw` group
|
||||
|
||||
.. literalinclude:: ../../../../inventory/group_vars/ceph-rgw.yml
|
||||
.. literalinclude:: ../../../../inventory/group_vars/ceph_rgw.yml
|
||||
|
||||
You may also want to add the ``rgw_dns_name`` option if you want to
|
||||
enable bucket hostnames with the S3 API.
|
||||
|
||||
@@ -69,7 +69,7 @@ There are multiple complications related to organizing storage where the storage
|
||||
First, there is only a single controller in any given Availability
|
||||
Zone, while multiple copies of ``cinder_volume`` needs to be run for
|
||||
each storage provider for High Availability. As ``cinder_volume`` needs
|
||||
access to storage network, one of the best places for it are ``ceph-mon``
|
||||
access to storage network, one of the best places for it are ``ceph_mon``
|
||||
hosts.
|
||||
|
||||
Another challenge is to organize shared storage for Glance Images, as
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
metering-alarm_hosts:
|
||||
metering_alarm_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# The infra nodes that will be running the alarming services
|
||||
metering-alarm_hosts:
|
||||
metering_alarm_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
key-manager_hosts:
|
||||
key_manager_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
key-manager_hosts:
|
||||
key_manager_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# The compute host that the ceilometer compute agent will be running on.
|
||||
metering-compute_hosts:
|
||||
metering_compute_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
# The infra nodes that the central agents will be running on
|
||||
metering-infra_hosts:
|
||||
metering_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# The compute hosts that will run the ceilometer compute agent. This list
|
||||
# should contain every host in the compute_hosts list.
|
||||
metering-compute_hosts:
|
||||
metering_compute_hosts:
|
||||
compute1:
|
||||
ip: 172.20.236.110
|
||||
|
||||
# The infra hosts that will run the central agents.
|
||||
# For running Ceilometer in HA for workload partitioning, see
|
||||
# https://docs.openstack.org/pike/admin/#support-for-ha-deployment
|
||||
metering-infra_hosts:
|
||||
metering_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
# See note regarding HA configuration above.
|
||||
|
||||
@@ -1,30 +1,30 @@
|
||||
# The infra nodes where the Ceph mon services will run
|
||||
ceph-mon_hosts:
|
||||
ceph_mon_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
# The nodes that the Ceph OSD disks will be running on
|
||||
ceph-osd_hosts:
|
||||
ceph_osd_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
{% if 'manila' not in bootstrap_host_scenarios_expanded %}
|
||||
# The nodes that the Ceph RadosGW object gateways will be running on
|
||||
ceph-rgw_hosts:
|
||||
ceph_rgw_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
{% endif %}
|
||||
|
||||
{% if 'manila' in bootstrap_host_scenarios_expanded %}
|
||||
ceph-mds_hosts:
|
||||
ceph_mds_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
ceph-nfs_hosts:
|
||||
ceph_nfs_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
storage-infra_hosts:
|
||||
storage_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
---
|
||||
ironic-infra_hosts:
|
||||
ironic_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
# Ironic compute hosts. These compute hosts will be used to
|
||||
# facilitate ironic's interactions through nova.
|
||||
ironic-compute_hosts:
|
||||
ironic_compute_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
ironic-inspector_hosts:
|
||||
ironic_inspector_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
cluster-api_hosts:
|
||||
cluster_api_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
magnum-infra_hosts:
|
||||
magnum_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# The infra nodes that will be running the magnum services
|
||||
magnum-infra_hosts:
|
||||
magnum_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
manila-infra_hosts:
|
||||
manila_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
manila-data_hosts:
|
||||
manila_data_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# The infra nodes that will be running the manila services
|
||||
manila-infra_hosts:
|
||||
manila_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
@@ -7,7 +7,7 @@ manila-infra_hosts:
|
||||
infra3:
|
||||
ip: 172.20.236.113
|
||||
|
||||
manila-data_hosts:
|
||||
manila_data_hosts:
|
||||
data1:
|
||||
ip: 172.20.236.121
|
||||
data2:
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
---
|
||||
masakari-infra_hosts:
|
||||
masakari_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
masakari-monitor_hosts:
|
||||
masakari_monitor_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
# The infra nodes that will be running the masakari services
|
||||
masakari-infra_hosts:
|
||||
masakari_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
@@ -9,7 +9,7 @@ masakari-infra_hosts:
|
||||
ip: 172.20.236.113
|
||||
|
||||
# The infra nodes that will be running the masakari monitors
|
||||
masakari-monitor_hosts:
|
||||
masakari_monitor_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
mistral-infra_hosts:
|
||||
mistral_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# The infra nodes that will be running the mistral services
|
||||
mistral-infra_hosts:
|
||||
mistral_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
|
||||
@@ -7,12 +7,12 @@ network_hosts:
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
{% if _neutron_plugin_driver == 'ml2.ovn' %}
|
||||
network-gateway_hosts:
|
||||
network_gateway_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
network-northd_hosts:
|
||||
network_northd_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
compute-infra_hosts:
|
||||
compute_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# The controller host that the octavia control plane will be run on
|
||||
octavia-infra_hosts:
|
||||
octavia_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
placement-infra_hosts:
|
||||
placement_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# The infra nodes that will be running the placement services
|
||||
placement-infra_hosts:
|
||||
placement_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# NB. The ip address that must be specified is the IP address that swift
|
||||
# hosts will be able to replicate on and not necessarily the
|
||||
# ansible_ssh IP from the remote ansible install.
|
||||
swift-remote_hosts:
|
||||
swift_remote_hosts:
|
||||
remote-swift1:
|
||||
ip: 172.29.237.1
|
||||
remote-swift2:
|
||||
|
||||
@@ -14,7 +14,7 @@ global_overrides:
|
||||
name: default
|
||||
index: 0
|
||||
default: true
|
||||
swift-proxy_hosts:
|
||||
swift_proxy_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -245,10 +245,10 @@
|
||||
#
|
||||
# --------
|
||||
#
|
||||
# Level: swift-proxy_hosts (required)
|
||||
# Level: swift_proxy_hosts (required)
|
||||
# List of target hosts on which to deploy the swift proxy service. Recommend
|
||||
# three minimum target hosts for these services. Typically contains the same
|
||||
# target hosts as the 'shared-infra_hosts' level in complete OpenStack
|
||||
# target hosts as the 'shared_infra_hosts' level in complete OpenStack
|
||||
# deployments.
|
||||
#
|
||||
# Level: <value> (optional, string)
|
||||
@@ -310,7 +310,7 @@
|
||||
#
|
||||
# Define three swift proxy hosts:
|
||||
#
|
||||
# swift-proxy_hosts:
|
||||
# swift_proxy_hosts:
|
||||
#
|
||||
# infra1:
|
||||
# ip: 172.29.236.101
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
trove-infra_hosts:
|
||||
trove_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# The infra nodes that will be running the trove services
|
||||
trove-infra_hosts:
|
||||
trove_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
---
|
||||
zun-infra_hosts:
|
||||
zun_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
zun-compute_hosts:
|
||||
zun_compute_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
# The infra nodes that will be running the zun services
|
||||
zun-infra_hosts:
|
||||
zun_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.20.236.111
|
||||
infra2:
|
||||
|
||||
@@ -12,10 +12,10 @@ container_skel:
|
||||
ceilometer_central_container:
|
||||
properties:
|
||||
is_metal: true
|
||||
ceph-mon_container:
|
||||
ceph_mon_container:
|
||||
properties:
|
||||
is_metal: true
|
||||
ceph-rgw_container:
|
||||
ceph_rgw_container:
|
||||
properties:
|
||||
is_metal: true
|
||||
cinder_api_container:
|
||||
@@ -72,7 +72,7 @@ container_skel:
|
||||
memcached_container:
|
||||
properties:
|
||||
is_metal: true
|
||||
metering-compute_container:
|
||||
metering_compute_container:
|
||||
properties:
|
||||
is_metal: true
|
||||
mistral_container:
|
||||
|
||||
@@ -3,51 +3,51 @@ component_skel:
|
||||
# Ceph MON
|
||||
ceph_mon_az1:
|
||||
belongs_to:
|
||||
- ceph-mon
|
||||
- ceph_mon
|
||||
- ceph_all
|
||||
- az1_all
|
||||
ceph_mon_az2:
|
||||
belongs_to:
|
||||
- ceph-mon
|
||||
- ceph_mon
|
||||
- ceph_all
|
||||
- az2_all
|
||||
ceph_mon_az3:
|
||||
belongs_to:
|
||||
- ceph-mon
|
||||
- ceph_mon
|
||||
- ceph_all
|
||||
- az3_all
|
||||
|
||||
# Ceph OSD
|
||||
ceph_osd_az1:
|
||||
belongs_to:
|
||||
- ceph-osd
|
||||
- ceph_osd
|
||||
- ceph_all
|
||||
- az1_all
|
||||
ceph_osd_az2:
|
||||
belongs_to:
|
||||
- ceph-osd
|
||||
- ceph_osd
|
||||
- ceph_all
|
||||
- az2_all
|
||||
ceph_osd_az3:
|
||||
belongs_to:
|
||||
- ceph-osd
|
||||
- ceph_osd
|
||||
- ceph_all
|
||||
- az3_all
|
||||
|
||||
# Ceph RGW
|
||||
ceph_rgw_az1:
|
||||
belongs_to:
|
||||
- ceph-rgw
|
||||
- ceph_rgw
|
||||
- ceph_all
|
||||
- az1_all
|
||||
ceph_rgw_az2:
|
||||
belongs_to:
|
||||
- ceph-rgw
|
||||
- ceph_rgw
|
||||
- ceph_all
|
||||
- az2_all
|
||||
ceph_rgw_az3:
|
||||
belongs_to:
|
||||
- ceph-rgw
|
||||
- ceph_rgw
|
||||
- ceph_all
|
||||
- az3_all
|
||||
|
||||
|
||||
@@ -78,9 +78,9 @@ global_overrides:
|
||||
net_name: "lbaas"
|
||||
group_binds:
|
||||
- neutron_openvswitch_agent
|
||||
- octavia-worker
|
||||
- octavia-housekeeping
|
||||
- octavia-health-manager
|
||||
- octavia_worker
|
||||
- octavia_housekeeping
|
||||
- octavia_health_manager
|
||||
- network:
|
||||
container_bridge: "br-bmaas"
|
||||
container_type: "veth"
|
||||
@@ -124,11 +124,11 @@ global_overrides:
|
||||
- swift_proxy
|
||||
|
||||
# galera, memcache, rabbitmq, utility
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
aio1:
|
||||
ip: 172.29.236.100
|
||||
|
||||
repo-infra_hosts:
|
||||
repo_infra_hosts:
|
||||
aio1:
|
||||
ip: 172.29.236.100
|
||||
|
||||
|
||||
@@ -121,9 +121,9 @@ global_overrides:
|
||||
{% else %}
|
||||
- neutron_ovn_gateway
|
||||
{% endif %}
|
||||
- octavia-worker
|
||||
- octavia-housekeeping
|
||||
- octavia-health-manager
|
||||
- octavia_worker
|
||||
- octavia_housekeeping
|
||||
- octavia_health_manager
|
||||
{% endif %}
|
||||
{% if 'ironic' in bootstrap_host_scenarios_expanded %}
|
||||
- network:
|
||||
@@ -186,8 +186,8 @@ global_overrides:
|
||||
- nova_compute
|
||||
- manila_share
|
||||
- swift_proxy
|
||||
- ceph-mon
|
||||
- ceph-osd
|
||||
- ceph_mon
|
||||
- ceph_osd
|
||||
|
||||
# keystone
|
||||
identity_hosts:
|
||||
@@ -204,7 +204,7 @@ identity_hosts:
|
||||
{% endif %}
|
||||
|
||||
# galera, memcache, rabbitmq, utility
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
aio1:
|
||||
ip: {{ bootstrap_host_public_address }}
|
||||
management_ip: {{ bootstrap_host_management_address }}
|
||||
@@ -215,7 +215,7 @@ shared-infra_hosts:
|
||||
rabbit_mq_container: 3
|
||||
{% endif %}
|
||||
|
||||
repo-infra_hosts:
|
||||
repo_infra_hosts:
|
||||
aio1:
|
||||
{% if bootstrap_host_install_method == 'distro' %}
|
||||
affinity:
|
||||
|
||||
@@ -214,7 +214,7 @@ az3_hosts:
|
||||
shared_infra_hosts: &controllers
|
||||
<<: [*controller_az1, *controller_az2, *controller_az3]
|
||||
|
||||
repo-infra_hosts: *controllers
|
||||
repo_infra_hosts: *controllers
|
||||
memcaching_hosts: *controllers
|
||||
database_hosts: *controllers
|
||||
mq_hosts: *controllers
|
||||
@@ -222,11 +222,11 @@ operator_hosts: *controllers
|
||||
identity_hosts: *controllers
|
||||
image_hosts: *controllers
|
||||
dashboard_hosts: *controllers
|
||||
compute-infra_hosts: *controllers
|
||||
placement-infra_hosts: *controllers
|
||||
storage-infra_hosts: *controllers
|
||||
network-infra_hosts: *controllers
|
||||
network-northd_hosts: *controllers
|
||||
compute_infra_hosts: *controllers
|
||||
placement_infra_hosts: *controllers
|
||||
storage_infra_hosts: *controllers
|
||||
network_infra_hosts: *controllers
|
||||
network_northd_hosts: *controllers
|
||||
coordination_hosts: *controllers
|
||||
|
||||
compute_hosts: &computes
|
||||
@@ -238,7 +238,7 @@ pinned_compute_hosts:
|
||||
shared_compute_hosts:
|
||||
<<: [*shared_computes_az1, *shared_computes_az2, *shared_computes_az3]
|
||||
|
||||
network-gateway_hosts: *computes
|
||||
network_gateway_hosts: *computes
|
||||
|
||||
storage_hosts: &storage
|
||||
<<: [*storage_az1, *storage_az2, *storage_az3]
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
#
|
||||
# --------
|
||||
#
|
||||
# Level: shared-infra_hosts (required)
|
||||
# Level: shared_infra_hosts (required)
|
||||
# List of target hosts on which to deploy shared infrastructure services
|
||||
# including the Galera SQL database cluster, RabbitMQ, and Memcached. Recommend
|
||||
# three minimum target hosts for these services.
|
||||
@@ -315,7 +315,7 @@
|
||||
#
|
||||
# Define three shared infrastructure hosts:
|
||||
#
|
||||
# shared-infra_hosts:
|
||||
# shared_infra_hosts:
|
||||
# infra1:
|
||||
# ip: 172.29.236.101
|
||||
# infra2:
|
||||
@@ -325,10 +325,10 @@
|
||||
#
|
||||
# --------
|
||||
#
|
||||
# Level: repo-infra_hosts (required)
|
||||
# Level: repo_infra_hosts (required)
|
||||
# List of target hosts on which to deploy the package repository. Recommend
|
||||
# minimum three target hosts for this service. Typically contains the same
|
||||
# target hosts as the 'shared-infra_hosts' level.
|
||||
# target hosts as the 'shared_infra_hosts' level.
|
||||
#
|
||||
# Level: <value> (required, string)
|
||||
# Hostname of a target host.
|
||||
@@ -341,7 +341,7 @@
|
||||
#
|
||||
# Define three package repository hosts:
|
||||
#
|
||||
# repo-infra_hosts:
|
||||
# repo_infra_hosts:
|
||||
# infra1:
|
||||
# ip: 172.29.236.101
|
||||
# infra2:
|
||||
@@ -370,10 +370,10 @@
|
||||
#
|
||||
# --------
|
||||
#
|
||||
# Level: os-infra_hosts (required)
|
||||
# Level: os_infra_hosts (required)
|
||||
# List of target hosts on which to deploy the glance API, nova API, heat API,
|
||||
# and horizon. Recommend three minimum target hosts for these services.
|
||||
# Typically contains the same target hosts as 'shared-infra_hosts' level.
|
||||
# Typically contains the same target hosts as 'shared_infra_hosts' level.
|
||||
#
|
||||
# Level: <value> (required, string)
|
||||
# Hostname of a target host.
|
||||
@@ -386,7 +386,7 @@
|
||||
#
|
||||
# Define three OpenStack infrastructure hosts:
|
||||
#
|
||||
# os-infra_hosts:
|
||||
# os_infra_hosts:
|
||||
# infra1:
|
||||
# ip: 172.29.236.101
|
||||
# infra2:
|
||||
@@ -399,7 +399,7 @@
|
||||
# Level: identity_hosts (required)
|
||||
# List of target hosts on which to deploy the keystone service. Recommend
|
||||
# three minimum target hosts for this service. Typically contains the same
|
||||
# target hosts as the 'shared-infra_hosts' level.
|
||||
# target hosts as the 'shared_infra_hosts' level.
|
||||
#
|
||||
# Level: <value> (required, string)
|
||||
# Hostname of a target host.
|
||||
@@ -425,7 +425,7 @@
|
||||
# Level: network_hosts (required)
|
||||
# List of target hosts on which to deploy neutron services. Recommend three
|
||||
# minimum target hosts for this service. Typically contains the same target
|
||||
# hosts as the 'shared-infra_hosts' level.
|
||||
# hosts as the 'shared_infra_hosts' level.
|
||||
#
|
||||
# Level: <value> (required, string)
|
||||
# Hostname of a target host.
|
||||
@@ -447,12 +447,12 @@
|
||||
# ip: 172.29.236.103
|
||||
#
|
||||
# If you want to deploy neutron agents to different set of hosts (net nodes)
|
||||
# rather then neutron API, you should define 'network-infra_hosts' and
|
||||
# 'network-agent_hosts' instead.
|
||||
# rather then neutron API, you should define 'network_infra_hosts' and
|
||||
# 'network_agent_hosts' instead.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# network-infra_hosts:
|
||||
# network_infra_hosts:
|
||||
# infra1:
|
||||
# ip: 172.29.236.101
|
||||
# infra2:
|
||||
@@ -460,7 +460,28 @@
|
||||
# infra3:
|
||||
# ip: 172.29.236.103
|
||||
#
|
||||
# network-agent_hosts:
|
||||
# NOTE: network_agent_hosts is not applicable for OVN ML2 driver.
|
||||
# They are mainly used for ML2 OVS driver.
|
||||
#
|
||||
# network_agent_hosts:
|
||||
# net1:
|
||||
# ip: 172.29.236.201
|
||||
# net2:
|
||||
# ip: 172.29.236.202
|
||||
# net3:
|
||||
# ip: 172.29.236.203
|
||||
#
|
||||
# For the ML2 OVN scenario, you need to define following groups instead:
|
||||
#
|
||||
# network_northd_hosts:
|
||||
# infra1:
|
||||
# ip: 172.29.236.101
|
||||
# infra2:
|
||||
# ip: 172.29.236.102
|
||||
# infra3:
|
||||
# ip: 172.29.236.103
|
||||
#
|
||||
# network_gateway_hosts:
|
||||
# net1:
|
||||
# ip: 172.29.236.201
|
||||
# net2:
|
||||
@@ -508,16 +529,16 @@
|
||||
#
|
||||
# Define an OpenStack compute host:
|
||||
#
|
||||
# ironic-compute_hosts:
|
||||
# ironic-infra1:
|
||||
# ironic_compute_hosts:
|
||||
# ironic_infra1:
|
||||
# ip: 172.29.236.121
|
||||
#
|
||||
# --------
|
||||
#
|
||||
# Level: storage-infra_hosts (required)
|
||||
# Level: storage_infra_hosts (required)
|
||||
# List of target hosts on which to deploy the cinder API. Recommend three
|
||||
# minimum target hosts for this service. Typically contains the same target
|
||||
# hosts as the 'shared-infra_hosts' level.
|
||||
# hosts as the 'shared_infra_hosts' level.
|
||||
#
|
||||
# Level: <value> (required, string)
|
||||
# Hostname of a target host.
|
||||
@@ -530,7 +551,7 @@
|
||||
#
|
||||
# Define three OpenStack storage infrastructure hosts:
|
||||
#
|
||||
# storage-infra_hosts:
|
||||
# storage_infra_hosts:
|
||||
# infra1:
|
||||
# ip: 172.29.236.101
|
||||
# infra2:
|
||||
|
||||
@@ -91,7 +91,7 @@ global_overrides:
|
||||
###
|
||||
|
||||
# galera, memcache, rabbitmq, utility
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -100,7 +100,7 @@ shared-infra_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# repository (apt cache, python packages, etc)
|
||||
repo-infra_hosts:
|
||||
repo_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -133,7 +133,7 @@ identity_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# cinder api services
|
||||
storage-infra_hosts:
|
||||
storage_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -176,7 +176,7 @@ image_hosts:
|
||||
options: "_netdev,auto"
|
||||
|
||||
# nova api, conductor, etc services
|
||||
compute-infra_hosts:
|
||||
compute_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -212,7 +212,7 @@ network_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# ceilometer (telemetry data collection)
|
||||
metering-infra_hosts:
|
||||
metering_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -221,7 +221,7 @@ metering-infra_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# aodh (telemetry alarm service)
|
||||
metering-alarm_hosts:
|
||||
metering_alarm_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -246,7 +246,7 @@ compute_hosts:
|
||||
ip: 172.29.236.17
|
||||
|
||||
# ceilometer compute agent (telemetry data collection)
|
||||
metering-compute_hosts:
|
||||
metering_compute_hosts:
|
||||
compute1:
|
||||
ip: 172.29.236.16
|
||||
compute2:
|
||||
|
||||
@@ -289,11 +289,11 @@ pod4_hosts: &pod4
|
||||
ip: 172.29.245.11
|
||||
|
||||
# galera, memcache, rabbitmq, utility
|
||||
shared-infra_hosts: &controllers
|
||||
shared_infra_hosts: &controllers
|
||||
<<: [*pod1, *pod2, *pod3]
|
||||
|
||||
# repository (apt cache, python packages, etc)
|
||||
repo-infra_hosts: *controllers
|
||||
repo_infra_hosts: *controllers
|
||||
|
||||
# load balancer
|
||||
# Ideally the load balancer should not use the Infrastructure hosts.
|
||||
@@ -308,7 +308,7 @@ load_balancer_hosts: *controllers
|
||||
identity_hosts: *controllers
|
||||
|
||||
# cinder api services
|
||||
storage-infra_hosts: *controllers
|
||||
storage_infra_hosts: *controllers
|
||||
|
||||
# glance
|
||||
# The settings here are repeated for each infra host.
|
||||
@@ -345,7 +345,7 @@ image_hosts:
|
||||
options: "_netdev,auto"
|
||||
|
||||
# nova api, conductor, etc services
|
||||
compute-infra_hosts: *controllers
|
||||
compute_infra_hosts: *controllers
|
||||
|
||||
# heat
|
||||
orchestration_hosts: *controllers
|
||||
@@ -357,10 +357,10 @@ dashboard_hosts: *controllers
|
||||
network_hosts: *controllers
|
||||
|
||||
# ceilometer (telemetry data collection)
|
||||
metering-infra_hosts: *controllers
|
||||
metering_infra_hosts: *controllers
|
||||
|
||||
# aodh (telemetry alarm service)
|
||||
metering-alarm_hosts: *controllers
|
||||
metering_alarm_hosts: *controllers
|
||||
# gnocchi (telemetry metrics storage)
|
||||
metrics_hosts: *controllers
|
||||
|
||||
@@ -368,7 +368,7 @@ metrics_hosts: *controllers
|
||||
compute_hosts: *pod4
|
||||
|
||||
# ceilometer compute agent (telemetry data collection)
|
||||
metering-compute_hosts: *pod4
|
||||
metering_compute_hosts: *pod4
|
||||
|
||||
# cinder volume hosts (NFS-backed)
|
||||
# The settings here are repeated for each infra host.
|
||||
|
||||
@@ -72,8 +72,8 @@ global_overrides:
|
||||
- cinder_volume
|
||||
- manila_share
|
||||
- nova_compute
|
||||
- ceph-mon
|
||||
- ceph-osd
|
||||
- ceph_mon
|
||||
- ceph_osd
|
||||
|
||||
###
|
||||
### Infrastructure
|
||||
@@ -94,7 +94,7 @@ compute_hosts: &compute_hosts
|
||||
compute2:
|
||||
ip: 172.29.236.17
|
||||
|
||||
ceph-osd_hosts:
|
||||
ceph_osd_hosts:
|
||||
osd1:
|
||||
ip: 172.29.236.18
|
||||
osd2:
|
||||
@@ -103,22 +103,22 @@ ceph-osd_hosts:
|
||||
ip: 172.29.236.20
|
||||
|
||||
# galera, memcache, rabbitmq, utility
|
||||
shared-infra_hosts: *infrastructure_hosts
|
||||
shared_infra_hosts: *infrastructure_hosts
|
||||
|
||||
# zookeeper
|
||||
coordination_hosts: *infrastructure_hosts
|
||||
|
||||
# ceph-mon containers
|
||||
ceph-mon_hosts: *infrastructure_hosts
|
||||
# ceph_mon containers
|
||||
ceph_mon_hosts: *infrastructure_hosts
|
||||
|
||||
# ceph-mds containers
|
||||
ceph-mds_hosts: *infrastructure_hosts
|
||||
# ceph_mds containers
|
||||
ceph_mds_hosts: *infrastructure_hosts
|
||||
|
||||
# ganesha-nfs hosts
|
||||
ceph-nfs_hosts: *infrastructure_hosts
|
||||
ceph_nfs_hosts: *infrastructure_hosts
|
||||
|
||||
# repository (apt cache, python packages, etc)
|
||||
repo-infra_hosts: *infrastructure_hosts
|
||||
repo_infra_hosts: *infrastructure_hosts
|
||||
|
||||
# load balancer
|
||||
# Ideally the load balancer should not use the Infrastructure hosts.
|
||||
@@ -133,7 +133,7 @@ load_balancer_hosts: *infrastructure_hosts
|
||||
identity_hosts: *infrastructure_hosts
|
||||
|
||||
# cinder api services
|
||||
storage-infra_hosts: *infrastructure_hosts
|
||||
storage_infra_hosts: *infrastructure_hosts
|
||||
|
||||
# cinder volume hosts (Ceph RBD-backed)
|
||||
storage_hosts: *infrastructure_hosts
|
||||
@@ -142,10 +142,10 @@ storage_hosts: *infrastructure_hosts
|
||||
image_hosts: *infrastructure_hosts
|
||||
|
||||
# placement
|
||||
placement-infra_hosts: *infrastructure_hosts
|
||||
placement_infra_hosts: *infrastructure_hosts
|
||||
|
||||
# nova api, conductor, etc services
|
||||
compute-infra_hosts: *infrastructure_hosts
|
||||
compute_infra_hosts: *infrastructure_hosts
|
||||
|
||||
# heat
|
||||
orchestration_hosts: *infrastructure_hosts
|
||||
@@ -157,17 +157,17 @@ dashboard_hosts: *infrastructure_hosts
|
||||
network_hosts: *infrastructure_hosts
|
||||
|
||||
# ceilometer (telemetry data collection)
|
||||
metering-infra_hosts: *infrastructure_hosts
|
||||
metering_infra_hosts: *infrastructure_hosts
|
||||
|
||||
# aodh (telemetry alarm service)
|
||||
metering-alarm_hosts: *infrastructure_hosts
|
||||
metering_alarm_hosts: *infrastructure_hosts
|
||||
|
||||
# gnocchi (telemetry metrics storage)
|
||||
metrics_hosts: *infrastructure_hosts
|
||||
|
||||
# manila (share service)
|
||||
manila-infra_hosts: *infrastructure_hosts
|
||||
manila-data_hosts: *infrastructure_hosts
|
||||
manila_infra_hosts: *infrastructure_hosts
|
||||
manila_data_hosts: *infrastructure_hosts
|
||||
|
||||
# ceilometer compute agent (telemetry data collection)
|
||||
metering-compute_hosts: *compute_hosts
|
||||
metering_compute_hosts: *compute_hosts
|
||||
|
||||
@@ -76,7 +76,7 @@ global_overrides:
|
||||
###
|
||||
|
||||
# galera, memcache, rabbitmq, utility
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -94,7 +94,7 @@ coordination_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# repository (apt cache, python packages, etc)
|
||||
repo-infra_hosts:
|
||||
repo_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -127,7 +127,7 @@ identity_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# cinder api services
|
||||
storage-infra_hosts:
|
||||
storage_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -170,7 +170,7 @@ image_hosts:
|
||||
options: "_netdev,auto"
|
||||
|
||||
# placement
|
||||
placement-infra_hosts:
|
||||
placement_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -179,7 +179,7 @@ placement-infra_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# nova api, conductor, etc services
|
||||
compute-infra_hosts:
|
||||
compute_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -206,7 +206,7 @@ dashboard_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# neutron api
|
||||
network-infra_hosts:
|
||||
network_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -214,7 +214,7 @@ network-infra_hosts:
|
||||
infra3:
|
||||
ip: 172.29.236.13
|
||||
|
||||
network-northd_hosts:
|
||||
network_northd_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -223,7 +223,7 @@ network-northd_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# neutron ovn controller
|
||||
network-gateway_hosts:
|
||||
network_gateway_hosts:
|
||||
net1:
|
||||
ip: 172.29.236.21
|
||||
net2:
|
||||
@@ -232,7 +232,7 @@ network-gateway_hosts:
|
||||
ip: 172.29.236.23
|
||||
|
||||
# ceilometer (telemetry data collection)
|
||||
metering-infra_hosts:
|
||||
metering_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -241,7 +241,7 @@ metering-infra_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# aodh (telemetry alarm service)
|
||||
metering-alarm_hosts:
|
||||
metering_alarm_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -266,7 +266,7 @@ compute_hosts:
|
||||
ip: 172.29.236.17
|
||||
|
||||
# ceilometer compute agent (telemetry data collection)
|
||||
metering-compute_hosts:
|
||||
metering_compute_hosts:
|
||||
compute1:
|
||||
ip: 172.29.236.16
|
||||
compute2:
|
||||
|
||||
@@ -129,7 +129,7 @@ global_overrides:
|
||||
###
|
||||
|
||||
# galera, memcache, rabbitmq, utility
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -138,7 +138,7 @@ shared-infra_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# repository (apt cache, python packages, etc)
|
||||
repo-infra_hosts:
|
||||
repo_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -171,7 +171,7 @@ identity_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# cinder api services
|
||||
storage-infra_hosts:
|
||||
storage_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -214,7 +214,7 @@ image_hosts:
|
||||
options: "_netdev,auto"
|
||||
|
||||
# placement
|
||||
placement-infra_hosts:
|
||||
placement_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -223,7 +223,7 @@ placement-infra_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# nova api, conductor, etc services
|
||||
compute-infra_hosts:
|
||||
compute_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -259,7 +259,7 @@ network_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# ceilometer (telemetry data collection)
|
||||
metering-infra_hosts:
|
||||
metering_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -268,7 +268,7 @@ metering-infra_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# aodh (telemetry alarm service)
|
||||
metering-alarm_hosts:
|
||||
metering_alarm_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -293,7 +293,7 @@ compute_hosts:
|
||||
ip: 172.29.236.17
|
||||
|
||||
# ceilometer compute agent (telemetry data collection)
|
||||
metering-compute_hosts:
|
||||
metering_compute_hosts:
|
||||
compute1:
|
||||
ip: 172.29.236.16
|
||||
compute2:
|
||||
|
||||
@@ -91,7 +91,7 @@ global_overrides:
|
||||
###
|
||||
|
||||
# galera, memcache, rabbitmq, utility
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -100,7 +100,7 @@ shared-infra_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# repository (apt cache, python packages, etc)
|
||||
repo-infra_hosts:
|
||||
repo_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -133,7 +133,7 @@ identity_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# cinder api services
|
||||
storage-infra_hosts:
|
||||
storage_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -176,7 +176,7 @@ image_hosts:
|
||||
options: "_netdev,auto"
|
||||
|
||||
# nova api, conductor, etc services
|
||||
compute-infra_hosts:
|
||||
compute_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -212,7 +212,7 @@ network_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# ceilometer (telemetry data collection)
|
||||
metering-infra_hosts:
|
||||
metering_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -221,7 +221,7 @@ metering-infra_hosts:
|
||||
ip: 172.29.236.13
|
||||
|
||||
# aodh (telemetry alarm service)
|
||||
metering-alarm_hosts:
|
||||
metering_alarm_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
infra2:
|
||||
@@ -246,7 +246,7 @@ compute_hosts:
|
||||
ip: 172.29.236.17
|
||||
|
||||
# ceilometer compute agent (telemetry data collection)
|
||||
metering-compute_hosts:
|
||||
metering_compute_hosts:
|
||||
compute1:
|
||||
ip: 172.29.236.16
|
||||
compute2:
|
||||
|
||||
@@ -72,12 +72,12 @@ global_overrides:
|
||||
###
|
||||
|
||||
# galera, memcache, rabbitmq, utility
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
|
||||
# repository (apt cache, python packages, etc)
|
||||
repo-infra_hosts:
|
||||
repo_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
|
||||
@@ -96,7 +96,7 @@ identity_hosts:
|
||||
ip: 172.29.236.11
|
||||
|
||||
# cinder api services
|
||||
storage-infra_hosts:
|
||||
storage_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
|
||||
@@ -106,12 +106,12 @@ image_hosts:
|
||||
ip: 172.29.236.11
|
||||
|
||||
# placement
|
||||
placement-infra_hosts:
|
||||
placement_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
|
||||
# nova api, conductor, etc services
|
||||
compute-infra_hosts:
|
||||
compute_infra_hosts:
|
||||
infra1:
|
||||
ip: 172.29.236.11
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ component_skel:
|
||||
container_skel:
|
||||
aodh_container:
|
||||
belongs_to:
|
||||
- metering-alarm_containers
|
||||
- metering_alarm_containers
|
||||
contains:
|
||||
- aodh_api
|
||||
- aodh_listener
|
||||
@@ -24,9 +24,9 @@ container_skel:
|
||||
- aodh_alarm_notifier
|
||||
|
||||
physical_skel:
|
||||
metering-alarm_containers:
|
||||
metering_alarm_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
metering-alarm_hosts:
|
||||
metering_alarm_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -21,14 +21,14 @@ component_skel:
|
||||
container_skel:
|
||||
barbican_container:
|
||||
belongs_to:
|
||||
- key-manager_containers
|
||||
- key_manager_containers
|
||||
contains:
|
||||
- barbican_api
|
||||
|
||||
physical_skel:
|
||||
key-manager_containers:
|
||||
key_manager_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
key-manager_hosts:
|
||||
key_manager_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -2,39 +2,39 @@
|
||||
component_skel:
|
||||
ceilometer_agent_compute:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
- ceilometer_all
|
||||
ceilometer_agent_central:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
- ceilometer_all
|
||||
ceilometer_agent_notification:
|
||||
belongs_to:
|
||||
- ceilometer_all
|
||||
- ceilometer_all
|
||||
|
||||
container_skel:
|
||||
ceilometer_central_container:
|
||||
belongs_to:
|
||||
- metering-infra_containers
|
||||
- metering_infra_containers
|
||||
contains:
|
||||
- ceilometer_agent_central
|
||||
- ceilometer_agent_notification
|
||||
metering-compute_container:
|
||||
ceilometer_compute_container:
|
||||
belongs_to:
|
||||
- metering-compute_containers
|
||||
- metering_compute_containers
|
||||
contains:
|
||||
- ceilometer_agent_compute
|
||||
- ceilometer_agent_compute
|
||||
properties:
|
||||
is_metal: true
|
||||
|
||||
physical_skel:
|
||||
metering-compute_containers:
|
||||
metering_compute_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
metering-compute_hosts:
|
||||
- all_containers
|
||||
metering_compute_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
metering-infra_containers:
|
||||
- hosts
|
||||
metering_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
metering-infra_hosts:
|
||||
- all_containers
|
||||
metering_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
- hosts
|
||||
|
||||
+30
-30
@@ -14,79 +14,79 @@
|
||||
# limitations under the License.
|
||||
|
||||
component_skel:
|
||||
ceph-mon:
|
||||
ceph_mon:
|
||||
belongs_to:
|
||||
- ceph_all
|
||||
ceph-osd:
|
||||
ceph_osd:
|
||||
belongs_to:
|
||||
- ceph_all
|
||||
ceph-rgw:
|
||||
ceph_rgw:
|
||||
belongs_to:
|
||||
- ceph_all
|
||||
ceph-mds:
|
||||
ceph_mds:
|
||||
belongs_to:
|
||||
- ceph_all
|
||||
ceph-nfs:
|
||||
ceph_nfs:
|
||||
belongs_to:
|
||||
- ceph_all
|
||||
|
||||
container_skel:
|
||||
ceph-mon_container:
|
||||
ceph_mon_container:
|
||||
belongs_to:
|
||||
- ceph-mon_containers
|
||||
- ceph_mon_containers
|
||||
contains:
|
||||
- ceph-mon
|
||||
ceph-osd_container:
|
||||
- ceph_mon
|
||||
ceph_osd_container:
|
||||
belongs_to:
|
||||
- ceph-osd_containers
|
||||
- ceph_osd_containers
|
||||
contains:
|
||||
- ceph-osd
|
||||
- ceph_osd
|
||||
properties:
|
||||
is_metal: true
|
||||
ceph-rgw_container:
|
||||
ceph_rgw_container:
|
||||
belongs_to:
|
||||
- ceph-rgw_containers
|
||||
- ceph_rgw_containers
|
||||
contains:
|
||||
- ceph-rgw
|
||||
ceph-mds_container:
|
||||
- ceph_rgw
|
||||
ceph_mds_container:
|
||||
belongs_to:
|
||||
- ceph-mds_containers
|
||||
- ceph_mds_containers
|
||||
contains:
|
||||
- ceph-mds
|
||||
ceph-nfs_container:
|
||||
- ceph_mds
|
||||
ceph_nfs_container:
|
||||
belongs_to:
|
||||
- ceph-nfs_containers
|
||||
- ceph_nfs_containers
|
||||
contains:
|
||||
- ceph-nfs
|
||||
- ceph_nfs
|
||||
|
||||
physical_skel:
|
||||
ceph-mon_containers:
|
||||
ceph_mon_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
ceph-mon_hosts:
|
||||
ceph_mon_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
ceph-osd_containers:
|
||||
ceph_osd_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
ceph-osd_hosts:
|
||||
ceph_osd_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
ceph-rgw_containers:
|
||||
ceph_rgw_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
ceph-rgw_hosts:
|
||||
ceph_rgw_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
ceph-mds_containers:
|
||||
ceph_mds_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
ceph-mds_hosts:
|
||||
ceph_mds_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
ceph-nfs_containers:
|
||||
ceph_nfs_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
ceph-nfs_hosts:
|
||||
ceph_nfs_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -31,7 +31,7 @@ component_skel:
|
||||
container_skel:
|
||||
cinder_api_container:
|
||||
belongs_to:
|
||||
- storage-infra_containers
|
||||
- storage_infra_containers
|
||||
contains:
|
||||
- cinder_api
|
||||
- cinder_scheduler
|
||||
@@ -52,10 +52,10 @@ container_skel:
|
||||
|
||||
|
||||
physical_skel:
|
||||
storage-infra_containers:
|
||||
storage_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
storage-infra_hosts:
|
||||
storage_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
storage_containers:
|
||||
|
||||
@@ -23,7 +23,7 @@ container_skel:
|
||||
galera_container:
|
||||
belongs_to:
|
||||
- database_containers
|
||||
- shared-infra_containers
|
||||
- shared_infra_containers
|
||||
contains:
|
||||
- galera
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ container_skel:
|
||||
glance_container:
|
||||
belongs_to:
|
||||
- image_containers
|
||||
- os-infra_containers
|
||||
- os_infra_containers
|
||||
contains:
|
||||
- glance_api
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ container_skel:
|
||||
heat_api_container:
|
||||
belongs_to:
|
||||
- orchestration_containers
|
||||
- os-infra_containers
|
||||
- os_infra_containers
|
||||
contains:
|
||||
- heat_api_cfn
|
||||
- heat_api
|
||||
|
||||
@@ -23,7 +23,7 @@ container_skel:
|
||||
horizon_container:
|
||||
belongs_to:
|
||||
- dashboard_containers
|
||||
- os-infra_containers
|
||||
- os_infra_containers
|
||||
contains:
|
||||
- horizon
|
||||
|
||||
|
||||
@@ -34,13 +34,13 @@ component_skel:
|
||||
container_skel:
|
||||
ironic_api_container:
|
||||
belongs_to:
|
||||
- ironic-infra_containers
|
||||
- ironic_infra_containers
|
||||
contains:
|
||||
- ironic_api
|
||||
- ironic_conductor
|
||||
ironic_compute_container:
|
||||
belongs_to:
|
||||
- ironic-compute_containers
|
||||
- ironic_compute_containers
|
||||
contains:
|
||||
- ironic_compute
|
||||
- ironic_console
|
||||
@@ -49,26 +49,26 @@ container_skel:
|
||||
is_metal: false
|
||||
ironic_inspector_container:
|
||||
belongs_to:
|
||||
- ironic-inspector_containers
|
||||
- ironic_inspector_containers
|
||||
contains:
|
||||
- ironic_inspector
|
||||
|
||||
physical_skel:
|
||||
ironic-infra_containers:
|
||||
ironic_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
ironic-infra_hosts:
|
||||
ironic_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
ironic-compute_containers:
|
||||
ironic_compute_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
ironic-compute_hosts:
|
||||
ironic_compute_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
ironic-inspector_containers:
|
||||
ironic_inspector_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
ironic-inspector_hosts:
|
||||
ironic_inspector_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -21,14 +21,14 @@ component_skel:
|
||||
container_skel:
|
||||
k8s_container:
|
||||
belongs_to:
|
||||
- cluster-api_containers
|
||||
- cluster_api_containers
|
||||
contains:
|
||||
- k8s_capi
|
||||
|
||||
physical_skel:
|
||||
cluster-api_containers:
|
||||
cluster_api_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
cluster-api_hosts:
|
||||
cluster_api_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -24,14 +24,14 @@ component_skel:
|
||||
container_skel:
|
||||
magnum_container:
|
||||
belongs_to:
|
||||
- magnum-infra_containers
|
||||
- magnum_infra_containers
|
||||
contains:
|
||||
- magnum
|
||||
|
||||
physical_skel:
|
||||
magnum-infra_containers:
|
||||
magnum_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
magnum-infra_hosts:
|
||||
magnum_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -29,13 +29,13 @@ component_skel:
|
||||
container_skel:
|
||||
manila_container:
|
||||
belongs_to:
|
||||
- manila-infra_containers
|
||||
- manila_infra_containers
|
||||
contains:
|
||||
- manila_api
|
||||
- manila_scheduler
|
||||
manila_data_container:
|
||||
belongs_to:
|
||||
- manila-data_containers
|
||||
- manila_data_containers
|
||||
contains:
|
||||
- manila_data
|
||||
- manila_share
|
||||
@@ -43,15 +43,15 @@ container_skel:
|
||||
is_metal: true
|
||||
|
||||
physical_skel:
|
||||
manila-data_containers:
|
||||
manila_data_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
manila-data_hosts:
|
||||
manila_data_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
manila-infra_containers:
|
||||
manila_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
manila-infra_hosts:
|
||||
manila_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -27,28 +27,28 @@ component_skel:
|
||||
container_skel:
|
||||
masakari_api_container:
|
||||
belongs_to:
|
||||
- masakari-infra_containers
|
||||
- masakari_infra_containers
|
||||
contains:
|
||||
- masakari_engine
|
||||
- masakari_api
|
||||
masakari_monitors_container:
|
||||
belongs_to:
|
||||
- masakari-monitor_containers
|
||||
- masakari_monitor_containers
|
||||
contains:
|
||||
- masakari_monitor
|
||||
properties:
|
||||
is_metal: true
|
||||
|
||||
physical_skel:
|
||||
masakari-monitor_containers:
|
||||
masakari_monitor_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
masakari-monitor_hosts:
|
||||
masakari_monitor_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
masakari-infra_containers:
|
||||
masakari_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
masakari-infra_hosts:
|
||||
masakari_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
@@ -23,7 +23,7 @@ container_skel:
|
||||
memcached_container:
|
||||
belongs_to:
|
||||
- memcaching_containers
|
||||
- shared-infra_containers
|
||||
- shared_infra_containers
|
||||
contains:
|
||||
- memcached
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ component_skel:
|
||||
container_skel:
|
||||
mistral_container:
|
||||
belongs_to:
|
||||
- mistral-infra_containers
|
||||
- mistral_infra_containers
|
||||
contains:
|
||||
- mistral_api
|
||||
- mistral_engine
|
||||
@@ -38,9 +38,9 @@ container_skel:
|
||||
- mistral_notifier
|
||||
|
||||
physical_skel:
|
||||
mistral-infra_containers:
|
||||
mistral_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
mistral-infra_hosts:
|
||||
mistral_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
+12
-12
@@ -58,7 +58,7 @@ container_skel:
|
||||
neutron_agents_container:
|
||||
belongs_to:
|
||||
- network_containers
|
||||
- network-agent_containers
|
||||
- network_agent_containers
|
||||
contains:
|
||||
- ironic_neutron_agent
|
||||
- neutron_agent
|
||||
@@ -74,12 +74,12 @@ container_skel:
|
||||
neutron_server_container:
|
||||
belongs_to:
|
||||
- network_containers
|
||||
- network-infra_containers
|
||||
- network_infra_containers
|
||||
contains:
|
||||
- neutron_server
|
||||
neutron_ovn_gateway_container:
|
||||
belongs_to:
|
||||
- network-gateway_containers
|
||||
- network_gateway_containers
|
||||
contains:
|
||||
- neutron_ovn_controller
|
||||
- neutron_ovn_gateway
|
||||
@@ -87,7 +87,7 @@ container_skel:
|
||||
is_metal: true
|
||||
neutron_ovn_northd_container:
|
||||
belongs_to:
|
||||
- network-northd_containers
|
||||
- network_northd_containers
|
||||
contains:
|
||||
- neutron_ovn_northd
|
||||
|
||||
@@ -98,27 +98,27 @@ physical_skel:
|
||||
network_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
network-agent_containers:
|
||||
network_agent_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
network-agent_hosts:
|
||||
network_agent_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
network-infra_containers:
|
||||
network_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
network-infra_hosts:
|
||||
network_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
network-gateway_containers:
|
||||
network_gateway_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
network-gateway_hosts:
|
||||
network_gateway_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
network-northd_containers:
|
||||
network_northd_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
network-northd_hosts:
|
||||
network_northd_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
+10
-10
@@ -37,8 +37,8 @@ component_skel:
|
||||
container_skel:
|
||||
nova_api_container:
|
||||
belongs_to:
|
||||
- compute-infra_containers
|
||||
- os-infra_containers
|
||||
- compute_infra_containers
|
||||
- os_infra_containers
|
||||
contains:
|
||||
- nova_api_metadata
|
||||
- nova_api_os_compute
|
||||
@@ -48,8 +48,8 @@ container_skel:
|
||||
nova_compute_container:
|
||||
belongs_to:
|
||||
- compute_containers
|
||||
- kvm-compute_containers
|
||||
- qemu-compute_containers
|
||||
- kvm_compute_containers
|
||||
- qemu_compute_containers
|
||||
contains:
|
||||
- neutron_openvswitch_agent
|
||||
- neutron_sriov_nic_agent
|
||||
@@ -60,10 +60,10 @@ container_skel:
|
||||
|
||||
|
||||
physical_skel:
|
||||
compute-infra_containers:
|
||||
compute_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
compute-infra_hosts:
|
||||
compute_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
compute_containers:
|
||||
@@ -72,15 +72,15 @@ physical_skel:
|
||||
compute_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
kvm-compute_containers:
|
||||
kvm_compute_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
kvm-compute_hosts:
|
||||
kvm_compute_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
qemu-compute_containers:
|
||||
qemu_compute_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
qemu-compute_hosts:
|
||||
qemu_compute_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
+11
-11
@@ -14,16 +14,16 @@
|
||||
# limitations under the License.
|
||||
|
||||
component_skel:
|
||||
octavia-api:
|
||||
octavia_api:
|
||||
belongs_to:
|
||||
- octavia_all
|
||||
octavia-worker:
|
||||
octavia_worker:
|
||||
belongs_to:
|
||||
- octavia_all
|
||||
octavia-housekeeping:
|
||||
octavia_housekeeping:
|
||||
belongs_to:
|
||||
- octavia_all
|
||||
octavia-health-manager:
|
||||
octavia_health_manager:
|
||||
belongs_to:
|
||||
- octavia_all
|
||||
|
||||
@@ -31,17 +31,17 @@ component_skel:
|
||||
container_skel:
|
||||
octavia_server_container:
|
||||
belongs_to:
|
||||
- octavia-infra_containers
|
||||
- octavia_infra_containers
|
||||
contains:
|
||||
- octavia-api
|
||||
- octavia-worker
|
||||
- octavia-housekeeping
|
||||
- octavia-health-manager
|
||||
- octavia_api
|
||||
- octavia_worker
|
||||
- octavia_housekeeping
|
||||
- octavia_health_manager
|
||||
|
||||
physical_skel:
|
||||
octavia-infra_containers:
|
||||
octavia_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
octavia-infra_hosts:
|
||||
octavia_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
# limitations under the License.
|
||||
|
||||
physical_skel:
|
||||
os-infra_containers:
|
||||
os_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
os-infra_hosts:
|
||||
os_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -22,15 +22,15 @@ component_skel:
|
||||
container_skel:
|
||||
repo_container:
|
||||
belongs_to:
|
||||
- repo-infra_containers
|
||||
- repo_infra_containers
|
||||
contains:
|
||||
- pkg_repo
|
||||
|
||||
|
||||
physical_skel:
|
||||
repo-infra_hosts:
|
||||
repo_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
repo-infra_containers:
|
||||
repo_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
|
||||
@@ -22,15 +22,15 @@ component_skel:
|
||||
container_skel:
|
||||
placement_container:
|
||||
belongs_to:
|
||||
- os-infra_containers
|
||||
- placement-infra_containers
|
||||
- os_infra_containers
|
||||
- placement_infra_containers
|
||||
contains:
|
||||
- placement_api
|
||||
|
||||
physical_skel:
|
||||
placement-infra_containers:
|
||||
placement_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
placement-infra_hosts:
|
||||
placement_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -23,7 +23,7 @@ container_skel:
|
||||
rabbit_mq_container:
|
||||
belongs_to:
|
||||
- mq_containers
|
||||
- shared-infra_containers
|
||||
- shared_infra_containers
|
||||
contains:
|
||||
- rabbitmq
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
# limitations under the License.
|
||||
|
||||
physical_skel:
|
||||
shared-infra_containers:
|
||||
shared_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
shared-infra_hosts:
|
||||
shared_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -22,7 +22,7 @@ component_skel:
|
||||
container_skel:
|
||||
swift_remote_container:
|
||||
belongs_to:
|
||||
- swift-remote_containers
|
||||
- swift_remote_containers
|
||||
contains:
|
||||
- swift_remote
|
||||
properties:
|
||||
@@ -30,9 +30,9 @@ container_skel:
|
||||
|
||||
|
||||
physical_skel:
|
||||
swift-remote_containers:
|
||||
swift_remote_containers:
|
||||
belongs_to:
|
||||
- remote_containers
|
||||
swift-remote_hosts:
|
||||
swift_remote_hosts:
|
||||
belongs_to:
|
||||
- remote
|
||||
|
||||
@@ -31,7 +31,7 @@ component_skel:
|
||||
container_skel:
|
||||
swift_proxy_container:
|
||||
belongs_to:
|
||||
- swift-proxy_containers
|
||||
- swift_proxy_containers
|
||||
contains:
|
||||
- swift_proxy
|
||||
swift_acc_container:
|
||||
@@ -64,9 +64,9 @@ physical_skel:
|
||||
swift_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
swift-proxy_containers:
|
||||
swift_proxy_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
swift-proxy_hosts:
|
||||
swift_proxy_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -31,7 +31,7 @@ component_skel:
|
||||
container_skel:
|
||||
trove_api_container:
|
||||
belongs_to:
|
||||
- trove-infra_containers
|
||||
- trove_infra_containers
|
||||
contains:
|
||||
- trove_api
|
||||
- trove_conductor
|
||||
@@ -39,9 +39,9 @@ container_skel:
|
||||
|
||||
|
||||
physical_skel:
|
||||
trove-infra_containers:
|
||||
trove_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
trove-infra_hosts:
|
||||
trove_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -23,7 +23,7 @@ container_skel:
|
||||
utility_container:
|
||||
belongs_to:
|
||||
- operator_containers
|
||||
- shared-infra_containers
|
||||
- shared_infra_containers
|
||||
contains:
|
||||
- utility
|
||||
|
||||
|
||||
@@ -10,12 +10,12 @@ component_skel:
|
||||
container_skel:
|
||||
zun_api_container:
|
||||
belongs_to:
|
||||
- zun-infra_containers
|
||||
- zun_infra_containers
|
||||
contains:
|
||||
- zun_api
|
||||
zun_compute_container:
|
||||
belongs_to:
|
||||
- zun-compute_containers
|
||||
- zun_compute_containers
|
||||
contains:
|
||||
- neutron_openvswitch_agent
|
||||
- neutron_sriov_nic_agent
|
||||
@@ -24,15 +24,15 @@ container_skel:
|
||||
is_metal: true
|
||||
|
||||
physical_skel:
|
||||
zun-compute_containers:
|
||||
zun_compute_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
zun-compute_hosts:
|
||||
zun_compute_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
zun-infra_containers:
|
||||
zun_infra_containers:
|
||||
belongs_to:
|
||||
- all_containers
|
||||
zun-infra_hosts:
|
||||
zun_infra_hosts:
|
||||
belongs_to:
|
||||
- hosts
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
ceph_client_package_state: "{{ package_state }}"
|
||||
|
||||
## ceph-ansible configuration
|
||||
mon_group_name: ceph-mon
|
||||
mon_group_name: ceph_mon
|
||||
mgr_group_name: "{{ mon_group_name }}"
|
||||
osd_group_name: ceph-osd
|
||||
rgw_group_name: ceph-rgw
|
||||
mds_group_name: ceph-mds
|
||||
nfs_group_name: ceph-nfs
|
||||
osd_group_name: ceph_osd
|
||||
rgw_group_name: ceph_rgw
|
||||
mds_group_name: ceph_mds
|
||||
nfs_group_name: ceph_nfs
|
||||
|
||||
# NOTE: Ubuntu 24.04 at the moment does not have a community repository and Ceph is only installable from UCA or native repository
|
||||
# Values of origin/source are overriden for Ubuntu 24.04 explicitly to ensure seamless installation out of the box
|
||||
|
||||
@@ -36,7 +36,7 @@ ceph_conf_overrides: "{{ (ceph_conf_overrides_rgw | default({})) | combine(ceph_
|
||||
|
||||
# Disable the NFS gateway PPA and package install by default as it is not
|
||||
# needed.
|
||||
nfs_file_gw: "{{ (('ceph-nfs' in groups) and ('ceph-mds' in groups)) }}"
|
||||
nfs_file_gw: "{{ (('ceph_nfs' in groups) and ('ceph_mds' in groups)) }}"
|
||||
nfs_obj_gw: False
|
||||
nfs_ganesha_stable: True
|
||||
nfs_ganesha_stable_deb_repo: http://ppa.launchpad.net/nfs-ganesha/nfs-ganesha-5/ubuntu
|
||||
|
||||
+56
-4
@@ -181,6 +181,55 @@ class GroupConflict(Exception):
|
||||
pass
|
||||
|
||||
|
||||
def _check_ip_conflict_on_merge(existing_group, new_group):
|
||||
"""Check for IP conflicts when merging two host groups.
|
||||
|
||||
:param existing_group: ``dict`` The group already in the config.
|
||||
:param new_group: ``dict`` The group to be merged.
|
||||
:raises: MultipleIpForHostError
|
||||
"""
|
||||
for hostname, entries in new_group.items():
|
||||
if hostname in existing_group:
|
||||
existing_ip = existing_group[hostname].get('ip')
|
||||
new_ip = entries.get('ip')
|
||||
if existing_ip and new_ip and existing_ip != new_ip:
|
||||
raise MultipleIpForHostError(hostname, existing_ip, new_ip)
|
||||
|
||||
|
||||
def _normalize_user_config(raw_config):
|
||||
"""Normalize group names in user config and merge dashed/underscored names
|
||||
|
||||
This function iterates through the raw configuration, normalizes group
|
||||
names by replacing dashes with underscores, and merges groups that become
|
||||
duplicates after normalization.
|
||||
|
||||
If a group with a dash and a group with an underscore (which would result
|
||||
in the same name) are both defined as host groups (dictionaries),
|
||||
their hosts are merged. During the merge, it checks for IP address
|
||||
conflicts for any host defined in both groups.
|
||||
|
||||
For non-dictionary values, the last-seen value for a given normalized
|
||||
key will overwrite previous ones.
|
||||
|
||||
:param raw_config: ``dict`` The user configuration loaded from files.
|
||||
:returns: A ``dict`` with normalized and merged configuration.
|
||||
:raises: MultipleIpForHostError
|
||||
"""
|
||||
normalized_config = {}
|
||||
for key, value in raw_config.items():
|
||||
normalized_key = key.replace('-', '_')
|
||||
if normalized_key in normalized_config:
|
||||
existing_value = normalized_config[normalized_key]
|
||||
if isinstance(existing_value, dict) and isinstance(value, dict):
|
||||
_check_ip_conflict_on_merge(existing_value, value)
|
||||
existing_value.update(value)
|
||||
else:
|
||||
normalized_config[normalized_key] = value
|
||||
else:
|
||||
normalized_config[normalized_key] = value
|
||||
return normalized_config
|
||||
|
||||
|
||||
def _hosts_in_group(group, inventory):
|
||||
"""Generator that flattens nested inventory data.
|
||||
|
||||
@@ -326,6 +375,7 @@ def _append_to_host_groups(inventory, container_type, assignment, host_type,
|
||||
r'\g<group>_all',
|
||||
container_type
|
||||
)
|
||||
physical_group_type = physical_group_type.replace('-', '_')
|
||||
if physical_group_type not in inventory:
|
||||
logger.debug("Added %s group to inventory", physical_group_type)
|
||||
inventory[physical_group_type] = {'hosts': []}
|
||||
@@ -415,6 +465,7 @@ def _add_container_hosts(assignment, config, container_group, container_type,
|
||||
r'\g<group>_hosts',
|
||||
container_type
|
||||
)
|
||||
physical_host_type = physical_host_type.replace('-', '_')
|
||||
container_name = re.sub(r'_', '-', f'{container_group}')
|
||||
# If the physical host type is not in config return
|
||||
if physical_host_type not in config:
|
||||
@@ -469,7 +520,7 @@ def _add_container_hosts(assignment, config, container_group, container_type,
|
||||
)
|
||||
|
||||
physical_host = inventory['_meta']['hostvars'][host_type]
|
||||
container_host_type = '{}-host_containers'.format(host_type)
|
||||
container_host_type = '{}_host_containers'.format(host_type)
|
||||
if 'container_types' not in physical_host:
|
||||
physical_host['container_types'] = container_host_type
|
||||
elif physical_host['container_types'] != container_host_type:
|
||||
@@ -818,7 +869,7 @@ def container_skel_load(container_skel, inventory, config):
|
||||
)
|
||||
for host_type in inventory[physical_host_type]['hosts']:
|
||||
container_mapping = inventory[key]['children']
|
||||
host_type_containers = '{}-host_containers'.format(host_type)
|
||||
host_type_containers = '{}_host_containers'.format(host_type)
|
||||
if host_type_containers in inventory:
|
||||
du.append_if(array=container_mapping,
|
||||
item=host_type_containers)
|
||||
@@ -864,7 +915,7 @@ def container_skel_load(container_skel, inventory, config):
|
||||
|
||||
for group in p_net.get('group_binds', list()):
|
||||
_add_additional_networks(
|
||||
key=group,
|
||||
key=group.replace('-', '_'),
|
||||
inventory=inventory,
|
||||
ip_q=ip_from_q,
|
||||
q_name=q_name,
|
||||
@@ -1211,10 +1262,11 @@ def generate(config=None,
|
||||
_prepare_debug_logger()
|
||||
|
||||
try:
|
||||
user_defined_config = filesys.load_user_configuration(config)
|
||||
raw_user_defined_config = filesys.load_user_configuration(config)
|
||||
except filesys.MissingDataSource as ex:
|
||||
raise SystemExit(ex)
|
||||
|
||||
user_defined_config = _normalize_user_config(raw_user_defined_config)
|
||||
base_env_dir = environment
|
||||
base_env = filesys.load_environment(base_env_dir, {})
|
||||
environment = filesys.load_environment(config, base_env)
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
prelude: >
|
||||
Group definitions for OpenStack-Ansible were changed by replacing dashes
|
||||
with underscores. Please check the ``Upgrade`` section for more detatails
|
||||
on how this affects you.
|
||||
upgrade:
|
||||
- |
|
||||
Group ``metering-group_container`` has been renamed to
|
||||
``ceilometer_compute_container`` for general consistency across
|
||||
group naming logic
|
||||
- |
|
||||
All OpenStack-Ansible groups, conf.d and openstack_user_config.yml
|
||||
definitions were renamed by replacing all existing dashes with
|
||||
underscores.
|
||||
This change was made in order to comply with Ansible groups naming
|
||||
convention, which has been introduced back in Ansible 2.8.
|
||||
While old definitions should work after the upgrade, it is still
|
||||
recommended to replace group names with underscores inside of the
|
||||
``openstack_user_config.yml`` and conf.d files, as well as the
|
||||
``openstack_inventory.json``, as the dynamic_inventory will not perform
|
||||
the conversion. Please note, that old group names can be also referenced
|
||||
in ``openstack_user_config.yml`` inside of the``provider_networks`` ->
|
||||
``group_binds``. So please ensure, that network bindings are also updated
|
||||
and contain group names only with underscores in their names.
|
||||
Ansible will issue a warning in case invalid group names are present in
|
||||
the ``openstack_inventory.json``, but will proceed with the replacement
|
||||
of dashes with underscores.
|
||||
You can ignore these warning messages and return the previous behavior
|
||||
by adding ``ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=ignore`` to
|
||||
``/etc/openstack_deploy/user.rc`` or silence warnings and accept conversion
|
||||
to the new group names by adding
|
||||
``ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS=silently`` to the
|
||||
``/etc/openstack_deploy/user.rc``.
|
||||
Change of the value for ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS may affect
|
||||
environments, where deploy hosts are also used actively to run 3rd party
|
||||
Ansible roles and playbooks.
|
||||
You can read more about the variable and it's effect on
|
||||
`Ansible Community Documentation <https://docs.ansible.com/projects/ansible/latest/reference_appendices/config.html#transform-invalid-group-chars>`_
|
||||
@@ -59,6 +59,6 @@ export ANSIBLE_FORKS="${ANSIBLE_FORKS:-OSA_ANSIBLE_FORKS}"
|
||||
export ANSIBLE_FORCE_HANDLERS="${ANSIBLE_FORCE_HANDLERS:-True}"
|
||||
export ANSIBLE_PYTHON_INTERPRETER="${ANSIBLE_PYTHON_INTERPRETER:-OSA_ANSIBLE_PYTHON_INTERPRETER}"
|
||||
|
||||
export ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS="${ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS:-ignore}"
|
||||
export ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS="${ANSIBLE_TRANSFORM_INVALID_GROUP_CHARS:-always}"
|
||||
|
||||
export ANSIBLE_CALLBACK_RESULT_FORMAT="${ANSIBLE_CALLBACK_RESULT_FORMAT:-yaml}"
|
||||
|
||||
+266
-124
@@ -133,7 +133,7 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
inventory = None
|
||||
|
||||
expected_groups = [
|
||||
'aio1-host_containers',
|
||||
'aio1_host_containers',
|
||||
'all',
|
||||
'all_containers',
|
||||
'adjutant_all',
|
||||
@@ -157,30 +157,31 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'ceilometer_agent_compute',
|
||||
'ceilometer_agent_notification',
|
||||
'ceilometer_central_container',
|
||||
'ceilometer_compute_container',
|
||||
'ceph_all',
|
||||
'ceph-mon_all',
|
||||
'ceph-mon_containers',
|
||||
'ceph-mon_container',
|
||||
'ceph-mon_hosts',
|
||||
'ceph-mon',
|
||||
'ceph-mds',
|
||||
'ceph-mds_containers',
|
||||
'ceph-mds_container',
|
||||
'ceph-mds_hosts',
|
||||
'ceph-osd_all',
|
||||
'ceph-osd_containers',
|
||||
'ceph-osd_container',
|
||||
'ceph-osd_hosts',
|
||||
'ceph-osd',
|
||||
'ceph-rgw_all',
|
||||
'ceph-rgw_containers',
|
||||
'ceph-rgw_container',
|
||||
'ceph-rgw_hosts',
|
||||
'ceph-rgw',
|
||||
'ceph-nfs',
|
||||
'ceph-nfs_containers',
|
||||
'ceph-nfs_container',
|
||||
'ceph-nfs_hosts',
|
||||
'ceph_mon_all',
|
||||
'ceph_mon_containers',
|
||||
'ceph_mon_container',
|
||||
'ceph_mon_hosts',
|
||||
'ceph_mon',
|
||||
'ceph_mds',
|
||||
'ceph_mds_containers',
|
||||
'ceph_mds_container',
|
||||
'ceph_mds_hosts',
|
||||
'ceph_osd_all',
|
||||
'ceph_osd_containers',
|
||||
'ceph_osd_container',
|
||||
'ceph_osd_hosts',
|
||||
'ceph_osd',
|
||||
'ceph_rgw_all',
|
||||
'ceph_rgw_containers',
|
||||
'ceph_rgw_container',
|
||||
'ceph_rgw_hosts',
|
||||
'ceph_rgw',
|
||||
'ceph_nfs',
|
||||
'ceph_nfs_containers',
|
||||
'ceph_nfs_container',
|
||||
'ceph_nfs_hosts',
|
||||
'cinder_all',
|
||||
'cinder_api',
|
||||
'cinder_api_container',
|
||||
@@ -195,14 +196,14 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'cloudkitty_engine',
|
||||
'rating_hosts',
|
||||
'rating_all',
|
||||
'cluster-api_all',
|
||||
'cluster-api_containers',
|
||||
'cluster-api_hosts',
|
||||
'cluster_api_all',
|
||||
'cluster_api_containers',
|
||||
'cluster_api_hosts',
|
||||
'coordination_containers',
|
||||
'coordination_hosts',
|
||||
'compute-infra_all',
|
||||
'compute-infra_containers',
|
||||
'compute-infra_hosts',
|
||||
'compute_infra_all',
|
||||
'compute_infra_containers',
|
||||
'compute_infra_hosts',
|
||||
'compute_all',
|
||||
'compute_containers',
|
||||
'compute_hosts',
|
||||
@@ -255,9 +256,9 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'image_all',
|
||||
'image_containers',
|
||||
'image_hosts',
|
||||
'ironic-infra_all',
|
||||
'ironic-infra_containers',
|
||||
'ironic-infra_hosts',
|
||||
'ironic_infra_all',
|
||||
'ironic_infra_containers',
|
||||
'ironic_infra_hosts',
|
||||
'ironic_all',
|
||||
'ironic_api',
|
||||
'ironic_api_container',
|
||||
@@ -265,61 +266,61 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'ironic_console',
|
||||
'ironic_compute',
|
||||
'ironic_compute_container',
|
||||
'ironic-compute_containers',
|
||||
'ironic-compute_all',
|
||||
'ironic-compute_hosts',
|
||||
'ironic-inspector_all',
|
||||
'ironic_compute_containers',
|
||||
'ironic_compute_all',
|
||||
'ironic_compute_hosts',
|
||||
'ironic_inspector_all',
|
||||
'ironic_inspector',
|
||||
'ironic-inspector_containers',
|
||||
'ironic-inspector_hosts',
|
||||
'ironic_inspector_containers',
|
||||
'ironic_inspector_hosts',
|
||||
'ironic_inspector_container',
|
||||
'ironic_neutron_agent',
|
||||
'k8s_all',
|
||||
'k8s_capi',
|
||||
'k8s_container',
|
||||
'key-manager_containers',
|
||||
'key-manager_hosts',
|
||||
'key-manager_all',
|
||||
'key_manager_containers',
|
||||
'key_manager_hosts',
|
||||
'key_manager_all',
|
||||
'keystone',
|
||||
'keystone_all',
|
||||
'keystone_container',
|
||||
'kvm-compute_containers',
|
||||
'kvm-compute_hosts',
|
||||
'kvm_compute_containers',
|
||||
'kvm_compute_hosts',
|
||||
'lxc_hosts',
|
||||
'magnum',
|
||||
'magnum-infra_all',
|
||||
'magnum-infra_containers',
|
||||
'magnum-infra_hosts',
|
||||
'magnum_infra_all',
|
||||
'magnum_infra_containers',
|
||||
'magnum_infra_hosts',
|
||||
'magnum_all',
|
||||
'magnum_container',
|
||||
'manila_all',
|
||||
'manila_api',
|
||||
'manila_container',
|
||||
'manila_data',
|
||||
'manila-data_all',
|
||||
'manila_data_all',
|
||||
'manila_data_container',
|
||||
'manila-data_containers',
|
||||
'manila-data_hosts',
|
||||
'manila-infra_all',
|
||||
'manila-infra_containers',
|
||||
'manila-infra_hosts',
|
||||
'manila_data_containers',
|
||||
'manila_data_hosts',
|
||||
'manila_infra_all',
|
||||
'manila_infra_containers',
|
||||
'manila_infra_hosts',
|
||||
'manila_scheduler',
|
||||
'manila_share',
|
||||
'masakari_all',
|
||||
'masakari_api',
|
||||
'masakari_api_container',
|
||||
'masakari_engine',
|
||||
'masakari-infra_all',
|
||||
'masakari-infra_containers',
|
||||
'masakari-infra_hosts',
|
||||
'masakari_infra_all',
|
||||
'masakari_infra_containers',
|
||||
'masakari_infra_hosts',
|
||||
'masakari_monitor',
|
||||
'masakari-monitor_all',
|
||||
'masakari-monitor_containers',
|
||||
'masakari_monitor_all',
|
||||
'masakari_monitor_containers',
|
||||
'masakari_monitors_container',
|
||||
'masakari-monitor_hosts',
|
||||
'mistral-infra_all',
|
||||
'mistral-infra_containers',
|
||||
'mistral-infra_hosts',
|
||||
'masakari_monitor_hosts',
|
||||
'mistral_infra_all',
|
||||
'mistral_infra_containers',
|
||||
'mistral_infra_hosts',
|
||||
'mistral_all',
|
||||
'mistral_container',
|
||||
'mistral_api',
|
||||
@@ -329,23 +330,23 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'mano_all',
|
||||
'mano_containers',
|
||||
'mano_hosts',
|
||||
'octavia-infra_hosts',
|
||||
'octavia_infra_hosts',
|
||||
'octavia_all',
|
||||
'octavia-api',
|
||||
'octavia_api',
|
||||
'octavia_server_container',
|
||||
'octavia-worker',
|
||||
'octavia-housekeeping',
|
||||
'octavia-health-manager',
|
||||
'octavia-infra_containers',
|
||||
'octavia-infra_all',
|
||||
'placement-infra_all',
|
||||
'placement-infra_containers',
|
||||
'placement-infra_hosts',
|
||||
'octavia_worker',
|
||||
'octavia_housekeeping',
|
||||
'octavia_health_manager',
|
||||
'octavia_infra_containers',
|
||||
'octavia_infra_all',
|
||||
'placement_infra_all',
|
||||
'placement_infra_containers',
|
||||
'placement_infra_hosts',
|
||||
'placement_all',
|
||||
'placement_container',
|
||||
'placement_api',
|
||||
'qemu-compute_containers',
|
||||
'qemu-compute_hosts',
|
||||
'qemu_compute_containers',
|
||||
'qemu_compute_hosts',
|
||||
'reservation_all',
|
||||
'reservation_containers',
|
||||
'reservation_hosts',
|
||||
@@ -354,24 +355,23 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'trove_conductor',
|
||||
'trove_taskmanager',
|
||||
'trove_api_container',
|
||||
'trove-infra_containers',
|
||||
'trove-infra_hosts',
|
||||
'trove-infra_all',
|
||||
'trove_infra_containers',
|
||||
'trove_infra_hosts',
|
||||
'trove_infra_all',
|
||||
'memcached',
|
||||
'memcached_all',
|
||||
'memcached_container',
|
||||
'memcaching_containers',
|
||||
'memcaching_hosts',
|
||||
'metering-alarm_all',
|
||||
'metering-alarm_containers',
|
||||
'metering-alarm_hosts',
|
||||
'metering-compute_all',
|
||||
'metering-compute_container',
|
||||
'metering-compute_containers',
|
||||
'metering-compute_hosts',
|
||||
'metering-infra_all',
|
||||
'metering-infra_containers',
|
||||
'metering-infra_hosts',
|
||||
'metering_alarm_all',
|
||||
'metering_alarm_containers',
|
||||
'metering_alarm_hosts',
|
||||
'metering_compute_all',
|
||||
'metering_compute_containers',
|
||||
'metering_compute_hosts',
|
||||
'metering_infra_all',
|
||||
'metering_infra_containers',
|
||||
'metering_infra_hosts',
|
||||
'metrics_all',
|
||||
'metrics_containers',
|
||||
'metrics_hosts',
|
||||
@@ -380,12 +380,12 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'network_all',
|
||||
'network_containers',
|
||||
'network_hosts',
|
||||
'network-agent_containers',
|
||||
'network-agent_hosts',
|
||||
'network-gateway_containers',
|
||||
'network-gateway_hosts',
|
||||
'network-infra_containers',
|
||||
'network-infra_hosts',
|
||||
'network_agent_containers',
|
||||
'network_agent_hosts',
|
||||
'network_gateway_containers',
|
||||
'network_gateway_hosts',
|
||||
'network_infra_containers',
|
||||
'network_infra_hosts',
|
||||
'neutron_agent',
|
||||
'neutron_agents_container',
|
||||
'neutron_all',
|
||||
@@ -394,8 +394,8 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'neutron_l3_agent',
|
||||
'neutron_metadata_agent',
|
||||
'neutron_metering_agent',
|
||||
'network-northd_containers',
|
||||
'network-northd_hosts',
|
||||
'network_northd_containers',
|
||||
'network_northd_hosts',
|
||||
'neutron_openvswitch_agent',
|
||||
'neutron_ovn_controller',
|
||||
'neutron_ovn_gateway',
|
||||
@@ -419,8 +419,8 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'orchestration_all',
|
||||
'orchestration_containers',
|
||||
'orchestration_hosts',
|
||||
'os-infra_containers',
|
||||
'os-infra_hosts',
|
||||
'os_infra_containers',
|
||||
'os_infra_hosts',
|
||||
'pkg_repo',
|
||||
'rabbit_mq_container',
|
||||
'rabbitmq',
|
||||
@@ -430,10 +430,10 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'registration_hosts',
|
||||
'remote',
|
||||
'remote_containers',
|
||||
'repo-infra_all',
|
||||
'repo-infra_containers',
|
||||
'repo-infra_hosts',
|
||||
'repo-infra_all',
|
||||
'repo_infra_all',
|
||||
'repo_infra_containers',
|
||||
'repo_infra_hosts',
|
||||
'repo_infra_all',
|
||||
'repo_all',
|
||||
'repo_container',
|
||||
'skyline',
|
||||
@@ -442,20 +442,20 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'skyline_dashboard_containers',
|
||||
'skyline_dashboard_hosts',
|
||||
'skyline_dashboard_all',
|
||||
'shared-infra_all',
|
||||
'shared-infra_containers',
|
||||
'shared-infra_hosts',
|
||||
'storage-infra_all',
|
||||
'storage-infra_containers',
|
||||
'storage-infra_hosts',
|
||||
'shared_infra_all',
|
||||
'shared_infra_containers',
|
||||
'shared_infra_hosts',
|
||||
'storage_infra_all',
|
||||
'storage_infra_containers',
|
||||
'storage_infra_hosts',
|
||||
'storage_all',
|
||||
'storage_containers',
|
||||
'storage_hosts',
|
||||
'swift-proxy_all',
|
||||
'swift-proxy_containers',
|
||||
'swift-proxy_hosts',
|
||||
'swift-remote_containers',
|
||||
'swift-remote_hosts',
|
||||
'swift_proxy_all',
|
||||
'swift_proxy_containers',
|
||||
'swift_proxy_hosts',
|
||||
'swift_remote_containers',
|
||||
'swift_remote_hosts',
|
||||
'swift_acc',
|
||||
'swift_acc_container',
|
||||
'swift_all',
|
||||
@@ -484,16 +484,16 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
|
||||
'zookeeper',
|
||||
'zookeeper_all',
|
||||
'zookeeper_container',
|
||||
'zun-infra_all',
|
||||
'zun-infra_containers',
|
||||
'zun-infra_hosts',
|
||||
'zun_infra_all',
|
||||
'zun_infra_containers',
|
||||
'zun_infra_hosts',
|
||||
'zun_all',
|
||||
'zun_api',
|
||||
'zun_api_container',
|
||||
'zun_compute',
|
||||
'zun-compute_containers',
|
||||
'zun-compute_hosts',
|
||||
'zun-compute_all',
|
||||
'zun_compute_containers',
|
||||
'zun_compute_hosts',
|
||||
'zun_compute_all',
|
||||
'zun_compute_container',
|
||||
]
|
||||
|
||||
@@ -774,7 +774,7 @@ class TestConfigChecks(TestConfigCheckBase):
|
||||
# Even with the same hash seed, different OSes get different results,
|
||||
# eg. local OS X vs gate's Linux
|
||||
config = collections.OrderedDict()
|
||||
config['shared-infra_hosts'] = {
|
||||
config['shared_infra_hosts'] = {
|
||||
'host1': {
|
||||
'ip': '192.168.1.1'
|
||||
}
|
||||
@@ -817,7 +817,7 @@ class TestConfigChecks(TestConfigCheckBase):
|
||||
# Even with the same hash seed, different OSes get different results,
|
||||
# eg. local OS X vs gate's Linux
|
||||
config = collections.OrderedDict()
|
||||
config['shared-infra_hosts'] = {
|
||||
config['shared_infra_hosts'] = {
|
||||
'host1': {
|
||||
'ip': '192.168.1.1'
|
||||
}
|
||||
@@ -836,7 +836,7 @@ class TestConfigChecks(TestConfigCheckBase):
|
||||
|
||||
def test_correct_hostname_ip_map(self):
|
||||
config = {
|
||||
'shared-infra_hosts': {
|
||||
'shared_infra_hosts': {
|
||||
'host1': {
|
||||
'ip': '192.168.1.1'
|
||||
}
|
||||
@@ -1332,7 +1332,7 @@ class TestLxcHosts(TestConfigCheckBase):
|
||||
self.assertEqual(1, len(inventory['lxc_hosts']['hosts']))
|
||||
|
||||
def test_lxc_hosts_members(self):
|
||||
self.add_host('shared-infra_hosts', 'aio2', '172.29.236.101')
|
||||
self.add_host('shared_infra_hosts', 'aio2', '172.29.236.101')
|
||||
inventory = get_inventory()
|
||||
self.assertIn('aio2', inventory['lxc_hosts']['hosts'])
|
||||
self.assertIn('aio1', inventory['lxc_hosts']['hosts'])
|
||||
@@ -1383,7 +1383,7 @@ class TestLxcHosts(TestConfigCheckBase):
|
||||
"""
|
||||
ansible_host_address = '172.20.0.101'
|
||||
management_address = '172.29.236.101'
|
||||
self.add_host('shared-infra_hosts', 'aio2', ansible_host_address, management_address)
|
||||
self.add_host('shared_infra_hosts', 'aio2', ansible_host_address, management_address)
|
||||
inventory = get_inventory()
|
||||
hostvars = inventory['_meta']['hostvars']['aio2']
|
||||
self.assertEqual(ansible_host_address, hostvars['ansible_host'])
|
||||
@@ -1608,7 +1608,7 @@ class TestNestsGroups(TestConfigCheckBase):
|
||||
self.assertEqual(nest_hosts_expected, nest_hosts)
|
||||
|
||||
def test_nest_containers(self):
|
||||
host_containers_group = 'aio1-host_containers'
|
||||
host_containers_group = 'aio1_host_containers'
|
||||
nest_containers_expected = set([host_containers_group])
|
||||
nest_containers = set(self.inventory['nest_containers']['children'])
|
||||
# Ensure we have only lxc_hosts in children
|
||||
@@ -1618,5 +1618,147 @@ class TestNestsGroups(TestConfigCheckBase):
|
||||
# Ensure that host-containers group is not empty
|
||||
self.assertTrue(len(self.inventory[host_containers_group]['hosts']) > 0)
|
||||
|
||||
|
||||
class TestGroupNameNormalization(TestConfigCheckBase):
|
||||
|
||||
def test_dashed_group_is_normalized(self):
|
||||
"""
|
||||
Test that a group with a dash is normalized to an underscore.
|
||||
"""
|
||||
self.add_config_key('my-test_hosts', {})
|
||||
self.add_host('my-test_hosts', 'testhost1', '10.0.0.1')
|
||||
self.write_config()
|
||||
|
||||
inventory = get_inventory()
|
||||
|
||||
# The normalized group should exist
|
||||
self.assertIn('my_test_hosts', inventory)
|
||||
# The original dashed group should not exist
|
||||
self.assertNotIn('my-test_hosts', inventory)
|
||||
# The host should be in the normalized group
|
||||
self.assertIn('testhost1', inventory['my_test_hosts']['hosts'])
|
||||
|
||||
def test_dashed_and_underscored_groups_are_merged(self):
|
||||
"""
|
||||
Test that hosts from dashed and underscored groups are merged.
|
||||
"""
|
||||
# Add a group with a dash
|
||||
self.add_config_key('merge-test_hosts', {})
|
||||
self.add_host('merge-test_hosts', 'host-dash', '10.0.0.2')
|
||||
|
||||
# Add the "same" group with an underscore
|
||||
self.add_config_key('merge_test_hosts', {})
|
||||
self.add_host('merge_test_hosts', 'host-underscore', '10.0.0.3')
|
||||
self.write_config()
|
||||
|
||||
inventory = get_inventory()
|
||||
|
||||
# The normalized group should exist
|
||||
self.assertIn('merge_test_hosts', inventory)
|
||||
# The original dashed group should not exist
|
||||
self.assertNotIn('merge-test_hosts', inventory)
|
||||
|
||||
# Both hosts should be in the merged group
|
||||
hosts = inventory['merge_test_hosts']['hosts']
|
||||
self.assertIn('host-dash', hosts)
|
||||
self.assertIn('host-underscore', hosts)
|
||||
self.assertEqual(len(hosts), 2)
|
||||
|
||||
def test_merge_groups_with_ip_conflict_raises_error(self):
|
||||
"""
|
||||
Test that merging groups with a host IP conflict raises an error.
|
||||
"""
|
||||
# Add a group with a dash
|
||||
self.add_config_key('conflict-test_hosts', {})
|
||||
self.add_host('conflict-test_hosts', 'conflicthost', '10.0.0.4')
|
||||
|
||||
# Add the "same" group with an underscore, and a host with the same
|
||||
# name but different IP.
|
||||
self.add_config_key('conflict_test_hosts', {})
|
||||
self.add_host('conflict_test_hosts', 'conflicthost', '10.0.0.5')
|
||||
self.write_config()
|
||||
|
||||
with self.assertRaises(di.MultipleIpForHostError) as context:
|
||||
get_inventory()
|
||||
|
||||
expected_msg = ("Host conflicthost has both 10.0.0.4 and 10.0.0.5 "
|
||||
"assigned")
|
||||
self.assertEqual(str(context.exception), expected_msg)
|
||||
|
||||
def test_storage_infra_normalization_and_container_creation(self):
|
||||
"""
|
||||
Test that `storage-infra_hosts` is treated as `storage_infra_hosts`
|
||||
and that containers are generated correctly.
|
||||
"""
|
||||
inventory = get_inventory()
|
||||
|
||||
self.assertIn('storage_infra_hosts', inventory)
|
||||
self.assertNotIn('storage-infra_hosts', inventory)
|
||||
self.assertIn('aio1', inventory['storage_infra_hosts']['hosts'])
|
||||
|
||||
|
||||
class TestProviderNetworkGroupBindNormalization(TestConfigCheckBase):
|
||||
def setUp(self):
|
||||
super(TestProviderNetworkGroupBindNormalization, self).setUp()
|
||||
self.env_path = os.path.join(TARGET_DIR, 'env.d/my-test.yml')
|
||||
self._create_test_env()
|
||||
|
||||
self.add_config_key('my_test_group_hosts', {})
|
||||
self.add_host('my_test_group_hosts', 'testhost1', '10.10.10.10')
|
||||
self.add_provider_network('test_net', '192.168.100.0/24')
|
||||
|
||||
pns = self.user_defined_config['global_overrides']['provider_networks']
|
||||
|
||||
new_pn = {
|
||||
'network': {
|
||||
'ip_from_q': 'test_net',
|
||||
'is_management_address': True,
|
||||
'container_bridge': 'br-test',
|
||||
'container_interface': 'eth-test',
|
||||
'container_type': 'veth',
|
||||
'group_binds': [
|
||||
'my-test-group_all'
|
||||
]
|
||||
}
|
||||
}
|
||||
pns.append(new_pn)
|
||||
|
||||
self.write_config()
|
||||
self.inventory = get_inventory()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestProviderNetworkGroupBindNormalization, self).tearDown()
|
||||
os.remove(self.env_path)
|
||||
os.rmdir(os.path.dirname(self.env_path))
|
||||
|
||||
def _create_test_env(self):
|
||||
data = """
|
||||
physical_skel:
|
||||
my_test_group_hosts:
|
||||
belongs_to:
|
||||
- my_test_group_all
|
||||
"""
|
||||
env = yaml.safe_load(data)
|
||||
env_dir = os.path.dirname(self.env_path)
|
||||
if not os.path.exists(env_dir):
|
||||
os.mkdir(env_dir)
|
||||
with open(self.env_path, 'w') as f:
|
||||
f.write(yaml.safe_dump(env))
|
||||
|
||||
def test_group_bind_is_normalized(self):
|
||||
"""
|
||||
Test that a dashed group name in group_binds is normalized.
|
||||
"""
|
||||
hostvars = self.inventory['_meta']['hostvars']['testhost1']
|
||||
container_networks = hostvars['container_networks']
|
||||
|
||||
self.assertIn('test_net_address', container_networks)
|
||||
|
||||
net_details = container_networks['test_net_address']
|
||||
self.assertEqual(net_details['bridge'], 'br-test')
|
||||
self.assertNotIn('interface', net_details.keys())
|
||||
self.assertEqual(net_details['address'], '10.10.10.10')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main(catchbreak=True)
|
||||
|
||||
Reference in New Issue
Block a user