Jinja automation for %network%NetworkVlanId

Per-subnet vlan id parameters are already rendered in
network-environment.yaml. This change uses networks data
and roles data so that per-subnet vlan id param is used
when passing the relevant NetworkVlanId data to nic-config
templates.

By using the generic %network%NetworkVlanId (no subnet suffix)
in nic-config templates instead of %network%NetworkVlanId_%subnet%,
this allow homogeneous computes in multiple sites to use the
same nic-config template.

Also use type: number for all vlan parameters.

Closes-Bug: #1821043
Change-Id: Id8e76ae7c41a562f5c47d911c42aa18001c11be1
This commit is contained in:
Harald Jensås 2019-03-21 10:02:25 +01:00
parent 06f30fb4eb
commit 59c5e23c54
17 changed files with 115 additions and 18 deletions

View File

@ -174,6 +174,28 @@ parameters:
description: The IP address of the EC2 metadata server. (The parameter description: The IP address of the EC2 metadata server. (The parameter
is automatically resolved from the ctlplane subnet's host_routes attribute.) is automatically resolved from the ctlplane subnet's host_routes attribute.)
type: string type: string
# NOTE(hjensas): We need these because the default network_data.yaml define
# vlan for all networks.
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
type: number
InternalApiNetworkVlanID:
default: 20
description: Vlan ID for the internal_api network traffic.
type: number
StorageNetworkVlanID:
default: 30
description: Vlan ID for the storage network traffic.
type: number
StorageMgmtNetworkVlanID:
default: 40
description: Vlan ID for the storage_mgmt network traffic.
type: number
TenantNetworkVlanID:
default: 50
description: Vlan ID for the tenant network traffic.
type: number
resources: resources:

View File

@ -162,6 +162,28 @@ parameters:
description: The IP address of the EC2 metadata server. (The parameter description: The IP address of the EC2 metadata server. (The parameter
is automatically resolved from the ctlplane subnet's host_routes attribute.) is automatically resolved from the ctlplane subnet's host_routes attribute.)
type: string type: string
# NOTE(hjensas): We need these because the default network_data.yaml define
# vlan for all networks.
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
type: number
InternalApiNetworkVlanID:
default: 20
description: Vlan ID for the internal_api network traffic.
type: number
StorageNetworkVlanID:
default: 30
description: Vlan ID for the storage network traffic.
type: number
StorageMgmtNetworkVlanID:
default: 40
description: Vlan ID for the storage_mgmt network traffic.
type: number
TenantNetworkVlanID:
default: 50
description: Vlan ID for the tenant network traffic.
type: number
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:

View File

@ -159,6 +159,28 @@ parameters:
description: The IP address of the EC2 metadata server. (The parameter description: The IP address of the EC2 metadata server. (The parameter
is automatically resolved from the ctlplane subnet's host_routes attribute.) is automatically resolved from the ctlplane subnet's host_routes attribute.)
type: string type: string
# NOTE(hjensas): We need these because the default network_data.yaml define
# vlan for all networks.
ExternalNetworkVlanID:
default: 10
description: Vlan ID for the external network traffic.
type: number
InternalApiNetworkVlanID:
default: 20
description: Vlan ID for the internal_api network traffic.
type: number
StorageNetworkVlanID:
default: 30
description: Vlan ID for the storage network traffic.
type: number
StorageMgmtNetworkVlanID:
default: 40
description: Vlan ID for the storage_mgmt network traffic.
type: number
TenantNetworkVlanID:
default: 50
description: Vlan ID for the tenant network traffic.
type: number
resources: resources:
OsNetConfigImpl: OsNetConfigImpl:

View File

@ -50,7 +50,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -41,7 +41,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -39,7 +39,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -48,7 +48,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -39,7 +39,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan|default("")}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -38,7 +38,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan|default("")}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -49,7 +49,7 @@ parameters:
type: string type: string
{%- if network.vlan %} {%- if network.vlan %}
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan|default("")}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{%- endif %} {%- endif %}

View File

@ -38,7 +38,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -48,7 +48,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -41,7 +41,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -38,7 +38,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -48,7 +48,7 @@ parameters:
description: IP address/subnet on the {{network.name_lower}} network description: IP address/subnet on the {{network.name_lower}} network
type: string type: string
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{{network.name}}Mtu: {{network.name}}Mtu:

