From 4dba85d815b606d25ed31bd5a47ffc057a635e69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Harald=20Jens=C3=A5s?= Date: Thu, 21 May 2020 15:42:54 +0200 Subject: [PATCH] Use /32 or /128 netmask for VIPs Commit 1ebf115f8580f0cd2aceccda6615e396df113c9d hard code the netmask for VIPs to /32. This will not work for IPv6. Add a conditional checking for ':' in the IP addresses for control_virtual_ip and public_virtual_ip and set netmask correctly based on IP version. Related-Bug: #1878101 Change-Id: I00718cf436ba438ef19c1a42aa2d2004fe73dcd2 (cherry picked from commit 2f38880744e0281b0c00b41ab690cafd7b4eb7ed) --- net-config-standalone.j2.yaml | 6 ++++-- net-config-undercloud.j2.yaml | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/net-config-standalone.j2.yaml b/net-config-standalone.j2.yaml index 7f1c4860df..036b3fef76 100644 --- a/net-config-standalone.j2.yaml +++ b/net-config-standalone.j2.yaml @@ -92,6 +92,8 @@ conditions: equals: [{get_param: StandaloneNetConfigOverride}, {}] control_virtual_ip_unset: {equals : [{get_param: [DeployedServerPortMap, 'control_virtual_ip', fixed_ips, 0, ip_address]}, '']} public_virtual_ip_unset: {equals : [{get_param: [DeployedServerPortMap, 'public_virtual_ip', fixed_ips, 0, ip_address]}, '']} + control_virtual_ip_is_ipv6: {contains: [':', {get_param: [DeployedServerPortMap, 'control_virtual_ip', fixed_ips, 0, ip_address]}]} + public_virtual_ip_is_ipv6: {contains: [':', {get_param: [DeployedServerPortMap, 'public_virtual_ip', fixed_ips, 0, ip_address]}]} resources: OsNetConfigImpl: @@ -135,7 +137,7 @@ resources: list_join: - / - - {get_param: [DeployedServerPortMap, 'control_virtual_ip', fixed_ips, 0, ip_address]} - - '32' + - {if: [control_virtual_ip_is_ipv6, '128', '32']} - if: - public_virtual_ip_unset @@ -144,7 +146,7 @@ resources: list_join: - / - - {get_param: [DeployedServerPortMap, 'public_virtual_ip', fixed_ips, 0, ip_address]} - - '32' + - {if: [public_virtual_ip_is_ipv6, '128', '32']} routes: {get_param: ControlPlaneStaticRoutes} members: - type: interface diff --git a/net-config-undercloud.j2.yaml b/net-config-undercloud.j2.yaml index 79c0d04325..24327dbe69 100644 --- a/net-config-undercloud.j2.yaml +++ b/net-config-undercloud.j2.yaml @@ -88,6 +88,8 @@ conditions: equals: [{get_param: UndercloudNetConfigOverride}, {}] control_virtual_ip_unset: {equals : [{get_param: [DeployedServerPortMap, 'control_virtual_ip', fixed_ips, 0, ip_address]}, '']} public_virtual_ip_unset: {equals : [{get_param: [DeployedServerPortMap, 'public_virtual_ip', fixed_ips, 0, ip_address]}, '']} + control_virtual_ip_is_ipv6: {contains: [':', {get_param: [DeployedServerPortMap, 'control_virtual_ip', fixed_ips, 0, ip_address]}]} + public_virtual_ip_is_ipv6: {contains: [':', {get_param: [DeployedServerPortMap, 'public_virtual_ip', fixed_ips, 0, ip_address]}]} resources: OsNetConfigImpl: @@ -130,7 +132,7 @@ resources: list_join: - / - - {get_param: [DeployedServerPortMap, 'control_virtual_ip', fixed_ips, 0, ip_address]} - - '32' + - {if: [control_virtual_ip_is_ipv6, '128', '32']} - if: - public_virtual_ip_unset @@ -139,7 +141,7 @@ resources: list_join: - / - - {get_param: [DeployedServerPortMap, 'public_virtual_ip', fixed_ips, 0, ip_address]} - - '32' + - {if: [public_virtual_ip_is_ipv6, '128', '32']} routes: {get_param: ControlPlaneStaticRoutes} members: - type: interface