From eeee83d0f3614ae23dc2e9442b0929b98a6ac1c0 Mon Sep 17 00:00:00 2001 From: Luis Tomas Bolivar Date: Wed, 19 Feb 2020 15:16:37 +0100 Subject: [PATCH] Add IPv6 support to namespace subnet driver Change-Id: If3bd633b36694dedaf65cb14287e9b9519958de8 --- .../controller/drivers/namespace_subnet.py | 3 ++- kuryr_kubernetes/utils.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/kuryr_kubernetes/controller/drivers/namespace_subnet.py b/kuryr_kubernetes/controller/drivers/namespace_subnet.py index b15869853..e97408eb8 100644 --- a/kuryr_kubernetes/controller/drivers/namespace_subnet.py +++ b/kuryr_kubernetes/controller/drivers/namespace_subnet.py @@ -181,10 +181,11 @@ class NamespacePodSubnetDriver(default_subnet.DefaultPodSubnetDriver): # create subnet with namespace as name subnet_pool_id = oslo_cfg.CONF.namespace_subnet.pod_subnet_pool + ip_version = utils.get_subnetpool_version(subnet_pool_id) try: neutron_subnet = (os_net .create_subnet(network_id=net_id, - ip_version=4, + ip_version=ip_version, name=subnet_name, enable_dhcp=False, subnetpool_id=subnet_pool_id, diff --git a/kuryr_kubernetes/utils.py b/kuryr_kubernetes/utils.py index 05cd298e8..06cd968df 100644 --- a/kuryr_kubernetes/utils.py +++ b/kuryr_kubernetes/utils.py @@ -201,6 +201,17 @@ def get_subnet_cidr(subnet_id): return subnet_obj.cidr +@MEMOIZE +def get_subnetpool_version(subnetpool_id): + os_net = clients.get_network_client() + try: + subnetpool_obj = os_net.get_subnet_pool(subnetpool_id) + except os_exc.ResourceNotFound: + LOG.exception("Subnetpool %s not found!", subnetpool_id) + raise + return subnetpool_obj.ip_version + + def extract_pod_annotation(annotation): obj = objects.base.VersionedObject.obj_from_primitive(annotation) # FIXME(dulek): This is code to maintain compatibility with Queens. We can