From ff30e794d12f9d32bdafaf78c8e67539b8df7e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20Jens=C3=A5s?= Date: Thu, 24 Sep 2020 05:00:22 +0200 Subject: [PATCH] Create NetworkConfig per-role in overcloud.yaml For each role create a network config resource {role.name}}NetworkConfig. Remove per node NetworkConfig resource from puppet/role.role.j2.yaml. NOTE: CI nic config templates was updated with using tools/merge-new-params-nic-config-script.py Depends-On: https://review.opendev.org/753930 Change-Id: Iff4bf742947a5a8170938372a8075519850b6f63 --- .../nic-configs/ceph-storage.yaml | 82 ++++---- .../nic-configs/cinder-storage.yaml | 81 ++++---- .../nic-configs/compute-dvr.yaml | 108 +++++------ .../nic-configs/compute.yaml | 99 +++++----- .../nic-configs/controller.yaml | 137 +++++++------- .../nic-configs/swift-storage.yaml | 81 ++++---- .../nic-configs/ceph-storage.yaml | 82 ++++---- .../nic-configs/cinder-storage.yaml | 89 +++++---- .../nic-configs/compute-dvr.yaml | 107 +++++------ .../multiple-nics/nic-configs/compute.yaml | 99 +++++----- .../multiple-nics/nic-configs/controller.yaml | 134 +++++++------ .../nic-configs/swift-storage.yaml | 81 ++++---- .../standalone/standalone-tripleo.yaml | 2 +- net-config-standalone.j2.yaml | 4 + net-config-undercloud.j2.yaml | 4 + overcloud.j2.yaml | 94 ++++++--- puppet/role.role.j2.yaml | 178 ++---------------- sample-env-generator/standalone.yaml | 13 +- sample-env-generator/undercloud-minion.yaml | 2 + 19 files changed, 694 insertions(+), 783 deletions(-) diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/ceph-storage.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/ceph-storage.yaml index 3a26262146..29be21e951 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/ceph-storage.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/ceph-storage.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number StorageMgmtIpSubnet: default: '' @@ -30,21 +27,19 @@ parameters: StorageMgmtInterfaceRoutes: default: [] description: > - Routes for the storage_mgmt network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMgmtMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - StorageMgmt network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the StorageMgmt network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string StorageNetworkVlanID: default: 30 @@ -57,36 +52,37 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. + type: comma_delimited_list + DnsSearchDomains: + default: [] + description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value @@ -101,26 +97,32 @@ resources: - ip_netmask: list_join: - / - - - {get_param: ControlPlaneIp} - - {get_param: ControlPlaneSubnetCidr} + - - get_param: ControlPlaneIp + - get_param: ControlPlaneSubnetCidr routes: - default: true ip_netmask: 0.0.0.0/0 - next_hop: {get_param: ControlPlaneDefaultRoute} + next_hop: + get_param: ControlPlaneDefaultRoute - type: interface name: nic4 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageIpSubnet} + - ip_netmask: + get_param: StorageIpSubnet - type: interface name: nic5 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageMgmtIpSubnet} - + - ip_netmask: + get_param: StorageMgmtIpSubnet outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/cinder-storage.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/cinder-storage.yaml index 336cd73825..914ebe13ee 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/cinder-storage.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/cinder-storage.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: InternalApiInterfaceRoutes: default: [] description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. type: number StorageIpSubnet: default: '' @@ -30,16 +27,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number StorageMgmtIpSubnet: default: '' @@ -48,21 +43,19 @@ parameters: StorageMgmtInterfaceRoutes: default: [] description: > - Routes for the storage_mgmt network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMgmtMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - StorageMgmt network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the StorageMgmt network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string InternalApiNetworkVlanID: default: 20 @@ -79,44 +72,48 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. + type: comma_delimited_list + DnsSearchDomains: + default: [] + description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value properties: value: network_config: [] - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/compute-dvr.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/compute-dvr.yaml index 869a89b669..5d14ab6706 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/compute-dvr.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/compute-dvr.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: InternalApiInterfaceRoutes: default: [] description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. type: number StorageIpSubnet: default: '' @@ -30,16 +27,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number TenantIpSubnet: default: '' @@ -48,21 +43,19 @@ parameters: TenantInterfaceRoutes: default: [] description: > - Routes for the tenant network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json TenantMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Tenant network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Tenant network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string InternalApiNetworkVlanID: default: 20 @@ -79,45 +72,41 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. type: comma_delimited_list DnsSearchDomains: # Override this via parameter_defaults default: [] description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list ExternalInterfaceDefaultRoute: - default: '10.0.0.1' + default: 10.0.0.1 description: default route for the external network type: string - - resources: OsNetConfigImpl: type: OS::Heat::Value @@ -132,31 +121,37 @@ resources: - ip_netmask: list_join: - / - - - {get_param: ControlPlaneIp} - - {get_param: ControlPlaneSubnetCidr} + - - get_param: ControlPlaneIp + - get_param: ControlPlaneSubnetCidr routes: - default: true ip_netmask: 0.0.0.0/0 - next_hop: {get_param: ControlPlaneDefaultRoute} + next_hop: + get_param: ControlPlaneDefaultRoute - type: interface name: nic3 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: InternalApiIpSubnet} + - ip_netmask: + get_param: InternalApiIpSubnet - type: interface name: nic4 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageIpSubnet} + - ip_netmask: + get_param: StorageIpSubnet - type: ovs_bridge name: br-tenant - dns_servers: {get_param: DnsServers} - domain: {get_param: DnsSearchDomains} + dns_servers: + get_param: DnsServers + domain: + get_param: DnsSearchDomains use_dhcp: false addresses: - - ip_netmask: {get_param: TenantIpSubnet} + - ip_netmask: + get_param: TenantIpSubnet members: - type: interface name: nic6 @@ -164,18 +159,23 @@ resources: primary: true - type: ovs_bridge name: br-ex - dns_servers: {get_param: DnsServers} + dns_servers: + get_param: DnsServers use_dhcp: false routes: - ip_netmask: ::/0 - next_hop: {get_param: ExternalInterfaceDefaultRoute} + next_hop: + get_param: ExternalInterfaceDefaultRoute members: - type: interface name: nic2 mtu: 1350 primary: true - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/compute.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/compute.yaml index e150757df3..2f3c41b0b1 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/compute.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/compute.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: InternalApiInterfaceRoutes: default: [] description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. type: number StorageIpSubnet: default: '' @@ -30,16 +27,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number TenantIpSubnet: default: '' @@ -48,21 +43,19 @@ parameters: TenantInterfaceRoutes: default: [] description: > - Routes for the tenant network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json TenantMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Tenant network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Tenant network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string InternalApiNetworkVlanID: default: 20 @@ -79,40 +72,37 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. type: comma_delimited_list DnsSearchDomains: # Override this via parameter_defaults default: [] description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value @@ -127,38 +117,47 @@ resources: - ip_netmask: list_join: - / - - - {get_param: ControlPlaneIp} - - {get_param: ControlPlaneSubnetCidr} + - - get_param: ControlPlaneIp + - get_param: ControlPlaneSubnetCidr routes: - default: true ip_netmask: 0.0.0.0/0 - next_hop: {get_param: ControlPlaneDefaultRoute} + next_hop: + get_param: ControlPlaneDefaultRoute - type: interface name: nic3 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: InternalApiIpSubnet} + - ip_netmask: + get_param: InternalApiIpSubnet - type: interface name: nic4 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageIpSubnet} + - ip_netmask: + get_param: StorageIpSubnet - type: ovs_bridge name: br-tenant - dns_servers: {get_param: DnsServers} - domain: {get_param: DnsSearchDomains} + dns_servers: + get_param: DnsServers + domain: + get_param: DnsSearchDomains use_dhcp: false addresses: - - ip_netmask: {get_param: TenantIpSubnet} + - ip_netmask: + get_param: TenantIpSubnet members: - type: interface name: nic6 mtu: 1350 primary: true - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/controller.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/controller.yaml index 3fc733262c..649b0ed178 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/controller.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/controller.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,10 +11,8 @@ parameters: ExternalInterfaceRoutes: default: [] description: > - Routes for the external network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the external network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiIpSubnet: default: '' @@ -24,16 +21,14 @@ parameters: InternalApiInterfaceRoutes: default: [] description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. type: number StorageIpSubnet: default: '' @@ -42,16 +37,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number StorageMgmtIpSubnet: default: '' @@ -60,16 +53,14 @@ parameters: StorageMgmtInterfaceRoutes: default: [] description: > - Routes for the storage_mgmt network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMgmtMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - StorageMgmt network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the StorageMgmt network. type: number TenantIpSubnet: default: '' @@ -78,21 +69,19 @@ parameters: TenantInterfaceRoutes: default: [] description: > - Routes for the tenant network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json TenantMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Tenant network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Tenant network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string ExternalNetworkVlanID: default: 10 @@ -115,52 +104,49 @@ parameters: description: Vlan ID for the tenant network traffic. type: number ExternalInterfaceDefaultRoute: - default: '10.0.0.1' + default: 10.0.0.1 description: default route for the external network type: string ExternalMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - External network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the External network. type: number ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. type: comma_delimited_list DnsSearchDomains: # Override this via parameter_defaults default: [] description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value @@ -175,23 +161,28 @@ resources: - ip_netmask: list_join: - / - - - {get_param: ControlPlaneIp} - - {get_param: ControlPlaneSubnetCidr} + - - get_param: ControlPlaneIp + - get_param: ControlPlaneSubnetCidr routes: - default: true ip_netmask: 0.0.0.0/0 - next_hop: {get_param: ControlPlaneDefaultRoute} + next_hop: + get_param: ControlPlaneDefaultRoute - type: ovs_bridge name: br-ex - dns_servers: {get_param: DnsServers} - domain: {get_param: DnsSearchDomains} + dns_servers: + get_param: DnsServers + domain: + get_param: DnsSearchDomains use_dhcp: false addresses: - - ip_netmask: {get_param: ExternalIpSubnet} + - ip_netmask: + get_param: ExternalIpSubnet routes: - default: true ip_netmask: ::/0 - next_hop: {get_param: ExternalInterfaceDefaultRoute} + next_hop: + get_param: ExternalInterfaceDefaultRoute members: - type: interface name: nic2 @@ -202,32 +193,40 @@ resources: mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: InternalApiIpSubnet} + - ip_netmask: + get_param: InternalApiIpSubnet - type: interface name: nic4 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageIpSubnet} + - ip_netmask: + get_param: StorageIpSubnet - type: interface name: nic5 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageMgmtIpSubnet} + - ip_netmask: + get_param: StorageMgmtIpSubnet - type: ovs_bridge name: br-tenant - dns_servers: {get_param: DnsServers} + dns_servers: + get_param: DnsServers use_dhcp: false addresses: - - ip_netmask: {get_param: TenantIpSubnet} + - ip_netmask: + get_param: TenantIpSubnet members: - type: interface name: nic6 mtu: 1350 primary: true - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics-ipv6/nic-configs/swift-storage.yaml b/ci/environments/network/multiple-nics-ipv6/nic-configs/swift-storage.yaml index 336cd73825..914ebe13ee 100644 --- a/ci/environments/network/multiple-nics-ipv6/nic-configs/swift-storage.yaml +++ b/ci/environments/network/multiple-nics-ipv6/nic-configs/swift-storage.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: InternalApiInterfaceRoutes: default: [] description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. type: number StorageIpSubnet: default: '' @@ -30,16 +27,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number StorageMgmtIpSubnet: default: '' @@ -48,21 +43,19 @@ parameters: StorageMgmtInterfaceRoutes: default: [] description: > - Routes for the storage_mgmt network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMgmtMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - StorageMgmt network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the StorageMgmt network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string InternalApiNetworkVlanID: default: 20 @@ -79,44 +72,48 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. + type: comma_delimited_list + DnsSearchDomains: + default: [] + description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value properties: value: network_config: [] - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics/nic-configs/ceph-storage.yaml b/ci/environments/network/multiple-nics/nic-configs/ceph-storage.yaml index 78c9722e89..afa219ac63 100644 --- a/ci/environments/network/multiple-nics/nic-configs/ceph-storage.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/ceph-storage.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number StorageMgmtIpSubnet: default: '' @@ -30,21 +27,19 @@ parameters: StorageMgmtInterfaceRoutes: default: [] description: > - Routes for the storage_mgmt network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMgmtMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - StorageMgmt network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the StorageMgmt network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string StorageNetworkVlanID: default: 30 @@ -57,36 +52,37 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. + type: comma_delimited_list + DnsSearchDomains: + default: [] + description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value @@ -101,25 +97,31 @@ resources: - ip_netmask: list_join: - / - - - {get_param: ControlPlaneIp} - - {get_param: ControlPlaneSubnetCidr} + - - get_param: ControlPlaneIp + - get_param: ControlPlaneSubnetCidr routes: - default: true - next_hop: {get_param: ControlPlaneDefaultRoute} + next_hop: + get_param: ControlPlaneDefaultRoute - type: interface name: nic4 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageIpSubnet} + - ip_netmask: + get_param: StorageIpSubnet - type: interface name: nic5 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageMgmtIpSubnet} - + - ip_netmask: + get_param: StorageMgmtIpSubnet outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics/nic-configs/cinder-storage.yaml b/ci/environments/network/multiple-nics/nic-configs/cinder-storage.yaml index f1945d5e56..914ebe13ee 100644 --- a/ci/environments/network/multiple-nics/nic-configs/cinder-storage.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/cinder-storage.yaml @@ -1,10 +1,25 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' description: IP address/subnet on the ctlplane network type: string + InternalApiIpSubnet: + default: '' + description: IP address/subnet on the internal_api network + type: string + InternalApiInterfaceRoutes: + default: [] + description: > + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. + type: json + InternalApiMtu: + default: 1500 + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. + type: number StorageIpSubnet: default: '' description: IP address/subnet on the storage network @@ -12,16 +27,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number StorageMgmtIpSubnet: default: '' @@ -30,22 +43,24 @@ parameters: StorageMgmtInterfaceRoutes: default: [] description: > - Routes for the storage_mgmt network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMgmtMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - StorageMgmt network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the StorageMgmt network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string + 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. @@ -57,44 +72,48 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. + type: comma_delimited_list + DnsSearchDomains: + default: [] + description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value properties: value: network_config: [] - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics/nic-configs/compute-dvr.yaml b/ci/environments/network/multiple-nics/nic-configs/compute-dvr.yaml index 02df7346e3..7e405e6281 100644 --- a/ci/environments/network/multiple-nics/nic-configs/compute-dvr.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/compute-dvr.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: InternalApiInterfaceRoutes: default: [] description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. type: number StorageIpSubnet: default: '' @@ -30,16 +27,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number TenantIpSubnet: default: '' @@ -48,21 +43,19 @@ parameters: TenantInterfaceRoutes: default: [] description: > - Routes for the tenant network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json TenantMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Tenant network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Tenant network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string InternalApiNetworkVlanID: default: 20 @@ -79,44 +72,41 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. type: comma_delimited_list DnsSearchDomains: # Override this via parameter_defaults default: [] description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list ExternalInterfaceDefaultRoute: - default: '10.0.0.1' + default: 10.0.0.1 description: default route for the external network type: string - resources: OsNetConfigImpl: type: OS::Heat::Value @@ -131,19 +121,23 @@ resources: - ip_netmask: list_join: - / - - - {get_param: ControlPlaneIp} - - {get_param: ControlPlaneSubnetCidr} + - - get_param: ControlPlaneIp + - get_param: ControlPlaneSubnetCidr routes: - default: true - next_hop: {get_param: ControlPlaneDefaultRoute} + next_hop: + get_param: ControlPlaneDefaultRoute - type: ovs_bridge name: br-ex - dns_servers: {get_param: DnsServers} - domain: {get_param: DnsSearchDomains} + dns_servers: + get_param: DnsServers + domain: + get_param: DnsSearchDomains use_dhcp: false routes: - ip_netmask: 0.0.0.0/0 - next_hop: {get_param: ExternalInterfaceDefaultRoute} + next_hop: + get_param: ExternalInterfaceDefaultRoute members: - type: interface name: nic2 @@ -154,26 +148,33 @@ resources: mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: InternalApiIpSubnet} + - ip_netmask: + get_param: InternalApiIpSubnet - type: interface name: nic4 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageIpSubnet} + - ip_netmask: + get_param: StorageIpSubnet - type: ovs_bridge name: br-tenant - dns_servers: {get_param: DnsServers} + dns_servers: + get_param: DnsServers use_dhcp: false addresses: - - ip_netmask: {get_param: TenantIpSubnet} + - ip_netmask: + get_param: TenantIpSubnet members: - type: interface name: nic6 mtu: 1350 primary: true - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics/nic-configs/compute.yaml b/ci/environments/network/multiple-nics/nic-configs/compute.yaml index 92f60f9a2e..8b3f83bdcc 100644 --- a/ci/environments/network/multiple-nics/nic-configs/compute.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/compute.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: InternalApiInterfaceRoutes: default: [] description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. type: number StorageIpSubnet: default: '' @@ -30,16 +27,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number TenantIpSubnet: default: '' @@ -48,21 +43,19 @@ parameters: TenantInterfaceRoutes: default: [] description: > - Routes for the tenant network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json TenantMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Tenant network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Tenant network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string InternalApiNetworkVlanID: default: 20 @@ -79,40 +72,37 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. type: comma_delimited_list DnsSearchDomains: # Override this via parameter_defaults default: [] description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value @@ -127,37 +117,46 @@ resources: - ip_netmask: list_join: - / - - - {get_param: ControlPlaneIp} - - {get_param: ControlPlaneSubnetCidr} + - - get_param: ControlPlaneIp + - get_param: ControlPlaneSubnetCidr routes: - default: true - next_hop: {get_param: ControlPlaneDefaultRoute} + next_hop: + get_param: ControlPlaneDefaultRoute - type: interface name: nic3 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: InternalApiIpSubnet} + - ip_netmask: + get_param: InternalApiIpSubnet - type: interface name: nic4 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageIpSubnet} + - ip_netmask: + get_param: StorageIpSubnet - type: ovs_bridge name: br-tenant - dns_servers: {get_param: DnsServers} - domain: {get_param: DnsSearchDomains} + dns_servers: + get_param: DnsServers + domain: + get_param: DnsSearchDomains use_dhcp: false addresses: - - ip_netmask: {get_param: TenantIpSubnet} + - ip_netmask: + get_param: TenantIpSubnet members: - type: interface name: nic6 mtu: 1350 primary: true - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics/nic-configs/controller.yaml b/ci/environments/network/multiple-nics/nic-configs/controller.yaml index c588d0a880..1b3c9a82f4 100644 --- a/ci/environments/network/multiple-nics/nic-configs/controller.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/controller.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: ExternalInterfaceRoutes: default: [] description: > - Routes for the external network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the external network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ExternalMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - External network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the External network. type: number InternalApiIpSubnet: default: '' @@ -30,16 +27,14 @@ parameters: InternalApiInterfaceRoutes: default: [] description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. type: number StorageIpSubnet: default: '' @@ -48,16 +43,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number StorageMgmtIpSubnet: default: '' @@ -66,16 +59,14 @@ parameters: StorageMgmtInterfaceRoutes: default: [] description: > - Routes for the storage_mgmt network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMgmtMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - StorageMgmt network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the StorageMgmt network. type: number TenantIpSubnet: default: '' @@ -84,21 +75,19 @@ parameters: TenantInterfaceRoutes: default: [] description: > - Routes for the tenant network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the tenant network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json TenantMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Tenant network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Tenant network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string ExternalNetworkVlanID: default: 10 @@ -121,46 +110,43 @@ parameters: description: Vlan ID for the tenant network traffic. type: number ExternalInterfaceDefaultRoute: - default: '10.0.0.1' + default: 10.0.0.1 description: default route for the external network type: string ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. type: comma_delimited_list DnsSearchDomains: # Override this via parameter_defaults default: [] description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value @@ -175,18 +161,22 @@ resources: - ip_netmask: list_join: - / - - - {get_param: ControlPlaneIp} - - {get_param: ControlPlaneSubnetCidr} + - - get_param: ControlPlaneIp + - get_param: ControlPlaneSubnetCidr - type: ovs_bridge name: br-ex - dns_servers: {get_param: DnsServers} - domain: {get_param: DnsSearchDomains} + dns_servers: + get_param: DnsServers + domain: + get_param: DnsSearchDomains use_dhcp: false addresses: - - ip_netmask: {get_param: ExternalIpSubnet} + - ip_netmask: + get_param: ExternalIpSubnet routes: - ip_netmask: 0.0.0.0/0 - next_hop: {get_param: ExternalInterfaceDefaultRoute} + next_hop: + get_param: ExternalInterfaceDefaultRoute members: - type: interface name: nic2 @@ -197,32 +187,40 @@ resources: mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: InternalApiIpSubnet} + - ip_netmask: + get_param: InternalApiIpSubnet - type: interface name: nic4 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageIpSubnet} + - ip_netmask: + get_param: StorageIpSubnet - type: interface name: nic5 mtu: 1350 use_dhcp: false addresses: - - ip_netmask: {get_param: StorageMgmtIpSubnet} + - ip_netmask: + get_param: StorageMgmtIpSubnet - type: ovs_bridge name: br-tenant - dns_servers: {get_param: DnsServers} + dns_servers: + get_param: DnsServers use_dhcp: false addresses: - - ip_netmask: {get_param: TenantIpSubnet} + - ip_netmask: + get_param: TenantIpSubnet members: - type: interface name: nic6 mtu: 1350 primary: true - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/ci/environments/network/multiple-nics/nic-configs/swift-storage.yaml b/ci/environments/network/multiple-nics/nic-configs/swift-storage.yaml index 336cd73825..914ebe13ee 100644 --- a/ci/environments/network/multiple-nics/nic-configs/swift-storage.yaml +++ b/ci/environments/network/multiple-nics/nic-configs/swift-storage.yaml @@ -1,5 +1,4 @@ heat_template_version: rocky - parameters: ControlPlaneIp: default: '' @@ -12,16 +11,14 @@ parameters: InternalApiInterfaceRoutes: default: [] description: > - Routes for the internal_api network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the internal_api network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json InternalApiMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - InternalApi network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the InternalApi network. type: number StorageIpSubnet: default: '' @@ -30,16 +27,14 @@ parameters: StorageInterfaceRoutes: default: [] description: > - Routes for the storage network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - Storage network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the Storage network. type: number StorageMgmtIpSubnet: default: '' @@ -48,21 +43,19 @@ parameters: StorageMgmtInterfaceRoutes: default: [] description: > - Routes for the storage_mgmt network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the storage_mgmt network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json StorageMgmtMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - guaranteed to pass through the data path of the segments in the - StorageMgmt network. + description: >- + The maximum transmission unit (MTU) size(in bytes) that is guaranteed to pass through the data path of the segments + in the StorageMgmt network. type: number BondInterfaceOvsOptions: - default: 'bond_mode=active-backup' - description: The ovs_options string for the bond interface. Set things like - lacp=active and/or bond_mode=balance-slb using this option. + default: bond_mode=active-backup + description: >- + The ovs_options string for the bond interface. Set things like lacp=active and/or bond_mode=balance-slb using this option. type: string InternalApiNetworkVlanID: default: 20 @@ -79,44 +72,48 @@ parameters: ControlPlaneSubnetCidr: default: '' description: > - The subnet CIDR of the control plane network. (The parameter is - automatically resolved from the ctlplane subnet's cidr attribute.) + The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr + attribute.) type: string ControlPlaneDefaultRoute: default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) + description: >- + The default route of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's + gateway_ip attribute.) type: string ControlPlaneStaticRoutes: default: [] description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. + Routes for the ctlplane network traffic. JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] Unless + the default is changed, the parameter is automatically resolved from the subnet host_routes attribute. type: json ControlPlaneMtu: default: 1500 - description: The maximum transmission unit (MTU) size(in bytes) that is - 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.) + description: >- + The maximum transmission unit (MTU) size(in bytes) that is 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.) type: number DnsServers: # Override this via parameter_defaults default: [] description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. + DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the + ctlplane subnet's dns_nameservers attribute will be used. + type: comma_delimited_list + DnsSearchDomains: + default: [] + description: A list of DNS search domains to be added (in order) to resolv.conf. type: comma_delimited_list - resources: OsNetConfigImpl: type: OS::Heat::Value properties: value: network_config: [] - outputs: config: description: The OsNetConfigImpl resource. - value: {get_attr: [OsNetConfigImpl, value]} + value: + get_attr: + - OsNetConfigImpl + - value + diff --git a/environments/standalone/standalone-tripleo.yaml b/environments/standalone/standalone-tripleo.yaml index fcd1465a71..d8131babd1 100644 --- a/environments/standalone/standalone-tripleo.yaml +++ b/environments/standalone/standalone-tripleo.yaml @@ -25,7 +25,7 @@ # openstack overcloud roles generate -o ~/roles_data.yaml Standalone parameter_defaults: # Set to true to append per network Vips to /etc/hosts on each node. - # Type: string + # Type: boolean AddVipsToEtcHosts: False # DNS servers to use for the Overcloud (2 max for some implementations). If not set the nameservers configured in the ctlplane subnet's dns_nameservers attribute will be used. diff --git a/net-config-standalone.j2.yaml b/net-config-standalone.j2.yaml index cd8f3a7bdf..9a00dcb334 100644 --- a/net-config-standalone.j2.yaml +++ b/net-config-standalone.j2.yaml @@ -31,6 +31,10 @@ parameters: default: '' description: default route for the {{network.name_lower}} network type: string + {{network.name}}NetworkVlanID: + default: {{network.vlan|default(1)}} + description: Vlan ID for the {{network.name_lower}} network traffic. + type: number {%- endfor %} ControlPlaneSubnetCidr: default: '' diff --git a/net-config-undercloud.j2.yaml b/net-config-undercloud.j2.yaml index b353e49d86..64a758817c 100644 --- a/net-config-undercloud.j2.yaml +++ b/net-config-undercloud.j2.yaml @@ -31,6 +31,10 @@ parameters: default: '' description: default route for the {{network.name_lower}} network type: string + {{network.name}}NetworkVlanID: + default: {{network.vlan|default(1)}} + description: Vlan ID for the {{network.name_lower}} network traffic. + type: number {%- endfor %} ControlPlaneSubnetCidr: default: '' diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index 1d4fde24a5..e690260cfa 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -372,6 +372,14 @@ parameters: local device or a DMI String matches the specified id being written as a mapping file for os-net-config. (/etc/os-net-config/mapping.yaml) + DnsServers: # Override this via parameter_defaults + default: [] + description: > + DNS servers to use for the Overcloud (2 max for some implementations). + If not set the nameservers configured in the ctlplane subnet's + dns_nameservers attribute will be used. + type: comma_delimited_list + {% for role in roles %} {%- if role.deprecated_param_scheduler_hints is defined or role.deprecated_param_extraconfig is defined %} {%- if not parameter_groups_defined|default(false) %} @@ -461,6 +469,9 @@ conditions: - equals: - get_param: [EndpointMapOverride, NovaMetadataCellInternal] - '' + dnsservers_set: + not: + equals: [{get_param: DnsServers}, []] resources: @@ -952,42 +963,39 @@ resources: value: ctlplane_mtu: {get_attr: [Networks, net_attributes_map, ctlplane, network, mtu]} ctlplane_gateway_ip: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, gateway_ip]} - ctlplane_dns_nameservers: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, dns_nameservers]} + ctlplane_dns_nameservers: + if: + - dnsservers_set + - {get_param: DnsServers} + - {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, dns_nameservers]} ctlplane_subnet_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, cidr]}, 1]} ctlplane_host_routes: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, host_routes]} {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} - {{network.name_lower}}_mtu: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, network, mtu]} {%- if role.networks is mapping %} - {{network.name_lower}}_gateway_ip: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, gateway_ip]} - {{network.name_lower}}_host_routes: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, host_routes]} - {{network.name_lower}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, cidr]}, 1]} - {{network.name_lower}}_vlan_id: - yaql: - expression: > - switch(not isList($.data) => 1, - not $.data.where($.startsWith('tripleo_vlan_id')).len() => 1, - true => int($.data.where($.startsWith('tripleo_vlan_id')).first().split('=').last())) - data: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, tags]} + {%- set _role_net_subnet = role.networks[network.name]['subnet'] %} {%- else %} - {{network.name_lower}}_gateway_ip: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, gateway_ip]} - {{network.name_lower}}_host_routes: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, host_routes]} - {{network.name_lower}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, cidr]}, 1]} + {%- set _role_net_subnet = network.name_lower + '_subnet' %} + {%- endif %} + {{network.name_lower}}_mtu: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, network, mtu]} + {{network.name_lower}}_gateway_ip: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, gateway_ip]} + {{network.name_lower}}_host_routes: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, host_routes]} + {{network.name_lower}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, cidr]}, 1]} {{network.name_lower}}_vlan_id: yaql: expression: > switch(not isList($.data) => 1, not $.data.where($.startsWith('tripleo_vlan_id')).len() => 1, true => int($.data.where($.startsWith('tripleo_vlan_id')).first().split('=').last())) - data: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, tags]} - {%- endif %} + data: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, tags]} {%- endfor %} network_cidrs: {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} - {%- if role.networks is mapping %} - {{network.name}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{role.networks[network.name]['subnet']}}, cidr]}, 1]} - {%- else %} - {{network.name}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{network.name_lower}}_subnet, cidr]}, 1]} - {%- endif %} + {%- if role.networks is mapping %} + {%- set _role_net_subnet = role.networks[network.name]['subnet'] %} + {%- else %} + {%- set _role_net_subnet = network.name_lower + '_subnet' %} + {%- endif %} + {{network.name}}_cidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, cidr]}, 1]} {%- endfor %} dns_search_domains: {get_param: DnsSearchDomains} local_mtu: {get_param: {{role.name}}LocalMtu} @@ -1005,6 +1013,40 @@ resources: default_route_networks: {{role.default_route_networks}} networks_skip_config: {{role.networks_skip_config }} role_tags: {{role.tags}} + + {{role.name}}NetworkConfig: + type: OS::TripleO::{{role.name}}::Net::SoftwareConfig + properties: + ControlPlaneIp: "{{ '{{' }} ctlplane_ip {{ '}}' }}" + ControlPlaneSubnetCidr: {str_split: ['/', {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, cidr]}, 1]} + ControlPlaneDefaultRoute: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, gateway_ip]} + ControlPlaneStaticRoutes: {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, host_routes]} + ControlPlaneMtu: {get_attr: [Networks, net_attributes_map, ctlplane, network, mtu]} + DnsServers: + if: + - dnsservers_set + - {get_param: DnsServers} + - {get_attr: [Networks, net_attributes_map, ctlplane, subnets, {get_param: {{role.name}}ControlPlaneSubnet}, dns_nameservers]} + {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} + {%- if role.networks is mapping %} + {%- set _role_net_subnet = role.networks[network.name]['subnet'] %} + {%- else %} + {%- set _role_net_subnet = network.name_lower + '_subnet' %} + {%- endif %} + {{network.name}}IpSubnet: "{{ '{{' }} {{network.name_lower}}_ip ~ '/' ~ {{network.name_lower}}_cidr {{ '}}' }}" + {{network.name}}InterfaceRoutes: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, host_routes]} + {{network.name}}Mtu: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, network, mtu]} + {{network.name}}NetworkVlanID: + yaql: + expression: > + switch(not isList($.data) => 1, + not $.data.where($.startsWith('tripleo_vlan_id')).len() => 1, + true => int($.data.where($.startsWith('tripleo_vlan_id')).first().split('=').last())) + data: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, tags]} + {%- if network.name in role.default_route_networks %} + {{network.name}}InterfaceDefaultRoute: {get_attr: [Networks, net_attributes_map, {{network.name_lower}}, subnets, {{_role_net_subnet}}, gateway_ip]} + {%- endif %} + {%- endfor %} {%- endfor %} ControlVirtualIP: @@ -1329,13 +1371,11 @@ outputs: GlobalConfig: description: The global_config (hieradata). value: {get_attr: [GlobalConfig, value]} - HostnameNetworkConfigMap: - description: Mapping of hostname to NetworkConfig resource + RoleNetworkConfigMap: + description: Mapping of roles to network config value: - map_merge: - list_concat: {%- for role in roles %} - - {get_attr: [{{role.name}}, hostname_network_config_map]} + {{role.name}}: {get_attr: [{{role.name}}NetworkConfig, config]} {%- endfor %} AnsibleHostVarsMap: description: Map of Ansible Host variables per role diff --git a/puppet/role.role.j2.yaml b/puppet/role.role.j2.yaml index a3b99786e2..9d627a5476 100644 --- a/puppet/role.role.j2.yaml +++ b/puppet/role.role.j2.yaml @@ -169,59 +169,6 @@ parameters: The subnet CIDR of the control plane network. (The parameter is automatically resolved from the ctlplane subnet's cidr attribute.) type: string - ControlPlaneDefaultRoute: - default: '' - description: The default route of the control plane network. (The parameter - is automatically resolved from the ctlplane subnet's gateway_ip attribute.) - type: string - ControlPlaneStaticRoutes: - default: [] - description: > - Routes for the ctlplane network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - DnsServers: # Override this via parameter_defaults - default: [] - description: > - DNS servers to use for the Overcloud (2 max for some implementations). - If not set the nameservers configured in the ctlplane subnet's - dns_nameservers attribute will be used. - type: comma_delimited_list -{%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} - {{network.name}}InterfaceRoutes: - default: [] - description: > - Routes for the {{network.name_lower}} network traffic. - JSON route e.g. [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] - Unless the default is changed, the parameter is automatically resolved - from the subnet host_routes attribute. - type: json - {%- 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: {{network.subnets[_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 %} - ServerDeletionPolicy: description: Whether to retain or delete servers on deletion of the stack type: string @@ -281,32 +228,13 @@ conditions: - "" {%- endif %} - false # NOTE(hjensas): Make sure 'or' get's 2 conditions or more -{%- for network in networks %} -{%- if network.enabled|default(true) and network.name in role.networks|default([]) %} +{%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} {{role.name}}_{{network.name}}_fixed_ip_set: not: equals: - {get_param: [{{role.name}}IPs, '{{network.name_lower}}', {get_param: NodeIndex}]} - '' - {{network.name_lower}}_interface_routes_set: - not: - equals: - - {get_param: {{network.name}}InterfaceRoutes} - - [] -{%- endif %} {%- endfor %} - ctlplane_subnet_cidr_set: - not: - equals: [{get_param: ControlPlaneSubnetCidr}, ''] - ctlplane_default_route_set: - not: - equals: [{get_param: ControlPlaneDefaultRoute}, ''] - ctlplane_static_routes_set: - not: - equals: [{get_param: ControlPlaneStaticRoutes}, []] - dnsservers_set: - not: - equals: [{get_param: DnsServers}, []] resources: {{server_resource_name}}: @@ -378,6 +306,8 @@ resources: - - {get_attr: [{{server_resource_name}}, name]} - {{network.name}} DnsName: {get_attr: [{{server_resource_name}}, name]} + # TODO(hjensas): Make network isolation the default, so that we can drop + # using network/ports/noop.yaml as the default and remove this. ControlPlaneIP: {get_attr: [{{server_resource_name}}, networks, ctlplane, 0]} FixedIPs: if: @@ -393,15 +323,14 @@ resources: {%- else %} - [{subnet: {{network.name_lower}}_subnet}] {%- endif %} + # TODO(hjensas): Make network isolation the default, so that we can drop + # using network/ports/noop.yaml as the default and remove this. ControlPlaneSubnetCidr: - if: - - ctlplane_subnet_cidr_set - - {get_param: ControlPlaneSubnetCidr} - # DeployedServer docs specify 'cidr: 24' in DeployedServerPortMap. - # Support both that, and 'cidr: 192.168.24.0/24'. - - yaql: - expression: str("{0}".format($.data).split("/")[-1]) - data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]} + # DeployedServer docs specify 'cidr: 24' in DeployedServerPortMap. + # Support both that, and 'cidr: 192.168.24.0/24'. + yaql: + expression: str("{0}".format($.data).split("/")[-1]) + data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]} IPPool: map_merge: {%- if role.deprecated_param_ips is defined %} @@ -412,77 +341,14 @@ resources: {%- endif %} {%- endfor %} - NetworkConfig: - type: OS::TripleO::{{role.name}}::Net::SoftwareConfig - properties: - ControlPlaneIp: "{{ '{{' }} ctlplane_ip {{ '}}' }}" - ControlPlaneSubnetCidr: - if: - - ctlplane_subnet_cidr_set - - {get_param: ControlPlaneSubnetCidr} - - yaql: - expression: str("{0}".format($.data).split("/")[-1]) - data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]} - - ControlPlaneDefaultRoute: - if: - - ctlplane_default_route_set - - {get_param: ControlPlaneDefaultRoute} - - {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, gateway_ip]} - ControlPlaneStaticRoutes: - if: - - ctlplane_static_routes_set - - {get_param: ControlPlaneStaticRoutes} - - yaql: - expression: switch(isList($.data) => $.data, true => []) - data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, host_routes]} - ControlPlaneMtu: - yaql: - expression: switch(isInteger($.data) => $.data, true => 1500) - data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, network, mtu]} - DnsServers: - if: - - dnsservers_set - - {get_param: DnsServers} - - {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, dns_nameservers]} - - {%- for network in networks %} - {%- if network.enabled|default(true) and network.name in role.networks|default([]) %} - {{network.name}}IpSubnet: "{{ '{{' }} {{network.name_lower}}_ip ~ '/' ~ {{network.name_lower}}_cidr {{ '}}' }}" - {{network.name}}InterfaceRoutes: - if: - - {{network.name_lower}}_interface_routes_set - - {get_param: {{network.name}}InterfaceRoutes} - - {get_attr: [{{network.name}}Port, host_routes]} - {{network.name}}Mtu: {get_attr: [{{network.name}}Port, mtu]} - {%- if network.name in role.default_route_networks %} - {{network.name}}InterfaceDefaultRoute: {get_attr: [{{network.name}}Port, gateway_ip]} - {%- 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 %} - {%- endfor %} - NetIpMap: type: OS::TripleO::Network::Ports::NetIpMap properties: ControlPlaneIp: {get_attr: [{{server_resource_name}}, networks, ctlplane, 0]} ControlPlaneSubnetCidr: - if: - - ctlplane_subnet_cidr_set - - {get_param: ControlPlaneSubnetCidr} - - yaql: - expression: str("{0}".format($.data).split("/")[-1]) - data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]} + yaql: + expression: str("{0}".format($.data).split("/")[-1]) + data: {get_attr: [{{server_resource_name}}, addresses, ctlplane, 0, subnets, 0, cidr]} {%- for network in networks %} @@ -577,17 +443,8 @@ resources: properties: type: json value: - {%- for network in networks %} - {%- if network.enabled|default(true) and network.name in role.networks|default([]) %} - {{network.name_lower}}_cidr: {get_attr: [{{network.name}}Port, cidr]} + {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} fqdn_{{network.name_lower}}: {get_attr: [NetHostMap, value, {{network.name_lower}}, fqdn]} - {%- endif %} - {%- endfor %} - network_cidrs: - {%- for network in networks %} - {%- if network.enabled|default(true) and network.name in role.networks|default([]) %} - {{network.name}}_cidr: {get_attr: [{{network.name}}Port, cidr]} - {%- endif %} {%- endfor %} fqdn_ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]} fqdn_canonical: {get_attr: [NetHostMap, value, canonical, fqdn]} @@ -665,13 +522,6 @@ outputs: {%- endfor %} ctlplane: {get_attr: [NetHostMap, value, ctlplane, fqdn]} canonical: {get_attr: [NetHostMap, value, canonical, fqdn]} - hostname_network_config_map: - description: Mapping of hostname to NetworkConfig resource - value: - map_replace: - - HOSTNAME: {get_attr: [NetworkConfig, config]} - - keys: - HOSTNAME: {get_attr:[{{server_resource_name}}, name]} hosts_entry: value: - str_replace: diff --git a/sample-env-generator/standalone.yaml b/sample-env-generator/standalone.yaml index c2e3249786..ab64595916 100644 --- a/sample-env-generator/standalone.yaml +++ b/sample-env-generator/standalone.yaml @@ -42,16 +42,17 @@ environments: puppet/controller-role.yaml: parameters: - SoftwareConfigTransport - - DnsServers sample-env-generator/standalone.yaml: parameters: - AddVipsToEtcHosts - NetworkSafeDefaults - StandaloneNetworkConfigWithAnsible - StandaloneNetworkConfigTemplate - - + overcloud.yaml: + parameters: + - DnsServers sample_values: + AddVipsToEtcHosts: false StackAction: CREATE SoftwareConfigTransport: POLL_SERVER_HEAT EnablePackageInstall: true @@ -180,14 +181,14 @@ environments: - NtpServer # TODO(aschultz): hack to pull in this config transport, not sure it is # still needed. - puppet/controller-role.yaml: - parameters: - - DnsServers sample-env-generator/standalone.yaml: parameters: - StandaloneHostnameFormat - StandaloneCount - OvercloudStandaloneFlavor + overcloud.yaml: + parameters: + - DnsServers sample_values: StandaloneCount: 1 OvercloudStandaloneFlavor: standalone diff --git a/sample-env-generator/undercloud-minion.yaml b/sample-env-generator/undercloud-minion.yaml index 6ac8a651b1..fe83caf0ef 100644 --- a/sample-env-generator/undercloud-minion.yaml +++ b/sample-env-generator/undercloud-minion.yaml @@ -23,6 +23,8 @@ environments: puppet/controller-role.yaml: parameters: - SoftwareConfigTransport + overcloud.yaml: + parameters: - DnsServers sample_values: # Normal bits for standalone