From 247105809b02d65d828b1f2f009c40972c04146c Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Wed, 3 Jun 2020 01:09:32 +0900 Subject: [PATCH] Allow overriding InterfaceDefaultRoute with ips_from_pool template Currently InterfaceDefaultRoute doesn't affect when ips_from_pool template is used, and gateway_ip in network_data is always picked up. This patch allows operators to override default route by the parameter even when ips_from_pool template is used. Note that this patch also fixes incorrect handling about subnet in ips_from_pool template when ipv6 is enabled. Closes-Bug: #1881768 Change-Id: I2f0f60052c1acfc971fe3d5195f9499e45068396 (cherry picked from commit 396b26fe9b67aebf9b3a7badc9b82be5380ce237) (cherry picked from commit 454a0e6520b8ff324b7b4b649837c6c76628a260) --- network/ports/port_from_pool.j2 | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/network/ports/port_from_pool.j2 b/network/ports/port_from_pool.j2 index 16f019bb33..9aa0267905 100644 --- a/network/ports/port_from_pool.j2 +++ b/network/ports/port_from_pool.j2 @@ -49,9 +49,24 @@ parameters: default: 0 type: number {{network.name}}NetCidr: - default: {{network.ip_subnet}} +{%- if network.ipv6 or ipv6_override %} + default: "{{network.ipv6_subnet|default(network.ip_subnet|default(""))}}" +{%- else %} + default: "{{network.ip_subnet|default("")}}" +{%- endif %} description: Cidr for the {{network.name_lower}} network. type: string + {{network.name}}InterfaceDefaultRoute: + default: '' + description: default route for the {{network.name_lower}} network + type: string + +conditions: + {{network.name_lower}}_interface_default_route_set: + not: + equals: + - {get_param: {{network.name}}InterfaceDefaultRoute} + - '' outputs: ip_address: @@ -82,9 +97,13 @@ outputs: value: {{network.mtu|default('1500')}} gateway_ip: description: Gateway IP of the ports subnet + value: + if: + - {{network.name_lower}}_interface_default_route_set + - {get_param: {{network.name}}InterfaceDefaultRoute} + - {%- if network.ipv6|default(false) and network.gateway_ipv6|default(false) %} - value: {{network.gateway_ipv6|default('')}} + {{network.gateway_ipv6|default('')}} {%- else %} - value: {{network.gateway_ip|default('')}} + {{network.gateway_ip|default('')}} {%- endif %} -