summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFeng Pan <fpan@redhat.com>2018-08-16 11:36:58 -0400
committerFeng Pan <fpan@redhat.com>2018-08-17 11:25:16 -0400
commit5ce42bedb325439ae1e907cc0076a2e6d1266787 (patch)
treede69cf99b43a315f1ebf3a2e94953924005efdfa
parentc0a4aa96bbe70eefb179d59a1267b8115651bba5 (diff)
Fix ipv6 deployment failures
- fix ipv6 enable command on bridge interfaces - fix external subnet creation command - enable NAT when admin is ipv4 - fix network settings file for ipv6 for br-ex interface type Change-Id: Ibd2dbe1d0c8e8df72ad1b0b3713a19f8bbc56eef Signed-off-by: Feng Pan <fpan@redhat.com>
-rw-r--r--apex/network/jumphost.py8
-rw-r--r--apex/overcloud/deploy.py3
-rw-r--r--apex/undercloud/undercloud.py7
-rw-r--r--config/network/network_settings_v6.yaml4
4 files changed, 10 insertions, 12 deletions
diff --git a/apex/network/jumphost.py b/apex/network/jumphost.py
index c28c105..8655665 100644
--- a/apex/network/jumphost.py
+++ b/apex/network/jumphost.py
@@ -53,12 +53,8 @@ def configure_bridges(ns):
if cidr.version == 6:
ipv6_br_path = "/proc/sys/net/ipv6/conf/{}/disable_" \
"ipv6".format(NET_MAP[network])
- try:
- subprocess.check_call('echo', 0, '>', ipv6_br_path)
- except subprocess.CalledProcessError:
- logging.error("Unable to enable ipv6 on "
- "bridge {}".format(NET_MAP[network]))
- raise
+ with open(ipv6_br_path, 'w') as f:
+ print(0, file=f)
try:
ip_prefix = "{}/{}".format(ovs_ip, cidr.prefixlen)
subprocess.check_call(['ip', 'addr', 'add', ip_prefix, 'dev',
diff --git a/apex/overcloud/deploy.py b/apex/overcloud/deploy.py
index e310fa2..3dd2af3 100644
--- a/apex/overcloud/deploy.py
+++ b/apex/overcloud/deploy.py
@@ -871,8 +871,7 @@ def external_network_cmds(ns, ds):
"--allocation-pool start={},end={} --subnet-range " \
"{}".format(gateway, pool_start, pool_end, str(cidr))
if external and cidr.version == 6:
- subnet_cmd += ' --ip-version 6 --ipv6-ra-mode slaac ' \
- '--ipv6-address-mode slaac'
+ subnet_cmd += ' --ip-version 6'
cmds.append(subnet_cmd)
logging.debug("Neutron external network commands determined "
"as: {}".format(cmds))
diff --git a/apex/undercloud/undercloud.py b/apex/undercloud/undercloud.py
index d2de2de..5608769 100644
--- a/apex/undercloud/undercloud.py
+++ b/apex/undercloud/undercloud.py
@@ -263,8 +263,11 @@ class Undercloud:
"prefix": str(ns_external['cidr']).split('/')[1],
"enabled": ns_external['enabled']
}
- # TODO(trozet): clean this logic up and merge with above
- if 'external' in ns.enabled_network_list:
+ # We will NAT external network if it is enabled. If external network
+ # is IPv6, we will NAT admin network in case we need IPv4 connectivity
+ # for things like DNS server.
+ if 'external' in ns.enabled_network_list and \
+ ns_external['cidr'].version == 4:
nat_cidr = ns_external['cidr']
else:
nat_cidr = ns['networks']['admin']['cidr']
diff --git a/config/network/network_settings_v6.yaml b/config/network/network_settings_v6.yaml
index 1dd1097..71b0b27 100644
--- a/config/network/network_settings_v6.yaml
+++ b/config/network/network_settings_v6.yaml
@@ -180,7 +180,7 @@ networks:
# Mapping for compute profile (nodes assigned as Compute nodes)
compute:
# Physical interface type (interface or bond)
- phys_type: interface
+ phys_type: ovs_bridge
# VLAN tag to use with this NIC
vlan: native
# Physical NIC members of this mapping
@@ -189,7 +189,7 @@ networks:
- nic3
# Mapping for controller profile (nodes assigned as Controller nodes)
controller:
- phys_type: interface
+ phys_type: ovs_bridge
vlan: native
members:
- nic3