Merge "L3 routed networks - subnet fixed_ips (3/3)"
This commit is contained in:
commit
0e68a0e30f
@ -23,12 +23,23 @@ resource_registry:
|
|||||||
|
|
||||||
# Port assignments for each role are determined by the role definition.
|
# Port assignments for each role are determined by the role definition.
|
||||||
{%- for role in roles %}
|
{%- 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). #}
|
||||||
|
{%- set _role_networks = [] %}
|
||||||
|
{%- if role.networks is mapping %}
|
||||||
|
{%- for key,val in role.networks.items() %}
|
||||||
|
{%- set _role_networks = _role_networks.append(key) %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set _role_networks = role.networks %}
|
||||||
|
{%- endif %}
|
||||||
# Port assignments for the {{role.name}} role.
|
# Port assignments for the {{role.name}} role.
|
||||||
{%- for network in networks %}
|
{%- for network in networks %}
|
||||||
{%- if network.name in role.networks|default([]) and network.enabled|default(true) and network.name != 'Tenant'%}
|
{%- 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
|
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml
|
||||||
{%- elif network.enabled|default(true) %}
|
{%- elif network.enabled|default(true) %}
|
||||||
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/noop.yaml
|
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/noop.yaml
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
{% endfor %}
|
{%- endfor %}
|
||||||
|
@ -35,16 +35,27 @@ resource_registry:
|
|||||||
|
|
||||||
# Port assignments by role, edit role definition to assign networks to roles.
|
# Port assignments by role, edit role definition to assign networks to roles.
|
||||||
{%- for role in roles %}
|
{%- 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). #}
|
||||||
|
{%- set _role_networks = [] %}
|
||||||
|
{%- if role.networks is mapping %}
|
||||||
|
{%- for key,val in role.networks.items() %}
|
||||||
|
{%- set _role_networks = _role_networks.append(key) %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set _role_networks = role.networks %}
|
||||||
|
{%- endif %}
|
||||||
# Port assignments for the {{role.name}}
|
# Port assignments for the {{role.name}}
|
||||||
{%- for network in networks %}
|
{%- for network in networks %}
|
||||||
{%- if network.name in role.networks|default([]) and network.enabled|default(true) and network.name != 'Tenant' %}
|
{%- 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())}}_v6.yaml
|
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/{{network.name_lower|default(network.name.lower())}}_v6.yaml
|
||||||
{%- elif network.name in role.networks|default([]) and network.enabled|default(true) and network.name == 'Tenant' %}
|
{%- elif network.name in _role_networks and network.enabled|default(true) and network.name == 'Tenant' %}
|
||||||
# IPv4 until OVS and Neutron support IPv6 tunnel endpoints
|
# IPv4 until OVS and Neutron support IPv6 tunnel endpoints
|
||||||
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml
|
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
{% endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
|
|
||||||
parameter_defaults:
|
parameter_defaults:
|
||||||
|
@ -24,10 +24,21 @@ resource_registry:
|
|||||||
|
|
||||||
# Port assignments by role, edit role definition to assign networks to roles.
|
# Port assignments by role, edit role definition to assign networks to roles.
|
||||||
{%- for role in roles %}
|
{%- 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). #}
|
||||||
|
{%- set _role_networks = [] %}
|
||||||
|
{%- if role.networks is mapping %}
|
||||||
|
{%- for key,val in role.networks.items() %}
|
||||||
|
{%- set _role_networks = _role_networks.append(key) %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set _role_networks = role.networks %}
|
||||||
|
{%- endif %}
|
||||||
# Port assignments for the {{role.name}}
|
# Port assignments for the {{role.name}}
|
||||||
{%- for network in networks %}
|
{%- for network in networks %}
|
||||||
{%- if network.name in role.networks|default([]) and network.enabled|default(true) %}
|
{%- if network.name in _role_networks and network.enabled|default(true) %}
|
||||||
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml
|
OS::TripleO::{{role.name}}::Ports::{{network.name}}Port: ../network/ports/{{network.name_lower|default(network.name.lower())}}.yaml
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
{% endfor %}
|
{%- endfor %}
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
{#- 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). #}
|
||||||
|
{%- set _role_networks = [] %}
|
||||||
|
{%- if role.networks is mapping %}
|
||||||
|
{%- for key,val in role.networks.items() %}
|
||||||
|
{%- set _role_networks = _role_networks.append(key) %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set _role_networks = role.networks %}
|
||||||
|
{%- endif %}
|
||||||
heat_template_version: rocky
|
heat_template_version: rocky
|
||||||
description: >
|
description: >
|
||||||
Software Config to drive os-net-config with 2 Linux bonds. One bond is on a
|
Software Config to drive os-net-config with 2 Linux bonds. One bond is on a
|
||||||
@ -32,7 +43,7 @@ parameters:
|
|||||||
guaranteed to pass through the data path of the segments in the network.
|
guaranteed to pass through the data path of the segments in the network.
|
||||||
(The parameter is automatically resolved from the ctlplane network's mtu attribute.)
|
(The parameter is automatically resolved from the ctlplane network's mtu attribute.)
|
||||||
type: number
|
type: number
|
||||||
{%- for network in networks if network.enabled|default(true) and network.name in role.networks %}
|
{%- for network in networks if network.enabled|default(true) and network.name in _role_networks %}
|
||||||
|
|
||||||
{{network.name}}IpSubnet:
|
{{network.name}}IpSubnet:
|
||||||
default: ''
|
default: ''
|
||||||
@ -110,7 +121,7 @@ resources:
|
|||||||
expression: $.data.max()
|
expression: $.data.max()
|
||||||
data:
|
data:
|
||||||
- {get_param: ControlPlaneMtu}
|
- {get_param: ControlPlaneMtu}
|
||||||
{%- for network in networks if network.enabled|default(true) and network.name in role.networks and not network.name.startswith('Tenant') %}
|
{%- for network in networks if network.enabled|default(true) and network.name in _role_networks and not network.name.startswith('Tenant') %}
|
||||||
- {get_param: {{network.name}}Mtu}
|
- {get_param: {{network.name}}Mtu}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
@ -127,7 +138,7 @@ resources:
|
|||||||
expression: $.data.max()
|
expression: $.data.max()
|
||||||
data:
|
data:
|
||||||
- {get_param: ControlPlaneMtu}
|
- {get_param: ControlPlaneMtu}
|
||||||
{%- for network in networks if network.name.startswith('Tenant') and network.enabled|default(true) and network.name in role.networks %}
|
{%- for network in networks if network.name.startswith('Tenant') and network.enabled|default(true) and network.name in _role_networks %}
|
||||||
- {get_param: {{network.name}}Mtu}
|
- {get_param: {{network.name}}Mtu}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
@ -183,7 +194,7 @@ resources:
|
|||||||
name: nic3
|
name: nic3
|
||||||
mtu:
|
mtu:
|
||||||
get_attr: [MinViableMtuBondApi, value]
|
get_attr: [MinViableMtuBondApi, value]
|
||||||
{%- for network in networks if network.enabled|default(true) and network.name in role.networks and not network.name.startswith('Tenant') %}
|
{%- for network in networks if network.enabled|default(true) and network.name in _role_networks and not network.name.startswith('Tenant') %}
|
||||||
- type: vlan
|
- type: vlan
|
||||||
device: bond_api
|
device: bond_api
|
||||||
mtu:
|
mtu:
|
||||||
@ -224,7 +235,7 @@ resources:
|
|||||||
name: nic5
|
name: nic5
|
||||||
mtu:
|
mtu:
|
||||||
get_attr: [MinViableMtuBondData, value]
|
get_attr: [MinViableMtuBondData, value]
|
||||||
{%- for network in networks if network.name.startswith('Tenant') and network.name in role.networks and network.enabled|default(true) %}
|
{%- for network in networks if network.name.startswith('Tenant') and network.name in _role_networks and network.enabled|default(true) %}
|
||||||
- type: vlan
|
- type: vlan
|
||||||
device: bond-data
|
device: bond-data
|
||||||
mtu:
|
mtu:
|
||||||
@ -247,7 +258,7 @@ resources:
|
|||||||
- type: ovs_user_bridge
|
- type: ovs_user_bridge
|
||||||
name: br-dpdk0
|
name: br-dpdk0
|
||||||
use_dhcp: false
|
use_dhcp: false
|
||||||
{%- for network in networks if network.name.startswith('Tenant') and network.name in role.networks and network.enabled|default(true) %}
|
{%- for network in networks if network.name.startswith('Tenant') and network.name in _role_networks and network.enabled|default(true) %}
|
||||||
ovs_extra:
|
ovs_extra:
|
||||||
- str_replace:
|
- str_replace:
|
||||||
template: set port br-dpdk0 tag=_VLAN_TAG_
|
template: set port br-dpdk0 tag=_VLAN_TAG_
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
{#- 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). #}
|
||||||
|
{%- set _role_networks = [] %}
|
||||||
|
{%- if role.networks is mapping %}
|
||||||
|
{%- for key,val in role.networks.items() %}
|
||||||
|
{%- set _role_networks = _role_networks.append(key) %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set _role_networks = role.networks %}
|
||||||
|
{%- endif %}
|
||||||
heat_template_version: rocky
|
heat_template_version: rocky
|
||||||
description: >
|
description: >
|
||||||
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the {{role.name}} role.
|
Software Config to drive os-net-config with 2 bonded nics on a bridge with VLANs attached for the {{role.name}} role.
|
||||||
@ -168,7 +179,7 @@ resources:
|
|||||||
name: nic3
|
name: nic3
|
||||||
mtu:
|
mtu:
|
||||||
get_attr: [MinViableMtu, value]
|
get_attr: [MinViableMtu, value]
|
||||||
{%- for network in networks if network.enabled|default(true) and network.name in role.networks %}
|
{%- for network in networks if network.enabled|default(true) and network.name in _role_networks %}
|
||||||
- type: vlan
|
- type: vlan
|
||||||
mtu:
|
mtu:
|
||||||
get_param: {{network.name}}Mtu
|
get_param: {{network.name}}Mtu
|
||||||
@ -207,7 +218,7 @@ resources:
|
|||||||
name: nic3
|
name: nic3
|
||||||
mtu:
|
mtu:
|
||||||
get_attr: [MinViableMtu, value]
|
get_attr: [MinViableMtu, value]
|
||||||
{%- for network in networks if network.enabled|default(true) and network.name in role.networks %}
|
{%- for network in networks if network.enabled|default(true) and network.name in _role_networks %}
|
||||||
- type: vlan
|
- type: vlan
|
||||||
device: bond_api
|
device: bond_api
|
||||||
mtu:
|
mtu:
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
{#- 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). #}
|
||||||
|
{%- set _role_networks = [] %}
|
||||||
|
{%- if role.networks is mapping %}
|
||||||
|
{%- for key,val in role.networks.items() %}
|
||||||
|
{%- set _role_networks = _role_networks.append(key) %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set _role_networks = role.networks %}
|
||||||
|
{%- endif %}
|
||||||
heat_template_version: rocky
|
heat_template_version: rocky
|
||||||
description: >
|
description: >
|
||||||
Software Config to drive os-net-config to configure multiple interfaces for the {{role.name}} role.
|
Software Config to drive os-net-config to configure multiple interfaces for the {{role.name}} role.
|
||||||
@ -123,7 +134,7 @@ resources:
|
|||||||
{%- set nics_used = [1] %}
|
{%- set nics_used = [1] %}
|
||||||
{%- for network in networks if network.enabled|default(true) and network.name not in role.networks_skip_config|default([]) %}
|
{%- for network in networks if network.enabled|default(true) and network.name not in role.networks_skip_config|default([]) %}
|
||||||
{%- if network.name not in ["External", "Tenant"] %}
|
{%- if network.name not in ["External", "Tenant"] %}
|
||||||
{%- if network.name in role.networks %}
|
{%- if network.name in _role_networks %}
|
||||||
- type: interface
|
- type: interface
|
||||||
name: nic{{loop.index + 1}}
|
name: nic{{loop.index + 1}}
|
||||||
mtu:
|
mtu:
|
||||||
@ -153,7 +164,7 @@ resources:
|
|||||||
dns_servers:
|
dns_servers:
|
||||||
get_param: DnsServers
|
get_param: DnsServers
|
||||||
use_dhcp: false
|
use_dhcp: false
|
||||||
{%- if network.name in role.networks %}
|
{%- if network.name in _role_networks %}
|
||||||
addresses:
|
addresses:
|
||||||
- ip_netmask:
|
- ip_netmask:
|
||||||
get_param: {{network.name}}IpSubnet
|
get_param: {{network.name}}IpSubnet
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
{#- 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). #}
|
||||||
|
{%- set _role_networks = [] %}
|
||||||
|
{%- if role.networks is mapping %}
|
||||||
|
{%- for key,val in role.networks.items() %}
|
||||||
|
{%- set _role_networks = _role_networks.append(key) %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set _role_networks = role.networks %}
|
||||||
|
{%- endif %}
|
||||||
heat_template_version: rocky
|
heat_template_version: rocky
|
||||||
description: >
|
description: >
|
||||||
Software Config to drive os-net-config to configure VLANs for the {{role.name}} role.
|
Software Config to drive os-net-config to configure VLANs for the {{role.name}} role.
|
||||||
@ -31,7 +42,7 @@ parameters:
|
|||||||
guaranteed to pass through the data path of the segments in the network.
|
guaranteed to pass through the data path of the segments in the network.
|
||||||
(The parameter is automatically resolved from the ctlplane network's mtu attribute.)
|
(The parameter is automatically resolved from the ctlplane network's mtu attribute.)
|
||||||
type: number
|
type: number
|
||||||
{% for network in networks if network.enabled|default(true) and network.name in role.networks %}
|
{% for network in networks if network.enabled|default(true) and network.name in _role_networks %}
|
||||||
{{network.name}}IpSubnet:
|
{{network.name}}IpSubnet:
|
||||||
default: ''
|
default: ''
|
||||||
description: IP address/subnet on the {{network.name_lower}} network
|
description: IP address/subnet on the {{network.name_lower}} network
|
||||||
@ -93,7 +104,7 @@ resources:
|
|||||||
expression: $.data.max()
|
expression: $.data.max()
|
||||||
data:
|
data:
|
||||||
- {get_param: ControlPlaneMtu}
|
- {get_param: ControlPlaneMtu}
|
||||||
{%- for network in networks if network.enabled|default(true) and network.name in role.networks %}
|
{%- for network in networks if network.enabled|default(true) and network.name in _role_networks %}
|
||||||
- {get_param: {{network.name}}Mtu}
|
- {get_param: {{network.name}}Mtu}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
@ -142,7 +153,7 @@ resources:
|
|||||||
mtu:
|
mtu:
|
||||||
get_attr: [MinViableMtu, value]
|
get_attr: [MinViableMtu, value]
|
||||||
primary: true
|
primary: true
|
||||||
{%- for network in networks if network.enabled|default(true) and network.name in role.networks
|
{%- for network in networks if network.enabled|default(true) and network.name in _role_networks
|
||||||
and network.name not in role.networks_skip_config|default([]) %}
|
and network.name not in role.networks_skip_config|default([]) %}
|
||||||
- type: vlan
|
- type: vlan
|
||||||
mtu:
|
mtu:
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
{#- 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). #}
|
||||||
|
{%- set _role_networks = [] %}
|
||||||
|
{%- if role.networks is mapping %}
|
||||||
|
{%- for key,val in role.networks.items() %}
|
||||||
|
{%- set _role_networks = _role_networks.append(key) %}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set _role_networks = role.networks %}
|
||||||
|
{%- endif %}
|
||||||
heat_template_version: rocky
|
heat_template_version: rocky
|
||||||
description: >
|
description: >
|
||||||
Software Config to drive os-net-config to configure VLANs for the {{role.name}} role.
|
Software Config to drive os-net-config to configure VLANs for the {{role.name}} role.
|
||||||
@ -143,7 +154,7 @@ resources:
|
|||||||
get_attr: [MinViableMtu, value]
|
get_attr: [MinViableMtu, value]
|
||||||
# force the MAC address of the bridge to this interface
|
# force the MAC address of the bridge to this interface
|
||||||
primary: true
|
primary: true
|
||||||
{%- for network in networks if network.enabled|default(true) and network.name in role.networks %}
|
{%- for network in networks if network.enabled|default(true) and network.name in _role_networks %}
|
||||||
- type: vlan
|
- type: vlan
|
||||||
mtu:
|
mtu:
|
||||||
get_param: {{network.name}}Mtu
|
get_param: {{network.name}}Mtu
|
||||||
|
@ -45,7 +45,9 @@ parameters:
|
|||||||
conditions:
|
conditions:
|
||||||
fixed_ip_not_set:
|
fixed_ip_not_set:
|
||||||
equals:
|
equals:
|
||||||
- get_param: FixedIPs
|
- yaql:
|
||||||
|
expression: $.data.where($.get('ip_address'))
|
||||||
|
data: {get_param: FixedIPs}
|
||||||
- []
|
- []
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
|
@ -51,7 +51,9 @@ conditions:
|
|||||||
- ctlplane
|
- ctlplane
|
||||||
fixed_ip_not_set:
|
fixed_ip_not_set:
|
||||||
equals:
|
equals:
|
||||||
- get_param: FixedIPs
|
- yaql:
|
||||||
|
expression: $.data.where($.get('ip_address'))
|
||||||
|
data: {get_param: FixedIPs}
|
||||||
- []
|
- []
|
||||||
net_is_ctlplane_and_fixed_ip_not_set:
|
net_is_ctlplane_and_fixed_ip_not_set:
|
||||||
and:
|
and:
|
||||||
|
@ -49,7 +49,9 @@ conditions:
|
|||||||
- ctlplane
|
- ctlplane
|
||||||
fixed_ip_not_set:
|
fixed_ip_not_set:
|
||||||
equals:
|
equals:
|
||||||
- get_param: FixedIPs
|
- yaql:
|
||||||
|
expression: $.data.where($.get('ip_address'))
|
||||||
|
data: {get_param: FixedIPs}
|
||||||
- []
|
- []
|
||||||
net_is_ctlplane_and_fixed_ip_not_set:
|
net_is_ctlplane_and_fixed_ip_not_set:
|
||||||
and:
|
and:
|
||||||
|
@ -49,7 +49,9 @@ conditions:
|
|||||||
- ctlplane
|
- ctlplane
|
||||||
fixed_ip_not_set:
|
fixed_ip_not_set:
|
||||||
equals:
|
equals:
|
||||||
- get_param: FixedIPs
|
- yaql:
|
||||||
|
expression: $.data.where($.get('ip_address'))
|
||||||
|
data: {get_param: FixedIPs}
|
||||||
- []
|
- []
|
||||||
net_is_ctlplane_and_fixed_ip_not_set:
|
net_is_ctlplane_and_fixed_ip_not_set:
|
||||||
and:
|
and:
|
||||||
|
@ -95,6 +95,26 @@ parameters:
|
|||||||
via parameter_defaults in the resource registry.
|
via parameter_defaults in the resource registry.
|
||||||
type: json
|
type: json
|
||||||
|
|
||||||
|
ControlPlaneSubnet:
|
||||||
|
description: The name of the undercloud Neutron control plane subnet
|
||||||
|
default: ctlplane-subnet
|
||||||
|
type: string
|
||||||
|
|
||||||
|
VipSubnetMap:
|
||||||
|
description: Map of (network_name or service_name) -> subnet_name that
|
||||||
|
defines which subnet to host the VIP.
|
||||||
|
default: {}
|
||||||
|
type: json
|
||||||
|
|
||||||
|
VipSubnetMapDefaults:
|
||||||
|
default:
|
||||||
|
ctlplane: ctlplane-subnet
|
||||||
|
{%- for network in networks if network.vip|default(false) %}
|
||||||
|
{{network.name}}: {{network.name_lower}}_subnet
|
||||||
|
{%- endfor %}
|
||||||
|
redis: internal_api_subnet
|
||||||
|
type: json
|
||||||
|
|
||||||
# We define mappings to work around names that break when doing the
|
# We define mappings to work around names that break when doing the
|
||||||
# CamelCase to snake_case conversion to align with service_names
|
# CamelCase to snake_case conversion to align with service_names
|
||||||
ServiceNetMapDeprecatedMapping:
|
ServiceNetMapDeprecatedMapping:
|
||||||
@ -141,6 +161,19 @@ resources:
|
|||||||
- {get_param: ServiceNetMap}
|
- {get_param: ServiceNetMap}
|
||||||
- keys: {get_param: ServiceNetMapDeprecatedMapping}
|
- keys: {get_param: ServiceNetMapDeprecatedMapping}
|
||||||
|
|
||||||
|
VipSubnetMapValue:
|
||||||
|
type: OS::Heat::Value
|
||||||
|
properties:
|
||||||
|
type: json
|
||||||
|
value:
|
||||||
|
map_merge:
|
||||||
|
# (hjensas): We need to map_replace the ctlplane-subnet to support
|
||||||
|
# legacy parameter ControlPlaneSubnet.
|
||||||
|
- map_replace:
|
||||||
|
- {get_param: VipSubnetMapDefaults}
|
||||||
|
- values:
|
||||||
|
ctlplane-subnet: {get_param: ControlPlaneSubnet}
|
||||||
|
- {get_param: VipSubnetMap}
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
service_net_map:
|
service_net_map:
|
||||||
@ -155,3 +188,6 @@ outputs:
|
|||||||
expression: dict($.data.map.items().select([ regex(`([a-z0-9])([A-Z])`).replace($[0], '\\1_\\2').toLower(), $[1]]))
|
expression: dict($.data.map.items().select([ regex(`([a-z0-9])([A-Z])`).replace($[0], '\\1_\\2').toLower(), $[1]]))
|
||||||
data:
|
data:
|
||||||
map: {get_attr: [ServiceNetMapValue, value]}
|
map: {get_attr: [ServiceNetMapValue, value]}
|
||||||
|
|
||||||
|
vip_subnet_map:
|
||||||
|
value: {get_attr: [VipSubnetMapValue, value]}
|
||||||
|
@ -110,8 +110,6 @@ parameters:
|
|||||||
Control the IP allocation for the ControlVirtualIP port. E.g.
|
Control the IP allocation for the ControlVirtualIP port. E.g.
|
||||||
[{'ip_address':'1.2.3.4'}]
|
[{'ip_address':'1.2.3.4'}]
|
||||||
type: json
|
type: json
|
||||||
{%- for network in networks if network.vip|default(false) %}
|
|
||||||
{%- if network.name == 'External' %}
|
|
||||||
# TODO (dsneddon) Legacy name, eventually refactor to match network name
|
# TODO (dsneddon) Legacy name, eventually refactor to match network name
|
||||||
PublicVirtualFixedIPs:
|
PublicVirtualFixedIPs:
|
||||||
default: []
|
default: []
|
||||||
@ -119,14 +117,13 @@ parameters:
|
|||||||
Control the IP allocation for the PublicVirtualInterface port. E.g.
|
Control the IP allocation for the PublicVirtualInterface port. E.g.
|
||||||
[{'ip_address':'1.2.3.4'}]
|
[{'ip_address':'1.2.3.4'}]
|
||||||
type: json
|
type: json
|
||||||
{%- else %}
|
{%- for network in networks if network.vip|default(false) and network.name != 'External' %}
|
||||||
{{network.name}}VirtualFixedIPs:
|
{{network.name}}VirtualFixedIPs:
|
||||||
default: []
|
default: []
|
||||||
description: >
|
description: >
|
||||||
Control the IP allocation for the {{network.name}}VirtualInterface port. E.g.
|
Control the IP allocation for the {{network.name}}VirtualInterface port. E.g.
|
||||||
[{'ip_address':'1.2.3.4'}]
|
[{'ip_address':'1.2.3.4'}]
|
||||||
type: json
|
type: json
|
||||||
{%- endif %}
|
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
RabbitCookieSalt:
|
RabbitCookieSalt:
|
||||||
type: string
|
type: string
|
||||||
@ -269,6 +266,23 @@ conditions:
|
|||||||
ctlplane_subnet_cidr_set:
|
ctlplane_subnet_cidr_set:
|
||||||
not:
|
not:
|
||||||
equals: [{get_param: ControlPlaneSubnetCidr}, '']
|
equals: [{get_param: ControlPlaneSubnetCidr}, '']
|
||||||
|
{%- for network in networks if network.name != 'External' %}
|
||||||
|
{{network.name_lower}}_virtual_fixed_ip_set:
|
||||||
|
not:
|
||||||
|
equals:
|
||||||
|
- get_param: {{network.name}}VirtualFixedIPs
|
||||||
|
- []
|
||||||
|
{%- endfor %}
|
||||||
|
public_virtual_fixed_ip_set:
|
||||||
|
not:
|
||||||
|
equals:
|
||||||
|
- get_param: PublicVirtualFixedIPs
|
||||||
|
- []
|
||||||
|
redis_virtual_fixed_ip_set:
|
||||||
|
not:
|
||||||
|
equals:
|
||||||
|
- get_param: RedisVirtualFixedIPs
|
||||||
|
- []
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
|
|
||||||
@ -799,20 +813,20 @@ resources:
|
|||||||
type: OS::TripleO::Network
|
type: OS::TripleO::Network
|
||||||
|
|
||||||
ControlVirtualIP:
|
ControlVirtualIP:
|
||||||
|
depends_on: [Networks, ServiceNetMap]
|
||||||
type: OS::TripleO::Network::Ports::ControlPlaneVipPort
|
type: OS::TripleO::Network::Ports::ControlPlaneVipPort
|
||||||
depends_on: Networks
|
|
||||||
properties:
|
properties:
|
||||||
name: control_virtual_ip
|
name: control_virtual_ip
|
||||||
network: {get_param: NeutronControlPlaneID}
|
network: {get_param: NeutronControlPlaneID}
|
||||||
fixed_ips:
|
fixed_ips:
|
||||||
if:
|
if:
|
||||||
- control_fixed_ip_not_set
|
- control_fixed_ip_not_set
|
||||||
- [{subnet: {get_param: ControlPlaneSubnet}}]
|
- [{subnet: {get_attr: [ServiceNetMap, vip_subnet_map, ctlplane]}}]
|
||||||
- get_param: ControlFixedIPs
|
- get_param: ControlFixedIPs
|
||||||
replacement_policy: AUTO
|
replacement_policy: AUTO
|
||||||
|
|
||||||
RedisVirtualIP:
|
RedisVirtualIP:
|
||||||
depends_on: Networks
|
depends_on: [Networks, ServiceNetMap]
|
||||||
type: OS::TripleO::Network::Ports::RedisVipPort
|
type: OS::TripleO::Network::Ports::RedisVipPort
|
||||||
properties:
|
properties:
|
||||||
ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||||
@ -825,13 +839,17 @@ resources:
|
|||||||
PortName: redis_virtual_ip
|
PortName: redis_virtual_ip
|
||||||
NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
|
NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
|
||||||
ServiceName: redis
|
ServiceName: redis
|
||||||
FixedIPs: {get_param: RedisVirtualFixedIPs}
|
FixedIPs:
|
||||||
|
if:
|
||||||
|
- redis_virtual_fixed_ip_set
|
||||||
|
- {get_param: RedisVirtualFixedIPs}
|
||||||
|
- [{subnet: {get_attr: [ServiceNetMap, vip_subnet_map, redis]}}]
|
||||||
|
|
||||||
{%- for network in networks if network.vip|default(false) %}
|
{%- for network in networks if network.vip|default(false) %}
|
||||||
{%- if network.name == 'External' %}
|
{%- if network.name == 'External' %}
|
||||||
# The public VIP is on the External net, falls back to ctlplane
|
# The public VIP is on the External net, falls back to ctlplane
|
||||||
PublicVirtualIP:
|
PublicVirtualIP:
|
||||||
depends_on: Networks
|
depends_on: [Networks, ServiceNetMap]
|
||||||
type: OS::TripleO::Network::Ports::ExternalVipPort
|
type: OS::TripleO::Network::Ports::ExternalVipPort
|
||||||
properties:
|
properties:
|
||||||
ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||||
@ -842,10 +860,14 @@ resources:
|
|||||||
- {str_split: ['/', {get_attr: [ControlVirtualIP, subnets, 0, cidr]}, 1]}
|
- {str_split: ['/', {get_attr: [ControlVirtualIP, subnets, 0, cidr]}, 1]}
|
||||||
ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
|
ControlPlaneNetwork: {get_param: NeutronControlPlaneID}
|
||||||
PortName: public_virtual_ip
|
PortName: public_virtual_ip
|
||||||
FixedIPs: {get_param: PublicVirtualFixedIPs}
|
FixedIPs:
|
||||||
|
if:
|
||||||
|
- public_virtual_fixed_ip_set
|
||||||
|
- {get_param: PublicVirtualFixedIPs}
|
||||||
|
- [{subnet: {get_attr: [ServiceNetMap, vip_subnet_map, {{network.name}}]}}]
|
||||||
{%- else %}
|
{%- else %}
|
||||||
{{network.name}}VirtualIP:
|
{{network.name}}VirtualIP:
|
||||||
depends_on: Networks
|
depends_on: [Networks, ServiceNetMap]
|
||||||
type: OS::TripleO::Network::Ports::{{network.name}}VipPort
|
type: OS::TripleO::Network::Ports::{{network.name}}VipPort
|
||||||
properties:
|
properties:
|
||||||
ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
ControlPlaneIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||||
@ -855,7 +877,11 @@ resources:
|
|||||||
- {get_param: ControlPlaneSubnetCidr}
|
- {get_param: ControlPlaneSubnetCidr}
|
||||||
- {str_split: ['/', {get_attr: [ControlVirtualIP, subnets, 0, cidr]}, 1]}
|
- {str_split: ['/', {get_attr: [ControlVirtualIP, subnets, 0, cidr]}, 1]}
|
||||||
PortName: {{network.name_lower}}_virtual_ip
|
PortName: {{network.name_lower}}_virtual_ip
|
||||||
FixedIPs: {get_param: {{network.name}}VirtualFixedIPs}
|
FixedIPs:
|
||||||
|
if:
|
||||||
|
- {{network.name_lower}}_virtual_fixed_ip_set
|
||||||
|
- {get_param: {{network.name}}VirtualFixedIPs}
|
||||||
|
- [{subnet: {get_attr: [ServiceNetMap, vip_subnet_map, {{network.name}}]}}]
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
|
@ -466,7 +466,11 @@ resources:
|
|||||||
if:
|
if:
|
||||||
- {{role.name}}_{{network.name}}_fixed_ip_set
|
- {{role.name}}_{{network.name}}_fixed_ip_set
|
||||||
- [{ip_address: {get_param: [{{role.name}}IPs, '{{network.name_lower}}', {get_param: NodeIndex}]}}]
|
- [{ip_address: {get_param: [{{role.name}}IPs, '{{network.name_lower}}', {get_param: NodeIndex}]}}]
|
||||||
- []
|
{%- if role.networks is mapping and role.networks.get(network.name) %}
|
||||||
|
- [{subnet: {{role.networks[network.name].get('subnet', network.name_lower + '_subnet')}}}]
|
||||||
|
{%- else %}
|
||||||
|
- [{subnet: {{network.name_lower}}_subnet}]
|
||||||
|
{%- endif %}
|
||||||
ControlPlaneSubnetCidr:
|
ControlPlaneSubnetCidr:
|
||||||
if:
|
if:
|
||||||
- ctlplane_subnet_cidr_set
|
- ctlplane_subnet_cidr_set
|
||||||
@ -476,7 +480,6 @@ resources:
|
|||||||
- yaql:
|
- yaql:
|
||||||
expression: str("{0}".format($.data).split("/")[-1])
|
expression: str("{0}".format($.data).split("/")[-1])
|
||||||
data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]}
|
data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]}
|
||||||
|
|
||||||
IPPool:
|
IPPool:
|
||||||
map_merge:
|
map_merge:
|
||||||
{%- if role.deprecated_param_ips is defined %}
|
{%- if role.deprecated_param_ips is defined %}
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Composable Networks now support creating L3 routed networks. L3 networks
|
||||||
|
use multiple L2 network segments and multiple ip subnets. In addition to
|
||||||
|
the base subnet automatically created for any composable network,
|
||||||
|
additional subnets can be defined under the ``subnets`` key for each
|
||||||
|
network in the data file (``network_data.yaml``) used by composable
|
||||||
|
networks. Please refer to the ``network_data_subnets_routed.yaml`` file for
|
||||||
|
an example demonstrating how to define composable L3 routed networks.
|
||||||
|
- |
|
||||||
|
For composable roles it is now possible to control which subnet in a L3
|
||||||
|
routed network will host network ports for the role. This is done by
|
||||||
|
setting the subnet for each network in the role defenition
|
||||||
|
(``roles_data.yaml``). For example::
|
||||||
|
|
||||||
|
- name: <role_name>
|
||||||
|
networks:
|
||||||
|
InternalApi:
|
||||||
|
subnet: internal_api_leaf2
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_leaf2
|
||||||
|
Storage:
|
||||||
|
subnet: storage_leaf2
|
||||||
|
- |
|
||||||
|
To enable control of which subnet is used for virtual IPs on L3 routed
|
||||||
|
composable networks the new parameter ``VipSubnetMap`` where added. This
|
||||||
|
allow the user to override the subnet where the VIP port should be hosted.
|
||||||
|
For example::
|
||||||
|
|
||||||
|
parameter_defaults:
|
||||||
|
VipSubnetMap:
|
||||||
|
ctlplane: ctlplane-leaf1
|
||||||
|
InternalApi: internal_api_leaf1
|
||||||
|
Storage: storage_leaf1
|
||||||
|
redis: internal_api_leaf1
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
Deployments using custom names for subnets must also set the subnet to use
|
||||||
|
for the roles used in the deployment. I.e if ``NetworkNameSubnetName``
|
||||||
|
parameter was used to define a non-default subnet name for any network, the
|
||||||
|
role defenition (``roles_data.yaml``) and ``VipSubnetMap`` parameter
|
||||||
|
must use the same value.
|
||||||
|
|
||||||
|
.. Warning:: The update will fail if ``<NetworkName>SubnetName`` was used
|
||||||
|
to set a custom subnet name, and the role defenition and/or
|
||||||
|
the ``VipSubnetMap`` is not set to match the custom subnet
|
||||||
|
name.
|
@ -5,9 +5,12 @@
|
|||||||
description: |
|
description: |
|
||||||
Cinder Block Storage node role
|
Cinder Block Storage node role
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Storage
|
subnet: internal_api_subnet
|
||||||
- StorageMgmt
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
uses_deprecated_params: False
|
uses_deprecated_params: False
|
||||||
deprecated_nic_config_name: 'cinder-storage.yaml'
|
deprecated_nic_config_name: 'cinder-storage.yaml'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
|
@ -5,8 +5,10 @@
|
|||||||
description: |
|
description: |
|
||||||
Standalone Storage Full Role (OSD + MON + RGW + MDS + MGR + RBD Mirroring)
|
Standalone Storage Full Role (OSD + MON + RGW + MDS + MGR + RBD Mirroring)
|
||||||
networks:
|
networks:
|
||||||
- Storage
|
Storage:
|
||||||
- StorageMgmt
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
HostnameFormatDefault: '%stackname%-ceph-all-%index%'
|
HostnameFormatDefault: '%stackname%-ceph-all-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
|
@ -5,8 +5,10 @@
|
|||||||
description: |
|
description: |
|
||||||
Standalone Scale-out File Role (OSD + MDS)
|
Standalone Scale-out File Role (OSD + MDS)
|
||||||
networks:
|
networks:
|
||||||
- Storage
|
Storage:
|
||||||
- StorageMgmt
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
HostnameFormatDefault: '%stackname%-ceph-file-%index%'
|
HostnameFormatDefault: '%stackname%-ceph-file-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
|
@ -5,8 +5,10 @@
|
|||||||
description: |
|
description: |
|
||||||
Standalone Scale-out Object Role (OSD + RGW)
|
Standalone Scale-out Object Role (OSD + RGW)
|
||||||
networks:
|
networks:
|
||||||
- Storage
|
Storage:
|
||||||
- StorageMgmt
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
HostnameFormatDefault: '%stackname%-ceph-object-%index%'
|
HostnameFormatDefault: '%stackname%-ceph-object-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
|
@ -5,8 +5,10 @@
|
|||||||
description: |
|
description: |
|
||||||
Ceph OSD Storage node role
|
Ceph OSD Storage node role
|
||||||
networks:
|
networks:
|
||||||
- Storage
|
Storage:
|
||||||
- StorageMgmt
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
uses_deprecated_params: False
|
uses_deprecated_params: False
|
||||||
deprecated_nic_config_name: 'ceph-storage.yaml'
|
deprecated_nic_config_name: 'ceph-storage.yaml'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
Basic Compute Node role
|
Basic Compute Node role
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-novacompute-%index%'
|
HostnameFormatDefault: '%stackname%-novacompute-%index%'
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "virtual-host"
|
TunedProfileName: "virtual-host"
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
Alternate Compute Node role
|
Alternate Compute Node role
|
||||||
CountDefault: 0
|
CountDefault: 0
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-novacomputealt-%index%'
|
HostnameFormatDefault: '%stackname%-novacomputealt-%index%'
|
||||||
disable_constraints: True
|
disable_constraints: True
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
DVR enabled Compute Node role
|
DVR enabled Compute Node role
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-novacompute-dvr-%index%'
|
HostnameFormatDefault: '%stackname%-novacompute-dvr-%index%'
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "virtual-host"
|
TunedProfileName: "virtual-host"
|
||||||
|
@ -5,10 +5,14 @@
|
|||||||
description: |
|
description: |
|
||||||
Compute Node role hosting Ceph OSD too
|
Compute Node role hosting Ceph OSD too
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
- StorageMgmt
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "throughput-performance"
|
TunedProfileName: "throughput-performance"
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
Compute Instance HA Node role to be used with -e environments/compute-instanceha.yaml
|
Compute Instance HA Node role to be used with -e environments/compute-instanceha.yaml
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-novacomputeiha-%index%'
|
HostnameFormatDefault: '%stackname%-novacomputeiha-%index%'
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "virtual-host"
|
TunedProfileName: "virtual-host"
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
Compute Node with Cavium Liquidio smart NIC
|
Compute Node with Cavium Liquidio smart NIC
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
networks_skip_config:
|
networks_skip_config:
|
||||||
- Tenant
|
- Tenant
|
||||||
HostnameFormatDefault: '%stackname%-lionovacompute-%index%'
|
HostnameFormatDefault: '%stackname%-lionovacompute-%index%'
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
Compute OvS DPDK Role
|
Compute OvS DPDK Role
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
deprecated_nic_config_name: 'compute-dpdk.yaml'
|
deprecated_nic_config_name: 'compute-dpdk.yaml'
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
VhostuserSocketGroup: "hugetlbfs"
|
VhostuserSocketGroup: "hugetlbfs"
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
Compute OvS DPDK RealTime Role
|
Compute OvS DPDK RealTime Role
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
ImageDefault: overcloud-realtime-compute
|
ImageDefault: overcloud-realtime-compute
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
VhostuserSocketGroup: "hugetlbfs"
|
VhostuserSocketGroup: "hugetlbfs"
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
Basic Compute Node role for ppc64le servers
|
Basic Compute Node role for ppc64le servers
|
||||||
CountDefault: 0
|
CountDefault: 0
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-novacomputeppc64le-%index%'
|
HostnameFormatDefault: '%stackname%-novacomputeppc64le-%index%'
|
||||||
ImageDefault: ppc64le-overcloud-full
|
ImageDefault: ppc64le-overcloud-full
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
|
@ -9,9 +9,12 @@
|
|||||||
accordingly to the hardware of the real-time compute nodes.
|
accordingly to the hardware of the real-time compute nodes.
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-computerealtime-%index%'
|
HostnameFormatDefault: '%stackname%-computerealtime-%index%'
|
||||||
ImageDefault: overcloud-realtime-compute
|
ImageDefault: overcloud-realtime-compute
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
Compute SR-IOV Role
|
Compute SR-IOV Role
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "cpu-partitioning"
|
TunedProfileName: "cpu-partitioning"
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
|
@ -6,9 +6,12 @@
|
|||||||
Compute SR-IOV RealTime Role
|
Compute SR-IOV RealTime Role
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
ImageDefault: overcloud-realtime-compute
|
ImageDefault: overcloud-realtime-compute
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "realtime-virtual-host"
|
TunedProfileName: "realtime-virtual-host"
|
||||||
|
@ -10,11 +10,16 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: internal_api_subnet
|
||||||
- Tenant
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
||||||
# each, such as ['ControlPlane', 'External']
|
# each, such as ['ControlPlane', 'External']
|
||||||
default_route_networks: ['External']
|
default_route_networks: ['External']
|
||||||
|
@ -10,11 +10,16 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: internal_api_subnet
|
||||||
- Tenant
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
default_route_networks: ['External']
|
default_route_networks: ['External']
|
||||||
HostnameFormatDefault: '%stackname%-controller-%index%'
|
HostnameFormatDefault: '%stackname%-controller-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
|
@ -10,11 +10,16 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: internal_api_subnet
|
||||||
- Tenant
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
default_route_networks: ['External']
|
default_route_networks: ['External']
|
||||||
HostnameFormatDefault: '%stackname%-controller-no-ceph-%index%'
|
HostnameFormatDefault: '%stackname%-controller-no-ceph-%index%'
|
||||||
# Deprecated & backward-compatible values (FIXME: Make parameters consistent)
|
# Deprecated & backward-compatible values (FIXME: Make parameters consistent)
|
||||||
|
@ -9,11 +9,16 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: interanl_api_subnet
|
||||||
- Tenant
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
default_route_networks: ['External']
|
default_route_networks: ['External']
|
||||||
HostnameFormatDefault: '%stackname%-controller-%index%'
|
HostnameFormatDefault: '%stackname%-controller-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
|
@ -10,11 +10,16 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: internal_api_subnet
|
||||||
- Tenant
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
default_route_networks: ['External']
|
default_route_networks: ['External']
|
||||||
HostnameFormatDefault: '%stackname%-controller-%index%'
|
HostnameFormatDefault: '%stackname%-controller-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
|
@ -13,12 +13,18 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: internal_api_subnet
|
||||||
- StorageNFS
|
Storage:
|
||||||
- Tenant
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
StorageNFS:
|
||||||
|
subnet: storage_nfs_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
HostnameFormatDefault: '%stackname%-controller-%index%'
|
HostnameFormatDefault: '%stackname%-controller-%index%'
|
||||||
# Deprecated & backward-compatible values (FIXME: Make parameters consistent)
|
# Deprecated & backward-compatible values (FIXME: Make parameters consistent)
|
||||||
# Set uses_deprecated_params to True if any deprecated params are used.
|
# Set uses_deprecated_params to True if any deprecated params are used.
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
description: |
|
description: |
|
||||||
Standalone database role with the database being managed via Pacemaker
|
Standalone database role with the database being managed via Pacemaker
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
|
subnet: internal_api_subnet
|
||||||
HostnameFormatDefault: '%stackname%-database-%index%'
|
HostnameFormatDefault: '%stackname%-database-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
|
@ -5,10 +5,14 @@
|
|||||||
description: |
|
description: |
|
||||||
HCI Full Stack Role (OSD + MON + Nova + RGW + MDS + MGR + RBD Mirroring)
|
HCI Full Stack Role (OSD + MON + Nova + RGW + MDS + MGR + RBD Mirroring)
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
- StorageMgmt
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
HostnameFormatDefault: '%stackname%-hci-ceph-all-%index%'
|
HostnameFormatDefault: '%stackname%-hci-ceph-all-%index%'
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "throughput-performance"
|
TunedProfileName: "throughput-performance"
|
||||||
|
@ -5,10 +5,14 @@
|
|||||||
description: |
|
description: |
|
||||||
HCI Scale-out File Role (OSD + Nova + MDS)
|
HCI Scale-out File Role (OSD + Nova + MDS)
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
- StorageMgmt
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
HostnameFormatDefault: '%stackname%-hci-ceph-file-%index%'
|
HostnameFormatDefault: '%stackname%-hci-ceph-file-%index%'
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "throughput-performance"
|
TunedProfileName: "throughput-performance"
|
||||||
|
@ -5,10 +5,14 @@
|
|||||||
description: |
|
description: |
|
||||||
HCI Scale-out Block Full Role (OSD + MON + MGR + Nova)
|
HCI Scale-out Block Full Role (OSD + MON + MGR + Nova)
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
- StorageMgmt
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
HostnameFormatDefault: '%stackname%-hci-ceph-mon-%index%'
|
HostnameFormatDefault: '%stackname%-hci-ceph-mon-%index%'
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "throughput-performance"
|
TunedProfileName: "throughput-performance"
|
||||||
|
@ -5,10 +5,14 @@
|
|||||||
description: |
|
description: |
|
||||||
HCI Scale-out Object Role (OSD + Nova + RGW)
|
HCI Scale-out Object Role (OSD + Nova + RGW)
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
- StorageMgmt
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
HostnameFormatDefault: '%stackname%-hci-ceph-object-%index%'
|
HostnameFormatDefault: '%stackname%-hci-ceph-object-%index%'
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "throughput-performance"
|
TunedProfileName: "throughput-performance"
|
||||||
|
@ -5,8 +5,10 @@
|
|||||||
description: |
|
description: |
|
||||||
Ironic Conductor node role
|
Ironic Conductor node role
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Storage
|
subnet: internal_api_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-ironic-%index%'
|
HostnameFormatDefault: '%stackname%-ironic-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
description: |
|
description: |
|
||||||
Standalone messaging role with backends being managed via Pacemaker
|
Standalone messaging role with backends being managed via Pacemaker
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
|
subnet: internal_api_subnet
|
||||||
HostnameFormatDefault: '%stackname%-messaging-%index%'
|
HostnameFormatDefault: '%stackname%-messaging-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
|
@ -5,8 +5,10 @@
|
|||||||
description: |
|
description: |
|
||||||
Standalone networking role to run Neutron agents on their own.
|
Standalone networking role to run Neutron agents on their own.
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
HostnameFormatDefault: '%stackname%-networker-%index%'
|
HostnameFormatDefault: '%stackname%-networker-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
|
@ -5,8 +5,10 @@
|
|||||||
description: |
|
description: |
|
||||||
Standalone nova-control role to run Nova control agents on their own.
|
Standalone nova-control role to run Nova control agents on their own.
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Storage
|
subnet: internal_api_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-novacontrol-%index%'
|
HostnameFormatDefault: '%stackname%-novacontrol-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::AuditD
|
- OS::TripleO::Services::AuditD
|
||||||
|
@ -5,9 +5,12 @@
|
|||||||
description: |
|
description: |
|
||||||
Swift Object Storage node role
|
Swift Object Storage node role
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Storage
|
subnet: internal_api_subnet
|
||||||
- StorageMgmt
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
# Deprecated & backward-compatible values (FIXME: Make parameters consistent)
|
# Deprecated & backward-compatible values (FIXME: Make parameters consistent)
|
||||||
# Set uses_deprecated_params to True if any deprecated params are used.
|
# Set uses_deprecated_params to True if any deprecated params are used.
|
||||||
uses_deprecated_params: True
|
uses_deprecated_params: True
|
||||||
|
@ -13,9 +13,12 @@
|
|||||||
- controller
|
- controller
|
||||||
- openshift
|
- openshift
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
|
subnet: internal_api_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
||||||
# each, such as ['ControlPlane', 'External']
|
# each, such as ['ControlPlane', 'External']
|
||||||
default_route_networks: ['External']
|
default_route_networks: ['External']
|
||||||
|
@ -11,8 +11,10 @@
|
|||||||
tags:
|
tags:
|
||||||
- openshift
|
- openshift
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Storage
|
subnet: internal_api_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
||||||
# each, such as ['ControlPlane', 'External']
|
# each, such as ['ControlPlane', 'External']
|
||||||
default_route_networks: ['ControlPlane']
|
default_route_networks: ['ControlPlane']
|
||||||
|
@ -13,9 +13,12 @@
|
|||||||
- controller
|
- controller
|
||||||
- openshift
|
- openshift
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
|
subnet: internal_api_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
||||||
# each, such as ['ControlPlane', 'External']
|
# each, such as ['ControlPlane', 'External']
|
||||||
default_route_networks: ['External']
|
default_route_networks: ['External']
|
||||||
|
@ -11,8 +11,10 @@
|
|||||||
tags:
|
tags:
|
||||||
- openshift
|
- openshift
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Storage
|
subnet: internal_api_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
||||||
# each, such as ['ControlPlane', 'External']
|
# each, such as ['ControlPlane', 'External']
|
||||||
default_route_networks: ['ControlPlane']
|
default_route_networks: ['ControlPlane']
|
||||||
|
@ -12,11 +12,16 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: internal_api_subnet
|
||||||
- Tenant
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
disable_constraints: True
|
disable_constraints: True
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
|
@ -5,8 +5,10 @@
|
|||||||
description: |
|
description: |
|
||||||
Telemetry role that has all the telemetry services.
|
Telemetry role that has all the telemetry services.
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Storage
|
subnet: internal_api_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-telemetry-%index%'
|
HostnameFormatDefault: '%stackname%-telemetry-%index%'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
|
@ -11,11 +11,16 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: internal_api_subnet
|
||||||
- Tenant
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
- OS::TripleO::Services::AodhApi
|
- OS::TripleO::Services::AodhApi
|
||||||
|
@ -13,11 +13,16 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: internal_api_subnet
|
||||||
- Tenant
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
# For systems with both IPv4 and IPv6, you may specify a gateway network for
|
||||||
# each, such as ['ControlPlane', 'External']
|
# each, such as ['ControlPlane', 'External']
|
||||||
default_route_networks: ['External']
|
default_route_networks: ['External']
|
||||||
@ -193,9 +198,12 @@
|
|||||||
Basic Compute Node role
|
Basic Compute Node role
|
||||||
CountDefault: 1
|
CountDefault: 1
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Tenant
|
subnet: internal_api_subnet
|
||||||
- Storage
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
HostnameFormatDefault: '%stackname%-novacompute-%index%'
|
HostnameFormatDefault: '%stackname%-novacompute-%index%'
|
||||||
RoleParametersDefault:
|
RoleParametersDefault:
|
||||||
TunedProfileName: "virtual-host"
|
TunedProfileName: "virtual-host"
|
||||||
@ -265,9 +273,12 @@
|
|||||||
description: |
|
description: |
|
||||||
Cinder Block Storage node role
|
Cinder Block Storage node role
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Storage
|
subnet: internal_api_subnet
|
||||||
- StorageMgmt
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
uses_deprecated_params: False
|
uses_deprecated_params: False
|
||||||
deprecated_nic_config_name: 'cinder-storage.yaml'
|
deprecated_nic_config_name: 'cinder-storage.yaml'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
@ -307,9 +318,12 @@
|
|||||||
description: |
|
description: |
|
||||||
Swift Object Storage node role
|
Swift Object Storage node role
|
||||||
networks:
|
networks:
|
||||||
- InternalApi
|
InternalApi:
|
||||||
- Storage
|
subnet: internal_api_subnet
|
||||||
- StorageMgmt
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
# Deprecated & backward-compatible values (FIXME: Make parameters consistent)
|
# Deprecated & backward-compatible values (FIXME: Make parameters consistent)
|
||||||
# Set uses_deprecated_params to True if any deprecated params are used.
|
# Set uses_deprecated_params to True if any deprecated params are used.
|
||||||
uses_deprecated_params: True
|
uses_deprecated_params: True
|
||||||
@ -356,8 +370,10 @@
|
|||||||
description: |
|
description: |
|
||||||
Ceph OSD Storage node role
|
Ceph OSD Storage node role
|
||||||
networks:
|
networks:
|
||||||
- Storage
|
Storage:
|
||||||
- StorageMgmt
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
uses_deprecated_params: False
|
uses_deprecated_params: False
|
||||||
deprecated_nic_config_name: 'ceph-storage.yaml'
|
deprecated_nic_config_name: 'ceph-storage.yaml'
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
|
@ -14,11 +14,16 @@
|
|||||||
- primary
|
- primary
|
||||||
- controller
|
- controller
|
||||||
networks:
|
networks:
|
||||||
- External
|
External:
|
||||||
- InternalApi
|
subnet: external_subnet
|
||||||
- Storage
|
InternalApi:
|
||||||
- StorageMgmt
|
subnet: internal_api_subnet
|
||||||
- Tenant
|
Storage:
|
||||||
|
subnet: storage_subnet
|
||||||
|
StorageMgmt:
|
||||||
|
subnet: storage_mgmt_subnet
|
||||||
|
Tenant:
|
||||||
|
subnet: tenant_subnet
|
||||||
ServicesDefault:
|
ServicesDefault:
|
||||||
- OS::TripleO::Services::Aide
|
- OS::TripleO::Services::Aide
|
||||||
- OS::TripleO::Services::AodhApi
|
- OS::TripleO::Services::AodhApi
|
||||||
|
@ -478,7 +478,7 @@ def validate_multiarch_compute_roles(role_filename, role_tpl):
|
|||||||
errors = 0
|
errors = 0
|
||||||
roles_dir = os.path.dirname(role_filename)
|
roles_dir = os.path.dirname(role_filename)
|
||||||
compute_services = set(role_tpl[0].get('ServicesDefault', []))
|
compute_services = set(role_tpl[0].get('ServicesDefault', []))
|
||||||
compute_networks = set(role_tpl[0].get('networks', []))
|
compute_networks = role_tpl[0].get('networks', [])
|
||||||
|
|
||||||
for arch in ['ppc64le']:
|
for arch in ['ppc64le']:
|
||||||
arch_filename = os.path.join(roles_dir,
|
arch_filename = os.path.join(roles_dir,
|
||||||
@ -493,7 +493,7 @@ def validate_multiarch_compute_roles(role_filename, role_tpl):
|
|||||||
print('ERROR problems with: %s' % (','.join(compute_services.symmetric_difference(arch_services))))
|
print('ERROR problems with: %s' % (','.join(compute_services.symmetric_difference(arch_services))))
|
||||||
errors = 1
|
errors = 1
|
||||||
|
|
||||||
arch_networks = set(arch_tpl[0].get('networks', []))
|
arch_networks = arch_tpl[0].get('networks', [])
|
||||||
if compute_networks != arch_networks:
|
if compute_networks != arch_networks:
|
||||||
print('ERROR networks in %s and %s do not match' %
|
print('ERROR networks in %s and %s do not match' %
|
||||||
(role_filename, arch_filename))
|
(role_filename, arch_filename))
|
||||||
|
Loading…
Reference in New Issue
Block a user