diff --git a/tripleoclient/tests/v1/undercloud/test_config.py b/tripleoclient/tests/v1/undercloud/test_config.py index b4d1f9d1f..db1e37c1e 100644 --- a/tripleoclient/tests/v1/undercloud/test_config.py +++ b/tripleoclient/tests/v1/undercloud/test_config.py @@ -180,6 +180,47 @@ class TestNetworkSettings(base.TestCase): 'NetworkGateway': '192.168.24.1'}}} self.assertEqual(expected, env) + def test_ipv6_control_plane(self): + env = {} + self.conf.config(local_ip='fd12:3456:789a:1::2/64', + undercloud_admin_host='fd12:3456:789a:1::3', + undercloud_public_host='fd12:3456:789a:1::4') + self.conf.config(cidr='fd12:3456:789a:1::/64', + dhcp_start='fd12:3456:789a:1::10', + dhcp_end='fd12:3456:789a:1::20', + dhcp_exclude=[], + inspection_iprange=('fd12:3456:789a:1::30,' + 'fd12:3456:789a:1::40'), + gateway='fd12:3456:789a:1::1', + masquerade=False, + host_routes=[], + group='ctlplane-subnet') + undercloud_config._process_network_args(env) + expected = { + 'NovaIPv6': True, + 'RabbitIPv6': True, + 'MemcachedIPv6': True, + 'RedisIPv6': True, + 'MysqlIPv6': True, + 'ControlPlaneStaticRoutes': [], + 'DnsServers': '', + 'IronicInspectorSubnets': [ + {'gateway': 'fd12:3456:789a:1::1', + 'host_routes': [], + 'ip_range': 'fd12:3456:789a:1::30,fd12:3456:789a:1::40', + 'netmask': 'ffff:ffff:ffff:ffff::', + 'tag': 'ctlplane-subnet'}], + 'MasqueradeNetworks': {}, + 'UndercloudCtlplaneSubnets': { + 'ctlplane-subnet': { + 'AllocationPools': [ + {'start': 'fd12:3456:789a:1::10', + 'end': 'fd12:3456:789a:1::20'}], + 'HostRoutes': [], + 'NetworkCidr': 'fd12:3456:789a:1::/64', + 'NetworkGateway': 'fd12:3456:789a:1::1'}}} + self.assertEqual(expected, env) + def test_nameserver_toomany_fail(self): env = {} self.conf.config(undercloud_nameservers=['1.1.1.1', '1.1.1.2', diff --git a/tripleoclient/v1/undercloud_config.py b/tripleoclient/v1/undercloud_config.py index 30cc9ac7f..4abc6a4a1 100644 --- a/tripleoclient/v1/undercloud_config.py +++ b/tripleoclient/v1/undercloud_config.py @@ -348,6 +348,12 @@ def _process_network_args(env): 'servers in undercloud_' 'nameservers.') env['DnsServers'] = ','.join(CONF['undercloud_nameservers']) + if netaddr.IPNetwork(CONF['local_ip']).version == 6: + env['NovaIPv6'] = True + env['RabbitIPv6'] = True + env['MemcachedIPv6'] = True + env['RedisIPv6'] = True + env['MysqlIPv6'] = True def prepare_undercloud_deploy(upgrade=False, no_validations=False,