diff --git a/config/kube_config.py b/config/kube_config.py index a1fc59c98..14fd71a68 100644 --- a/config/kube_config.py +++ b/config/kube_config.py @@ -669,21 +669,15 @@ class KubeConfigMerger: self.config_files = {} self.config_merged = None if hasattr(paths, 'read'): - self.load_config_from_fileish(paths) + self._load_config_from_file_like_object(paths) else: - for path in paths.split(ENV_KUBECONFIG_PATH_SEPARATOR): - if path: - path = os.path.expanduser(path) - if os.path.exists(path): - self.paths.append(path) - self.load_config(path) - self.config_saved = copy.deepcopy(self.config_files) + self._load_config_from_file_path(paths) @property def config(self): return self.config_merged - def load_config_from_fileish(self, string): + def _load_config_from_file_like_object(self, string): if hasattr(string, 'getvalue'): config = yaml.safe_load(string.getvalue()) else: @@ -693,6 +687,15 @@ class KubeConfigMerger: self.config_merged = copy.deepcopy(config) # doesn't need to do any further merging + def _load_config_from_file_path(self, string): + for path in string.split(ENV_KUBECONFIG_PATH_SEPARATOR): + if path: + path = os.path.expanduser(path) + if os.path.exists(path): + self.paths.append(path) + self.load_config(path) + self.config_saved = copy.deepcopy(self.config_files) + def load_config(self, path): with open(path) as f: config = yaml.safe_load(f) diff --git a/config/kube_config_test.py b/config/kube_config_test.py index e53c57675..1f74d3452 100644 --- a/config/kube_config_test.py +++ b/config/kube_config_test.py @@ -1248,7 +1248,7 @@ class TestKubeConfigLoader(BaseTestCase): finally: shutil.rmtree(temp_dir) - def test_load_kube_config(self): + def test_load_kube_config_from_file_path(self): expected = FakeConfig(host=TEST_HOST, token=BEARER_TOKEN_FORMAT % TEST_DATA_BASE64) config_file = self._create_temp_file( @@ -1258,19 +1258,19 @@ class TestKubeConfigLoader(BaseTestCase): client_configuration=actual) self.assertEqual(expected, actual) - def test_load_kube_config_from_fileish(self): + def test_load_kube_config_from_file_like_object(self): expected = FakeConfig(host=TEST_HOST, token=BEARER_TOKEN_FORMAT % TEST_DATA_BASE64) - config_fileish = io.StringIO() - config_fileish.write(yaml.safe_dump(self.TEST_KUBE_CONFIG)) + config_file_like_object = io.StringIO() + config_file_like_object.write(yaml.safe_dump(self.TEST_KUBE_CONFIG)) actual = FakeConfig() - load_kube_config(config_file=config_fileish, context="simple_token", client_configuration=actual) + load_kube_config(config_file=config_file_like_object, context="simple_token", + client_configuration=actual) self.assertEqual(expected, actual) def test_load_kube_config_from_dict(self): expected = FakeConfig(host=TEST_HOST, token=BEARER_TOKEN_FORMAT % TEST_DATA_BASE64) - actual = FakeConfig() load_kube_config_from_dict(config_dict=self.TEST_KUBE_CONFIG, context="simple_token",