diff --git a/README.rst b/README.rst index 87d04019d..2ff301a28 100644 --- a/README.rst +++ b/README.rst @@ -86,9 +86,13 @@ running. 4GB memory and 2 vCPUs, is the minimum resource requirement for the VM: pod_security_groups = pod_subnet = project = - worker_nodes_subnet = service_subnet = + - Configure worker VMs subnet:: + + [pod_vif_nested] + worker_nodes_subnet = + - Configure “pod_vif_driver” as “nested-vlan”:: [kubernetes] diff --git a/kuryr_kubernetes/config.py b/kuryr_kubernetes/config.py index 5079fd3a6..57f1fb996 100644 --- a/kuryr_kubernetes/config.py +++ b/kuryr_kubernetes/config.py @@ -80,8 +80,6 @@ neutron_defaults = [ cfg.StrOpt('ovs_bridge', help=_("Default OpenVSwitch integration bridge"), sample_default="br-int"), - cfg.StrOpt('worker_nodes_subnet', - help=_("Neutron subnet ID for k8s worker node vms.")), cfg.StrOpt('service_subnet', help=_("Default Neutron subnet ID for Kubernetes services")), ] diff --git a/kuryr_kubernetes/controller/drivers/nested_vlan_vif.py b/kuryr_kubernetes/controller/drivers/nested_vlan_vif.py index 9ce73d044..6a08313f5 100644 --- a/kuryr_kubernetes/controller/drivers/nested_vlan_vif.py +++ b/kuryr_kubernetes/controller/drivers/nested_vlan_vif.py @@ -13,6 +13,7 @@ # under the License. from time import sleep +from kuryr.lib._i18n import _ from kuryr.lib import constants as kl_const from kuryr.lib import segmentation_type_drivers as seg_driver from neutronclient.common import exceptions as n_exc @@ -20,7 +21,6 @@ from oslo_config import cfg as oslo_cfg from oslo_log import log as logging from kuryr_kubernetes import clients -from kuryr_kubernetes import config from kuryr_kubernetes import constants as const from kuryr_kubernetes.controller.drivers import generic_vif from kuryr_kubernetes import exceptions as k_exc @@ -33,6 +33,16 @@ DEFAULT_MAX_RETRY_COUNT = 3 DEFAULT_RETRY_INTERVAL = 1 +# Moved out from neutron_defaults group +nested_vif_driver_opts = [ + oslo_cfg.StrOpt('worker_nodes_subnet', + help=_("Neutron subnet ID for k8s worker node vms.")), +] + + +oslo_cfg.CONF.register_opts(nested_vif_driver_opts, "pod_vif_nested") + + class NestedVlanPodVIFDriver(generic_vif.GenericPodVIFDriver): """Manages ports for nested-containers to provide VIFs.""" @@ -86,10 +96,10 @@ class NestedVlanPodVIFDriver(generic_vif.GenericPodVIFDriver): raise k_exc.K8sNodeTrunkPortFailure def _get_parent_port(self, neutron, pod): - node_subnet_id = config.CONF.neutron_defaults.worker_nodes_subnet + node_subnet_id = oslo_cfg.CONF.pod_vif_nested.worker_nodes_subnet if not node_subnet_id: raise oslo_cfg.RequiredOptError('worker_nodes_subnet', - 'neutron_defaults') + 'pod_vif_nested') try: # REVISIT(vikasc): Assumption is being made that hostIP is the IP diff --git a/kuryr_kubernetes/opts.py b/kuryr_kubernetes/opts.py index 0b632d37a..d82506ae9 100644 --- a/kuryr_kubernetes/opts.py +++ b/kuryr_kubernetes/opts.py @@ -14,12 +14,14 @@ import copy from oslo_log import _options from kuryr.lib import opts as lib_opts +from kuryr_kuberentes.controller.drivers import nested_vlan_vif from kuryr_kubernetes import config _kuryr_k8s_opts = [ ('kubernetes', config.k8s_opts), ('kuryr-kubernetes', config.kuryr_k8s_opts), ('neutron_defaults', config.neutron_defaults), + ('pod_vif_nested', nested_vlan_vif.nested_vif_driver_opts), ] diff --git a/kuryr_kubernetes/tests/unit/controller/drivers/test_nested_vlan_vif.py b/kuryr_kubernetes/tests/unit/controller/drivers/test_nested_vlan_vif.py index b3037689b..f5522d910 100644 --- a/kuryr_kubernetes/tests/unit/controller/drivers/test_nested_vlan_vif.py +++ b/kuryr_kubernetes/tests/unit/controller/drivers/test_nested_vlan_vif.py @@ -179,8 +179,9 @@ class TestNestedVlanPodVIFDriver(test_base.TestCase): neutron = self.useFixture(k_fix.MockNeutronClient()).client node_subnet_id = mock.sentinel.node_subnet_id - nested_vlan_vif.config.CONF.neutron_defaults.worker_nodes_subnet =\ - node_subnet_id + oslo_cfg.CONF.set_override('worker_nodes_subnet', + node_subnet_id, + group='pod_vif_nested') node_fixed_ip = mock.sentinel.node_fixed_ip pod_status = mock.MagicMock() @@ -202,7 +203,9 @@ class TestNestedVlanPodVIFDriver(test_base.TestCase): cls = nested_vlan_vif.NestedVlanPodVIFDriver m_driver = mock.Mock(spec=cls) neutron = self.useFixture(k_fix.MockNeutronClient()).client - nested_vlan_vif.config.CONF.neutron_defaults.worker_nodes_subnet = '' + oslo_cfg.CONF.set_override('worker_nodes_subnet', + '', + group='pod_vif_nested') pod = mock.MagicMock() self.assertRaises(oslo_cfg.RequiredOptError, cls._get_parent_port, m_driver, neutron, pod) @@ -213,8 +216,10 @@ class TestNestedVlanPodVIFDriver(test_base.TestCase): neutron = self.useFixture(k_fix.MockNeutronClient()).client node_subnet_id = mock.sentinel.node_subnet_id - nested_vlan_vif.config.CONF.neutron_defaults.worker_nodes_subnet =\ - node_subnet_id + + oslo_cfg.CONF.set_override('worker_nodes_subnet', + node_subnet_id, + group='pod_vif_nested') node_fixed_ip = mock.sentinel.node_fixed_ip pod_status = mock.MagicMock()