tripleo-heat-templates/environments/network-isolation-no-tunneling.j2.yaml
Michele Baldessari 176b30649b Give the OVN DBS service a separate Vip
This change (with its dependent reviews) creates a separate VIP for the OVN DBS
service. A more detailed explanation can be found in https://bugs.launchpad.net/tripleo/+bug/1841811.
The short explanation is that the OVN DBS HA service puts some additional constraints on the VIP it
uses and that is problematic when that VIP is used by other services (e.g. a change in OVN DBS master
will move the VIP and will also reset all mysql connections. It also prevents us splitting OVN DBS from
where haproxy runs).

Tested as follows:
A) Deployed a mster environment with this review and all its dependencies and correctly obtained
an OVN DBS service with its own Vip and the OVN services
(controller/metadata) pointing to this separate Vip

B) Deployed a master environment as is and then applied this review +
dependencies and observed that a redeploy correctly created a new VIP,
reconfigured the services to point to the new VIP and that the old
obsolete constraints created around the per-network VIP were removed

Closes-Bug: #1841811

Depends-On: Ic62b0fbc0fee40638811a5cd77a5dc5a4d82acf5
Change-Id: I620e37117c26b5b51bf9e1eda91daeb00fdf0f43
2019-09-23 13:05:39 +00:00

47 lines
2.5 KiB
YAML

# ******************************************************************************
# DEPRECATED: Modify networks used for custom roles by modifying the role file
# in the roles/ directory, or disable the network entirely by setting network to
# "enabled: false" in network_data.yaml.
# ******************************************************************************
# Enable the creation of Neutron networks for isolated Overcloud
# traffic and configure each role to assign ports (related
# to that role) on these networks. This version of the environment
# has no dedicated VLAN for tunneling, for deployments that use
# VLAN mode, flat provider networks, etc.
resource_registry:
# networks as defined in network_data.yaml, except for tenant net
{%- for network in networks if network.enabled|default(true) and network.name != 'Tenant' %}
OS::TripleO::Network::{{network.name}}: ../network/{{network.name_lower|default(network.name.lower())}}.yaml
{%- endfor %}
OS::TripleO::Network::Tenant: OS::Heat::None
# Port assignments for the VIPs
{%- for network in networks if network.vip and network.name != 'Tenant' %}
OS::TripleO::Network::Ports::{{network.name}}VipPort: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml
{%- endfor %}
OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip.yaml
OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/vip.yaml
# Port assignments for each role are determined by the role definition.
{%- for role in roles %}
{#- Convert net map or net list to internal list of networks #}
{#- NOTE(hjensas): For backward compatibility support role data with both #}
{#- networks map (new schema) and network list (old schema). #}
{%- if role.networks is mapping %}
{%- set _role_networks = [] %}
{%- for key, val in role.networks.items() %}
{%- set _ = _role_networks.append(key) %}
{%- endfor %}
{%- else %}
{%- set _role_networks = role.networks %}
{%- endif %}
# Port assignments for the {{role.name}} role.
{%- for network in networks %}
{%- if network.name in _role_networks and network.enabled|default(true) and network.name != 'Tenant'%}
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml
{%- elif network.enabled|default(true) %}
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/noop.yaml
{%- endif %}
{%- endfor %}
{%- endfor %}