Deployment with custom network names fails due to mismatch in subnet names. Environment: openstack-tripleo-heat-templates-10.5.1-0.20190606110437.b9992d9.el8ost.noarch python3-tripleoclient-11.4.1-0.20190529050408.f172dd6.el8ost.noarch Steps to reproduce: Apply patch https://review.opendev.org/#/c/664832/ for https://bugzilla.redhat.com/show_bug.cgi?id=1719756 Attempt to deploy OC with: openstack overcloud deploy \ --timeout 100 \ --templates /usr/share/openstack-tripleo-heat-templates \ --stack overcloud \ --libvirt-type kvm \ --ntp-server clock.redhat.com \ -e /home/stack/virt/config_lvm.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -n /home/stack/virt/network/network_data.yaml \ -e /home/stack/virt/network/network-environment.yaml \ -e /home/stack/virt/network/dvr-override.yaml \ -e /home/stack/virt/inject-trust-anchor.yaml \ -e /home/stack/virt/hostnames.yml \ -e /home/stack/virt/debug.yaml \ -e /home/stack/virt/nodes_data.yaml \ -e ~/containers-prepare-parameter.yaml [stack@undercloud-0 ~]$ cat /home/stack/virt/network/network-environment.yaml parameter_defaults: ControlPlaneDefaultRoute: 192.168.24.1 ControlPlaneSubnetCidr: '24' DnsServers: - 10.0.0.1 EC2MetadataIp: 192.168.24.1 ExternalAllocationPools: - end: 10.0.0.149 start: 10.0.0.101 ExternalInterfaceDefaultRoute: 10.0.0.1 ExternalNetCidr: 10.0.0.0/24 ExternalNetworkVlanID: 10 InternalApiAllocationPools: - end: 172.17.1.149 start: 172.17.1.10 InternalApiNetCidr: 172.17.1.0/24 InternalApiNetworkVlanID: 20 NeutronBridgeMappings: datacentre:br-ex,tenant:br-isolated NeutronExternalNetworkBridge: br-ex NeutronNetworkType: geneve NeutronNetworkVLANRanges: tenant:1000:2000 NeutronTunnelTypes: geneve StorageAllocationPools: - end: 172.17.3.149 start: 172.17.3.10 StorageMgmtAllocationPools: - end: 172.17.4.149 start: 172.17.4.10 StorageMgmtNetCidr: 172.17.4.0/24 StorageMgmtNetworkVlanID: 40 StorageNetCidr: 172.17.3.0/24 StorageNetworkVlanID: 30 TenantAllocationPools: - end: 172.17.2.149 start: 172.17.2.10 TenantNetCidr: 172.17.2.0/24 TenantNetworkVlanID: 50 resource_registry: OS::TripleO::BlockStorage::Net::SoftwareConfig: three-nics-vlans//cinder-storage.yaml OS::TripleO::CephStorage::Net::SoftwareConfig: three-nics-vlans//ceph-storage.yaml OS::TripleO::Compute::Net::SoftwareConfig: three-nics-vlans//compute.yaml OS::TripleO::Controller::Net::SoftwareConfig: three-nics-vlans//controller.yaml OS::TripleO::ObjectStorage::Net::SoftwareConfig: three-nics-vlans//swift-storage.yaml [stack@undercloud-0 ~]$ cat /home/stack/virt/network/network_data.yaml # List of networks, used for j2 templating of enabled networks # # Supported values: # # name: Name of the network (mandatory) # name_lower: lowercase version of name used for filenames # (optional, defaults to name.lower()) # service_net_map_replace: if name_lower is set to a custom name this should be set # to original default (optional). This field is only necessary when # changing the default network names, not when adding a new custom network. # enabled: Is the network enabled (optional, defaults to true) # external_resource_network_id: Optional. If set, it should be the UUID of an existing already # created Neutron network that will be used in place of creating a # new network. # external_resource_vip_id: Optional. If set, it should be the UUID of an existing already # created Neutron port for the VIP that will be used # in place of creating a new port. # external_resource_subnet_id: Optional. If set, it should be the UUID of an existing already # created Neutron subnet that will be used in place of creating a # new subnet for the network. # external_resource_segment_id: Optional. If set, it should be the UUID of an existing already # created Neutron segment that will be used in place of creating a # new segment for the network. # NOTE: False will use noop.yaml for unused legacy networks to support upgrades. # vlan: vlan for the network (optional) # vip: Enable creation of a virtual IP on this network # ip_subnet: IP/CIDR, e.g. '192.168.24.0/24' or '2001:db8:fd00:1000::/64' # (optional, may use parameter defaults instead) # allocation_pools: IP range list e.g. [{'start':'10.0.0.4', 'end':'10.0.0.250'}] # gateway_ip: gateway for the network (optional, may use parameter defaults) # routes: Optional, list of networks that should be routed via network gateway. # Example: [{'destination':'10.0.0.0/16', 'nexthop':'10.0.0.1'}] # A single /16 supernet route could be used for 255 smaller /24 subnets. # ipv6_subnet: Optional, sets default IPv6 subnet if IPv4 is already defined. # ipv6_allocation_pools: Set default IPv6 allocation pools if IPv4 allocation pools # are already defined. # gateway_ipv6: Set an IPv6 gateway if IPv4 gateway already defined. # routes_ipv6: Optional, list of networks that should be routed via network gateway. # Example: [{'destination':'fd00:fd00:fd00:3004::/64', # 'nexthop':'fd00:fd00:fd00:3000::1'}] # ipv6: If ip_subnet not defined, this specifies that the network is IPv6-only. # NOTE: IP-related values set parameter defaults in templates, may be overridden, # either by operators, or e.g in environments/network-isolation-v6.yaml where we # set some default IPv6 addresses. # compat_name: for existing stack you may need to override the default # transformation for the resource's name. # mtu: Set the maximum transmission unit (MTU) that is guaranteed to pass # through the data path of the segments in the network. # (optional, defaults to 1500) # subnets: A map of additional subnets for the network (optional). The map # takes the following format: # {'<subnet name>': {'enabled': '<true|false>', # 'vlan': '<vlan-id>', # 'ip_subnet': '<IP/CIDR>', # 'allocation_pools': '<IP range list>', # 'gateway_ip': '<gateway IP>', # 'routes': '<Routes list>', # 'ipv6_subnet': '<IPv6/CIDR>', # 'ipv6_allocation_pools': '<IPv6 range list>', # 'gateway_ipv6': '<IPv6 gateway>', # 'routes_ipv6': '<Routes list>', # 'external_resource_subnet_id': '<Existing subnet UUID (optional)>'}} # 'external_resource_segment_id': '<Existing segment UUID (optional)>'}} # # Example: # - name Example # vip: false # ip_subnet: '10.0.2.0/24' # allocation_pools: [{'start': '10.0.2.4', 'end': '10.0.2.250'}] # gateway_ip: '10.0.2.254' # # To support backward compatibility, two versions of the network definitions # will be created, network/<network>.yaml and network/<network>_v6.yaml. Only # one of these files may be used in the deployment at a time, since the # parameters used for configuration are the same in both files. In the # future, this behavior may be changed to create only one file for custom # networks. You may specify IPv6 addresses for ip_subnet, allocation_pools, # and gateway_ip if no IPv4 addresses are used for a custom network, or set # ipv6: true, and the network/<network>.yaml file will be configured as IPv6. # # For configuring both IPv4 and IPv6 on the same interface, use two separate # networks, and then assign both IPs to the same interface in a custom NIC # configuration templates. # # The ordering of the networks below will determine the order in which NICs # are assigned in the network/config/multiple-nics templates, beginning with # NIC2, Control Plane is always NIC1. - name: Storage vip: true vlan: 30 name_lower: MyStorageNet service_net_map_replace: storage ip_subnet: '172.16.1.0/24' allocation_pools: [{'start': '172.16.1.4', 'end': '172.16.1.250'}] ipv6_subnet: 'fd00:fd00:fd00:3000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:3000::10', 'end': 'fd00:fd00:fd00:3000:ffff:ffff:ffff:fffe'}] mtu: 1500 - name: StorageMgmt name_lower: MyStorageMgmtNet service_net_map_replace: storage_mgmt vip: true vlan: 40 ip_subnet: '172.16.3.0/24' allocation_pools: [{'start': '172.16.3.4', 'end': '172.16.3.250'}] ipv6_subnet: 'fd00:fd00:fd00:4000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:4000::10', 'end': 'fd00:fd00:fd00:4000:ffff:ffff:ffff:fffe'}] mtu: 1500 - name: InternalApi name_lower: MyInternalApiNet service_net_map_replace: internal_api vip: true vlan: 20 ip_subnet: '172.16.2.0/24' allocation_pools: [{'start': '172.16.2.4', 'end': '172.16.2.250'}] ipv6_subnet: 'fd00:fd00:fd00:2000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:2000::10', 'end': 'fd00:fd00:fd00:2000:ffff:ffff:ffff:fffe'}] mtu: 1500 - name: Tenant vip: false # Tenant network does not use VIPs name_lower: MyTenantNet service_net_map_replace: tenant vlan: 50 ip_subnet: '172.16.0.0/24' allocation_pools: [{'start': '172.16.0.4', 'end': '172.16.0.250'}] ipv6_subnet: 'fd00:fd00:fd00:5000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:5000::10', 'end': 'fd00:fd00:fd00:5000:ffff:ffff:ffff:fffe'}] mtu: 1500 - name: External vip: true name_lower: MyExternalNet service_net_map_replace: external vlan: 10 ip_subnet: '10.0.0.0/24' allocation_pools: [{'start': '10.0.0.4', 'end': '10.0.0.250'}] gateway_ip: '10.0.0.1' ipv6_subnet: '2001:db8:fd00:1000::/64' ipv6_allocation_pools: [{'start': '2001:db8:fd00:1000::10', 'end': '2001:db8:fd00:1000:ffff:ffff:ffff:fffe'}] gateway_ipv6: '2001:db8:fd00:1000::1' mtu: 1500 - name: Management # Management network is enabled by default for backwards-compatibility, but # is not included in any roles by default. Add to role definitions to use. enabled: true vip: false # Management network does not use VIPs name_lower: management vlan: 60 ip_subnet: '10.0.1.0/24' allocation_pools: [{'start': '10.0.1.4', 'end': '10.0.1.250'}] gateway_ip: '10.0.1.1' gateway_ipv6: 'fd00:fd00:fd00:6000::1' ipv6_subnet: 'fd00:fd00:fd00:6000::/64' ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:6000::10', 'end': 'fd00:fd00:fd00:6000:ffff:ffff:ffff:fffe'}] mtu: 1500 The deployment fails with: overcloud.Compute.0.TenantPort: resource_type: OS::TripleO::Compute::Ports::TenantPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.TenantPort: Property error: resources.TenantPort.properties.fixed_ips[0].subnet: Error validating value 'tenant_subnet': Unable to find subnet with name or id 'tenant_subnet' overcloud.Compute.0.InternalApiPort: resource_type: OS::TripleO::Compute::Ports::InternalApiPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.InternalApiPort: Property error: resources.InternalApiPort.properties.fixed_ips[0].subnet: Error validating value 'internal_api_subnet': Unable to find subnet with name or id 'internal_api_subnet' overcloud.Compute.0.StoragePort: resource_type: OS::TripleO::Compute::Ports::StoragePort physical_resource_id: status: CREATE_FAILED status_reason: | resources.StoragePort: Property error: resources.StoragePort.properties.fixed_ips[0].subnet: Error validating value 'storage_subnet': Unable to find subnet with name or id 'storage_subnet' overcloud.Controller.1.ExternalPort: resource_type: OS::TripleO::Controller::Ports::ExternalPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.ExternalPort: Property error: resources.ExternalPort.properties.fixed_ips[0].subnet: Error validating value 'external_subnet': Unable to find subnet with name or id 'external_subnet' overcloud.Controller.1.StoragePort: resource_type: OS::TripleO::Controller::Ports::StoragePort physical_resource_id: status: CREATE_FAILED status_reason: | resources.StoragePort: Property error: resources.StoragePort.properties.fixed_ips[0].subnet: Error validating value 'storage_subnet': Unable to find subnet with name or id 'storage_subnet' overcloud.Controller.1.StorageMgmtPort: resource_type: OS::TripleO::Controller::Ports::StorageMgmtPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.StorageMgmtPort: Property error: resources.StorageMgmtPort.properties.fixed_ips[0].subnet: Error validating value 'storage_mgmt_subnet': Unable to find subnet with name or id 'storage_mgmt_subnet' overcloud.Controller.1.InternalApiPort: resource_type: OS::TripleO::Controller::Ports::InternalApiPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.InternalApiPort: Property error: resources.InternalApiPort.properties.fixed_ips[0].subnet: Error validating value 'internal_api_subnet': Unable to find subnet with name or id 'internal_api_subnet' overcloud.Controller.1.TenantPort: resource_type: OS::TripleO::Controller::Ports::TenantPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.TenantPort: Property error: resources.TenantPort.properties.fixed_ips[0].subnet: Error validating value 'tenant_subnet': Unable to find subnet with name or id 'tenant_subnet' overcloud.Controller.2.ExternalPort: resource_type: OS::TripleO::Controller::Ports::ExternalPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.ExternalPort: Property error: resources.ExternalPort.properties.fixed_ips[0].subnet: Error validating value 'external_subnet': Unable to find subnet with name or id 'external_subnet' overcloud.Controller.2.StoragePort: resource_type: OS::TripleO::Controller::Ports::StoragePort physical_resource_id: status: CREATE_FAILED status_reason: | resources.StoragePort: Property error: resources.StoragePort.properties.fixed_ips[0].subnet: Error validating value 'storage_subnet': Unable to find subnet with name or id 'storage_subnet' overcloud.Controller.2.StorageMgmtPort: resource_type: OS::TripleO::Controller::Ports::StorageMgmtPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.StorageMgmtPort: Property error: resources.StorageMgmtPort.properties.fixed_ips[0].subnet: Error validating value 'storage_mgmt_subnet': Unable to find subnet with name or id 'storage_mgmt_subnet' overcloud.Controller.2.InternalApiPort: resource_type: OS::TripleO::Controller::Ports::InternalApiPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.InternalApiPort: Property error: resources.InternalApiPort.properties.fixed_ips[0].subnet: Error validating value 'internal_api_subnet': Unable to find subnet with name or id 'internal_api_subnet' overcloud.Controller.2.TenantPort: resource_type: OS::TripleO::Controller::Ports::TenantPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.TenantPort: Property error: resources.TenantPort.properties.fixed_ips[0].subnet: Error validating value 'tenant_subnet': Unable to find subnet with name or id 'tenant_subnet' overcloud.Controller.0.ExternalPort: resource_type: OS::TripleO::Controller::Ports::ExternalPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.ExternalPort: Property error: resources.ExternalPort.properties.fixed_ips[0].subnet: Error validating value 'external_subnet': Unable to find subnet with name or id 'external_subnet' overcloud.Controller.0.StoragePort: resource_type: OS::TripleO::Controller::Ports::StoragePort physical_resource_id: status: CREATE_FAILED status_reason: | resources.StoragePort: Property error: resources.StoragePort.properties.fixed_ips[0].subnet: Error validating value 'storage_subnet': Unable to find subnet with name or id 'storage_subnet' overcloud.Controller.0.StorageMgmtPort: resource_type: OS::TripleO::Controller::Ports::StorageMgmtPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.StorageMgmtPort: Property error: resources.StorageMgmtPort.properties.fixed_ips[0].subnet: Error validating value 'storage_mgmt_subnet': Unable to find subnet with name or id 'storage_mgmt_subnet' overcloud.Controller.0.InternalApiPort: resource_type: OS::TripleO::Controller::Ports::InternalApiPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.InternalApiPort: Property error: resources.InternalApiPort.properties.fixed_ips[0].subnet: Error validating value 'internal_api_subnet': Unable to find subnet with name or id 'internal_api_subnet' overcloud.Controller.0.TenantPort: resource_type: OS::TripleO::Controller::Ports::TenantPort physical_resource_id: status: CREATE_FAILED status_reason: | resources.TenantPort: Property error: resources.TenantPort.properties.fixed_ips[0].subnet: Error validating value 'tenant_subnet': Unable to find subnet with name or id 'tenant_subnet' (undercloud) [stack@undercloud-0 ~]$ Looking at the created networks and subnets: (undercloud) [stack@undercloud-0 ~]$ openstack network list subnet list +--------------------------------------+------------------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+------------------+--------------------------------------+ | 3d50963f-03dd-4195-a965-a61edd162191 | MyStorageNet | a4754f5a-968a-4304-8104-8ea3d3433565 | | 61441e1b-fd33-4484-91d5-1107da97e88f | ctlplane | 78ecf154-3462-4c0a-8493-0cf17c627215 | | a78ca342-6e5b-4c7c-b60d-c6e97dc7013a | MyTenantNet | 83e58f2f-75cf-421b-aafd-5fc9035ad761 | | c2b1c69a-12e2-401e-8bac-3646be528d73 | MyStorageMgmtNet | 2c30cc52-1392-4ffa-b0b2-987dc775949e | | cefd6cf3-a8be-4a2b-b452-1a3b8fbe31b9 | MyInternalApiNet | 10d87b7a-24de-4d98-a913-5ec3020cd2a2 | | e184700e-5cb7-4149-af5a-8a29db233002 | management | aa558caf-1590-4552-8240-ea9c09b7755f | | e44c6b05-ec23-463d-a2f3-ac7bad015c7e | MyExternalNet | a47f692c-74f7-4ccc-8b14-f7648bfd463a | +--------------------------------------+------------------+--------------------------------------+ (undercloud) [stack@undercloud-0 ~]$ openstack subnet list +--------------------------------------+-------------------------+--------------------------------------+-----------------+ | ID | Name | Network | Subnet | +--------------------------------------+-------------------------+--------------------------------------+-----------------+ | 10d87b7a-24de-4d98-a913-5ec3020cd2a2 | MyInternalApiNet_subnet | cefd6cf3-a8be-4a2b-b452-1a3b8fbe31b9 | 172.17.1.0/24 | | 2c30cc52-1392-4ffa-b0b2-987dc775949e | MyStorageMgmtNet_subnet | c2b1c69a-12e2-401e-8bac-3646be528d73 | 172.17.4.0/24 | | 78ecf154-3462-4c0a-8493-0cf17c627215 | ctlplane-subnet | 61441e1b-fd33-4484-91d5-1107da97e88f | 192.168.24.0/24 | | 83e58f2f-75cf-421b-aafd-5fc9035ad761 | MyTenantNet_subnet | a78ca342-6e5b-4c7c-b60d-c6e97dc7013a | 172.17.2.0/24 | | a4754f5a-968a-4304-8104-8ea3d3433565 | MyStorageNet_subnet | 3d50963f-03dd-4195-a965-a61edd162191 | 172.17.3.0/24 | | a47f692c-74f7-4ccc-8b14-f7648bfd463a | MyExternalNet_subnet | e44c6b05-ec23-463d-a2f3-ac7bad015c7e | 10.0.0.0/24 | | aa558caf-1590-4552-8240-ea9c09b7755f | management_subnet | e184700e-5cb7-4149-af5a-8a29db233002 | 10.0.1.0/24 | +--------------------------------------+-------------------------+--------------------------------------+-----------------+ (undercloud) [stack@undercloud-0 ~]$
Temporarily moving blocker flag, will reinstate.
Verified: Environment: openstack-tripleo-heat-templates-10.5.1-0.20190701110422.889d4d4.el8ost.noarch Successfully deployed OverCloud. (undercloud) [stack@undercloud-0 ~]$ openstack network list +--------------------------------------+------------------+--------------------------------------+ | ID | Name | Subnets | +--------------------------------------+------------------+--------------------------------------+ | 1023faba-b1a8-47bb-8770-aaff8f2efb0f | MyStorageMgmtNet | 3d5d51f1-8ef0-44ce-a11c-37b8cc1de51d | | 263f431f-aaa1-4ef2-99fc-51d1360c66bd | MyStorageNet | 58ec3004-bcd5-4eb1-ac39-e1e7d47b7568 | | 41099f37-999d-47bc-b220-c2cfd8e84243 | management | 8c0cb99f-28f6-4f12-ac8f-e8300b9ff81f | | 55349c7c-4e06-41f6-bffc-9973e9f1ab4a | MyInternalApiNet | 2c176993-e8fb-4ccb-b76d-311d270e0461 | | 799167a0-e881-4c73-a370-1f79cbe55e3d | MyExternalNet | 415c4d7c-e922-4369-8d2d-88d9686b9c03 | | 92ee6e20-3389-40b5-9b9b-3299fc0d6713 | ctlplane | c96d70e9-bbae-40a8-a175-5604476e3166 | | ae464f6a-e5d7-46b4-a143-e904fe19562f | MyTenantNet | 37c1b487-a423-4dea-af74-9c6cbb4a9424 | +--------------------------------------+------------------+--------------------------------------+
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2019:2811