View File

@ -67,7 +67,7 @@ parameters:
type: string type: string
{%- if network.vlan %} {%- if network.vlan %}
{{network.name}}NetworkVlanID: {{network.name}}NetworkVlanID:
default: {{network.vlan|default('')}} default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic. description: Vlan ID for the {{network.name_lower}} network traffic.
type: number type: number
{%- endif %} {%- endif %}
@ -114,10 +114,10 @@ parameters:
default route for the {{network.name_lower}} network's {{subnet}} subnet. default route for the {{network.name_lower}} network's {{subnet}} subnet.
type: string type: string
{{network.name}}NetworkVlanID_{{subnet}}: {{network.name}}NetworkVlanID_{{subnet}}:
default: {{network.subnets[subnet]['vlan']|default('')}} default: {{network.subnets[subnet]['vlan']|default(1)}}
description: | description: |
Vlan ID for the {{network.name_lower}} network's {{subnet}} subnet. Vlan ID for the {{network.name_lower}} network's {{subnet}} subnet.
type: string type: number
{{network.name}}Routes_{{subnet}}: {{network.name}}Routes_{{subnet}}:
default: {{network.subnets[subnet]['routes']|default([])}} default: {{network.subnets[subnet]['routes']|default([])}}
description: > description: >

View File

@ -269,8 +269,7 @@ parameters:
If not set the nameservers configured in the ctlplane subnet's If not set the nameservers configured in the ctlplane subnet's
dns_nameservers attribute will be used. dns_nameservers attribute will be used.
type: comma_delimited_list type: comma_delimited_list
{%- for network in networks %} {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %}
{%- if network.enabled|default(true) and network.name in role.networks|default([]) %}
{{network.name}}InterfaceRoutes: {{network.name}}InterfaceRoutes:
default: [] default: []
description: > description: >
@ -279,7 +278,28 @@ parameters:
Unless the default is changed, the parameter is automatically resolved Unless the default is changed, the parameter is automatically resolved
from the subnet host_routes attribute. from the subnet host_routes attribute.
type: json type: json
{%- endif %} {%- if role.networks is mapping %}
{%- set _subnets = network.get('subnets') %}
{%- set _role_net_subnet = role.networks[network.name].get('subnet') %}
{%- if _subnets and _role_net_subnet and _role_net_subnet in _subnets %}
{{network.name}}NetworkVlanID_{{_role_net_subnet}}:
default: {{_role_net_subnet.vlan|default(1)}}
description: >
Vlan ID for the {{network.name_lower}} network traffic for subnet
{{_role_net_subnet}}.
type: number
{%- elif network.vlan|default(false) %}
{{network.name}}NetworkVlanID:
default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic.
type: number
{%- endif %}
{%- elif network.vlan|default(false) %}
{{network.name}}NetworkVlanID:
default: {{network.vlan|default(1)}}
description: Vlan ID for the {{network.name_lower}} network traffic.
type: number
{%- endif %}
{%- endfor %} {%- endfor %}
ServerDeletionPolicy: ServerDeletionPolicy:
@ -545,6 +565,17 @@ resources:
{%- if network.name in role.default_route_networks %} {%- if network.name in role.default_route_networks %}
{{network.name}}InterfaceDefaultRoute: {get_attr: [{{network.name}}Port, gateway_ip]} {{network.name}}InterfaceDefaultRoute: {get_attr: [{{network.name}}Port, gateway_ip]}
{%- endif %} {%- endif %}
{%- if role.networks is mapping %}
{%- set _subnets = network.get('subnets') %}
{%- set _role_net_subnet = role.networks[network.name].get('subnet') %}
{%- if _subnets and _role_net_subnet and _role_net_subnet in _subnets %}
{{network.name}}NetworkVlanID: {get_param: {{network.name}}NetworkVlanID_{{_role_net_subnet}}}
{%- elif network.vlan|default(false) %}
{{network.name}}NetworkVlanID: {get_param: {{network.name}}NetworkVlanID}
{%- endif %}
{%- elif network.vlan|default(false) %}
{{network.name}}NetworkVlanID: {get_param: {{network.name}}NetworkVlanID}
{%- endif %}
{%- endif %} {%- endif %}
{%- endfor %} {%- endfor %}