From 7c01813e248b9b92b370b2c67e5dbaecb61a6f82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20Jens=C3=A5s?= Date: Thu, 29 Aug 2019 23:57:10 +0200 Subject: [PATCH] Don't add IpList for disabled networks When disabling networks in network data an IpList entry was added in {{role.name}}IpListMap. This caused a validation error. Add a yaql expression to filter on role networks in network/ports/net_ip_list_map.j2.yaml. RoleNetIpMap should'nt have entries for networks not used by the role that maps to the ctlplane IP. Depends-On: https://review.opendev.org/710574 Closes-Bug: #1842001 Change-Id: I0cda298b0ed27705a8b6e0f62633af2253d8d0de (cherry picked from commit f222681a435b19ef28d30a8293fb615863b094d6) --- network/ports/net_ip_list_map.j2.yaml | 12 ++++++++++-- overcloud.j2.yaml | 11 ++++++----- ...ilure-when-network-disabled-156190243ff239ea.yaml | 6 ++++++ 3 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 releasenotes/notes/fix-deployment-failure-when-network-disabled-156190243ff239ea.yaml diff --git a/network/ports/net_ip_list_map.j2.yaml b/network/ports/net_ip_list_map.j2.yaml index e39df426ed..8268265708 100644 --- a/network/ports/net_ip_list_map.j2.yaml +++ b/network/ports/net_ip_list_map.j2.yaml @@ -29,6 +29,9 @@ parameters: default: false description: Whether this is an cell additional to the default cell. type: boolean + RoleNetworks: + default: ctlplane + type: comma_delimited_list conditions: is_cell: {equals: [{get_param: NovaAdditionalCell}, true]} @@ -62,9 +65,14 @@ resources: type: json value: map_replace: - - ctlplane: {get_param: ControlPlaneIpList} + - yaql: + expression: let(root => $) -> dict($.data.net_ip_map.items().where($[0] in $root.data.role_networks)) + data: + role_networks: {get_param: RoleNetworks} + net_ip_map: + ctlplane: {get_param: ControlPlaneIpList} {%- for network in networks if network.enabled|default(true) %} - {{network.name_lower}}: {get_param: {{network.name}}IpList} + {{network.name_lower}}: {get_param: {{network.name}}IpList} {%- endfor %} - keys: ctlplane: ctlplane # Ensure one key is present, in case no enabled networks diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index d17453eddd..57a196e61f 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -660,12 +660,13 @@ resources: type: OS::TripleO::Network::Ports::NetIpListMap properties: ControlPlaneIpList: {get_attr: [{{role.name}}, ip_address]} - {%- 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([]) %} {{network.name}}IpList: {get_attr: [{{role.name}}, {{network.name_lower}}_ip_address]} - {%- else %} - {{network.name}}IpList: {get_attr: [{{role.name}}, ip_address]} - {%- endif %} + {%- endfor %} + RoleNetworks: + - ctlplane + {%- for network in networks if network.enabled|default(true) and network.name in role.networks|default([]) %} + - {{network.name_lower}} {%- endfor %} EnabledServices: {get_attr: [{{role.name}}ServiceNames, value]} ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]} diff --git a/releasenotes/notes/fix-deployment-failure-when-network-disabled-156190243ff239ea.yaml b/releasenotes/notes/fix-deployment-failure-when-network-disabled-156190243ff239ea.yaml new file mode 100644 index 0000000000..af565a0e67 --- /dev/null +++ b/releasenotes/notes/fix-deployment-failure-when-network-disabled-156190243ff239ea.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixed an issue where disabling one or more networks in + ``network_data.yaml`` caused deployment failure. (See bug: + `#1842001 `_)