X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?p=apex.git;a=blobdiff_plain;f=build%2Fnics-template.yaml.jinja2;h=160832949b09f87e84ad770dceefe658bb22b80d;hp=b1069d2c3b80708efca70b816ef39f570d1fe14f;hb=f6dbb3929d904b4d5a9ee01f8270051e29ac1ec3;hpb=a008f8394e07f1b82d5bf7288f46c63252f6084f diff --git a/build/nics-template.yaml.jinja2 b/build/nics-template.yaml.jinja2 index b1069d2c..16083294 100644 --- a/build/nics-template.yaml.jinja2 +++ b/build/nics-template.yaml.jinja2 @@ -1,4 +1,4 @@ -heat_template_version: 2015-04-30 +heat_template_version: 2016-10-14 description: > Software Config to drive os-net-config to configure multiple interfaces @@ -78,196 +78,200 @@ parameters: resources: OsNetConfigImpl: - type: OS::Heat::StructuredConfig + type: OS::Heat::SoftwareConfig properties: - group: os-apply-config + group: script config: - os_net_config: - network_config: - - - {%- if not nets['external'][0]['enabled'] or nets['tenant']['nic_mapping'][role]['vlan'] is number or nets['storage']['nic_mapping'][role]['vlan'] is number or nets['api']['nic_mapping'][role]['vlan'] is number or nets['external'][0]['nic_mapping'][role]['vlan'] is number %} - type: ovs_bridge - {%- if nets['external'][0]['enabled'] and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %} - name: br-isolated - {%- else %} - name: {get_input: bridge_name} - {%- endif %} - members: - - - type: interface - name: {{ nets['admin']['nic_mapping'][role]['members'][0] }} - # force the MAC address of the bridge to this interface - primary: true - {%- if nets['external'][0]['enabled'] and nets['external'][0]['nic_mapping'][role]['vlan'] is number %} - - - type: vlan - vlan_id: {get_param: ExternalNetworkVlanID} - addresses: + str_replace: + template: + get_file: /usr/share/openstack-tripleo-heat-templates/network/scripts/run-os-net-config.sh + params: + $network_config: + network_config: + - + {%- if not nets['external'][0]['enabled'] or nets['tenant']['nic_mapping'][role]['vlan'] is number or nets['storage']['nic_mapping'][role]['vlan'] is number or nets['api']['nic_mapping'][role]['vlan'] is number or nets['external'][0]['nic_mapping'][role]['vlan'] is number %} + type: ovs_bridge + {%- if nets['external'][0]['enabled'] and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %} + name: br-isolated + {%- else %} + name: br-ex + {%- endif %} + members: - - ip_netmask: {get_param: ExternalIpSubnet} - routes: - - - default: true - next_hop: {get_param: ExternalInterfaceDefaultRoute} - {%- endif %} - {%- if nets['tenant']['enabled'] and nets['tenant']['nic_mapping'][role]['vlan'] is number %} - - - type: vlan - vlan_id: {get_param: TenantNetworkVlanID} - addresses: - - - ip_netmask: {get_param: TenantIpSubnet} - {%- endif %} - {%- if nets['storage']['enabled'] and nets['storage']['nic_mapping'][role]['vlan'] is number %} - - - type: vlan - vlan_id: {get_param: StorageNetworkVlanID} - addresses: - - - ip_netmask: {get_param: StorageIpSubnet} - {%- endif %} - {%- if nets['api']['enabled'] and nets['api']['nic_mapping'][role]['vlan'] is number %} - - - type: vlan - vlan_id: {get_param: InternalApiNetworkVlanID} - addresses: + type: interface + name: {{ nets['admin']['nic_mapping'][role]['members'][0] }} + # force the MAC address of the bridge to this interface + primary: true + {%- if nets['external'][0]['enabled'] and nets['external'][0]['nic_mapping'][role]['vlan'] is number %} + - + type: vlan + vlan_id: {get_param: ExternalNetworkVlanID} + addresses: - - ip_netmask: {get_param: InternalApiIpSubnet} - {%- endif %} - {%- else %} - type: {{ nets['admin']['nic_mapping'][role]['phys_type'] }} - {%- if nets['admin']['nic_mapping'][role]['phys_type'] == 'linux_bridge' %} - name: br-ctlplane - members: - - - type: interface - name: {{ nets['admin']['nic_mapping'][role]['members'][0] }} - primary: true + ip_netmask: {get_param: ExternalIpSubnet} + routes: + - + default: true + next_hop: {get_param: ExternalInterfaceDefaultRoute} + {%- endif %} + {%- if nets['tenant']['enabled'] and nets['tenant']['nic_mapping'][role]['vlan'] is number %} + - + type: vlan + vlan_id: {get_param: TenantNetworkVlanID} + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + {%- endif %} + {%- if nets['storage']['enabled'] and nets['storage']['nic_mapping'][role]['vlan'] is number %} + - + type: vlan + vlan_id: {get_param: StorageNetworkVlanID} + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + {%- endif %} + {%- if nets['api']['enabled'] and nets['api']['nic_mapping'][role]['vlan'] is number %} + - + type: vlan + vlan_id: {get_param: InternalApiNetworkVlanID} + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} + {%- endif %} {%- else %} - name: {{ nets['admin']['nic_mapping'][role]['members'][0] }} - {%- endif %} - {%- endif %} - use_dhcp: false - dns_servers: {get_param: DnsServers} - addresses: - - - ip_netmask: - list_join: - - '/' - - - {get_param: ControlPlaneIp} - - {get_param: ControlPlaneSubnetCidr} - routes: - - - ip_netmask: 169.254.169.254/32 - next_hop: {get_param: EC2MetadataIp} - {%- if external_net_af == 6 or role == 'compute' or not nets['external'][0]['enabled'] %} - - - default: true - next_hop: {get_param: ControlPlaneDefaultRoute} + type: {{ nets['admin']['nic_mapping'][role]['phys_type'] }} + {%- if nets['admin']['nic_mapping'][role]['phys_type'] == 'linux_bridge' %} + name: br-ctlplane + members: + - + type: interface + name: {{ nets['admin']['nic_mapping'][role]['members'][0] }} + primary: true + {%- else %} + name: {{ nets['admin']['nic_mapping'][role]['members'][0] }} {%- endif %} - - {%- if nets['tenant']['enabled'] and nets['tenant']['nic_mapping'][role]['vlan'] == 'native' %} - {%- if ovs_dpdk_bridge == 'br-phy' and role == 'compute' %} - - - type: ovs_user_bridge - name: {{ ovs_dpdk_bridge }} - use_dhcp: false - addresses: - - - ip_netmask: {get_param: TenantIpSubnet} - members: - - - type: ovs_dpdk_port - name: dpdk0 - driver: {{ nets['tenant']['nic_mapping'][role]['uio_driver'] }} - members: - - - type: interface - name: {{ nets['tenant']['nic_mapping'][role]['members'][0] }} - # force the MAC address of the bridge to this interface - primary: true - {%- else %} - - - type: {{ nets['tenant']['nic_mapping'][role]['phys_type'] }} - name: {{ nets['tenant']['nic_mapping'][role]['members'][0] }} - {%- if 'uio-driver' in nets['tenant']['nic_mapping'][role] %} - uio_driver: {{ nets['tenant']['nic_mapping'][role]['uio-driver'] }} - {%- endif %} - {%- if 'interface-options' in nets['tenant']['nic_mapping'][role] %} - options: '{{ nets['tenant']['nic_mapping'][role]['interface-options'] }}' - {%- endif %} - use_dhcp: false - addresses: - - - ip_netmask: {get_param: TenantIpSubnet} - {%- endif %} - {%- endif %} - {%- if nets['external'][0]['enabled'] and external_net_type != 'br-ex' and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %} - - - type: {{ nets['external'][0]['nic_mapping'][role]['phys_type'] }} - name: {{ nets['external'][0]['nic_mapping'][role]['members'][0] }} - {%- if 'uio-driver' in nets['external'][0]['nic_mapping'][role] %} - uio_driver: {{ nets['external'][0]['nic_mapping'][role]['uio-driver'] }} - {%- endif %} - {%- if role == 'controller' %} - dns_servers: {get_param: DnsServers} {%- endif %} - use_dhcp: false - addresses: - - - ip_netmask: {get_param: ExternalIpSubnet} - routes: - - - {%- if role == 'controller' %} - default: true + use_dhcp: false + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: + list_join: + - '/' + - - {get_param: ControlPlaneIp} + - {get_param: ControlPlaneSubnetCidr} + routes: + - + ip_netmask: 169.254.169.254/32 + next_hop: {get_param: EC2MetadataIp} + {%- if external_net_af == 6 or role == 'compute' or not nets['external'][0]['enabled'] %} + - + default: true + next_hop: {get_param: ControlPlaneDefaultRoute} {%- endif %} - ip_netmask: 0.0.0.0/0 - next_hop: {get_param: ExternalInterfaceDefaultRoute} - {%- elif nets['external'][0]['enabled'] and external_net_type == 'br-ex' and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %} - - + + {%- if nets['tenant']['enabled'] and nets['tenant']['nic_mapping'][role]['vlan'] == 'native' %} {%- if ovs_dpdk_bridge == 'br-phy' and role == 'compute' %} - type: ovs_user_bridge + - + type: ovs_user_bridge + name: {{ ovs_dpdk_bridge }} + use_dhcp: false + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + members: + - + type: ovs_dpdk_port + name: dpdk0 + driver: {{ nets['tenant']['nic_mapping'][role]['uio_driver'] }} + members: + - + type: interface + name: {{ nets['tenant']['nic_mapping'][role]['members'][0] }} + # force the MAC address of the bridge to this interface + primary: true {%- else %} - type: ovs_bridge + - + type: {{ nets['tenant']['nic_mapping'][role]['phys_type'] }} + name: {{ nets['tenant']['nic_mapping'][role]['members'][0] }} + {%- if 'uio-driver' in nets['tenant']['nic_mapping'][role] %} + uio_driver: {{ nets['tenant']['nic_mapping'][role]['uio-driver'] }} + {%- endif %} + {%- if 'interface-options' in nets['tenant']['nic_mapping'][role] %} + options: '{{ nets['tenant']['nic_mapping'][role]['interface-options'] }}' + {%- endif %} + use_dhcp: false + addresses: + - + ip_netmask: {get_param: TenantIpSubnet} + {%- endif %} {%- endif %} - name: {get_input: bridge_name} - use_dhcp: false - members: - - - type: interface - name: {{ nets['external'][0]['nic_mapping'][role]['members'][0] }} - # force the MAC address of the bridge to this interface - primary: true - {%- if role == 'controller' %} - dns_servers: {get_param: DnsServers} - addresses: - - - ip_netmask: {get_param: ExternalIpSubnet} - routes: - - - default: true - ip_netmask: 0.0.0.0/0 - next_hop: {get_param: ExternalInterfaceDefaultRoute} + {%- if nets['external'][0]['enabled'] and external_net_type != 'br-ex' and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %} + - + type: {{ nets['external'][0]['nic_mapping'][role]['phys_type'] }} + name: {{ nets['external'][0]['nic_mapping'][role]['members'][0] }} + {%- if 'uio-driver' in nets['external'][0]['nic_mapping'][role] %} + uio_driver: {{ nets['external'][0]['nic_mapping'][role]['uio-driver'] }} + {%- endif %} + {%- if role == 'controller' %} + dns_servers: {get_param: DnsServers} + {%- endif %} + use_dhcp: false + addresses: + - + ip_netmask: {get_param: ExternalIpSubnet} + routes: + - + {%- if role == 'controller' %} + default: true + {%- endif %} + ip_netmask: 0.0.0.0/0 + next_hop: {get_param: ExternalInterfaceDefaultRoute} + {%- elif nets['external'][0]['enabled'] and external_net_type == 'br-ex' and nets['external'][0]['nic_mapping'][role]['vlan'] == 'native' %} + - + {%- if ovs_dpdk_bridge == 'br-phy' and role == 'compute' %} + type: ovs_user_bridge + {%- else %} + type: ovs_bridge + {%- endif %} + name: br-ex + use_dhcp: false + members: + - + type: interface + name: {{ nets['external'][0]['nic_mapping'][role]['members'][0] }} + # force the MAC address of the bridge to this interface + primary: true + {%- if role == 'controller' %} + dns_servers: {get_param: DnsServers} + addresses: + - + ip_netmask: {get_param: ExternalIpSubnet} + routes: + - + default: true + ip_netmask: 0.0.0.0/0 + next_hop: {get_param: ExternalInterfaceDefaultRoute} + {%- endif %} + {%- endif %} + {%- if nets['storage']['enabled'] and nets['storage']['nic_mapping'][role]['vlan'] == 'native' %} + - + type: interface + name: {{ nets['storage']['nic_mapping'][role]['members'][0] }} + use_dhcp: false + addresses: + - + ip_netmask: {get_param: StorageIpSubnet} + {%- endif %} + {%- if nets['api']['enabled'] and nets['api']['nic_mapping'][role]['vlan'] == 'native' %} + - + type: interface + name: {{ nets['api']['nic_mapping'][role]['members'][0] }} + use_dhcp: false + addresses: + - + ip_netmask: {get_param: InternalApiIpSubnet} {%- endif %} - {%- endif %} - {%- if nets['storage']['enabled'] and nets['storage']['nic_mapping'][role]['vlan'] == 'native' %} - - - type: interface - name: {{ nets['storage']['nic_mapping'][role]['members'][0] }} - use_dhcp: false - addresses: - - - ip_netmask: {get_param: StorageIpSubnet} - {%- endif %} - {%- if nets['api']['enabled'] and nets['api']['nic_mapping'][role]['vlan'] == 'native' %} - - - type: interface - name: {{ nets['api']['nic_mapping'][role]['members'][0] }} - use_dhcp: false - addresses: - - - ip_netmask: {get_param: InternalApiIpSubnet} - {%- endif %} outputs: OS::stack_id: