From 376f179ea114c6299055a9c68836a419e5de3d0d Mon Sep 17 00:00:00 2001 From: Rens Sikma Date: Sat, 20 Jan 2024 23:51:50 +0100 Subject: [PATCH 1/2] pick proxy from kube_config --- kubernetes/base/config/kube_config.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kubernetes/base/config/kube_config.py b/kubernetes/base/config/kube_config.py index d8c63a8261..1f0cbc35a7 100644 --- a/kubernetes/base/config/kube_config.py +++ b/kubernetes/base/config/kube_config.py @@ -569,6 +569,8 @@ def _load_cluster_info(self): self.verify_ssl = not self._cluster['insecure-skip-tls-verify'] if 'tls-server-name' in self._cluster: self.tls_server_name = self._cluster['tls-server-name'] + if 'proxy-url' in self._cluster: + self.proxy = self._cluster['proxy-url'] def _set_config(self, client_configuration): if 'token' in self.__dict__: @@ -580,7 +582,7 @@ def _refresh_api_key(client_configuration): self._set_config(client_configuration) client_configuration.refresh_api_key_hook = _refresh_api_key # copy these keys directly from self to configuration object - keys = ['host', 'ssl_ca_cert', 'cert_file', 'key_file', 'verify_ssl','tls_server_name'] + keys = ['host', 'ssl_ca_cert', 'cert_file', 'key_file', 'verify_ssl', 'tls_server_name', 'proxy'] for key in keys: if key in self.__dict__: setattr(client_configuration, key, getattr(self, key)) From f27bb49bf10bb77af2784d9d81efebdf72cfd143 Mon Sep 17 00:00:00 2001 From: Rens Sikma Date: Sun, 4 Feb 2024 17:25:20 +0100 Subject: [PATCH 2/2] add unit test for proxy-url --- kubernetes/base/config/kube_config_test.py | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/kubernetes/base/config/kube_config_test.py b/kubernetes/base/config/kube_config_test.py index b415492032..44f998222c 100644 --- a/kubernetes/base/config/kube_config_test.py +++ b/kubernetes/base/config/kube_config_test.py @@ -104,6 +104,8 @@ def _raise_exception(st): TEST_CLIENT_CERT_BASE64 = _base64(TEST_CLIENT_CERT) TEST_TLS_SERVER_NAME = "kubernetes.io" +TEST_PROXY_URL = "http://localhost:8888" + TEST_OIDC_TOKEN = "test-oidc-token" TEST_OIDC_INFO = "{\"name\": \"test\"}" TEST_OIDC_BASE = ".".join([ @@ -551,6 +553,12 @@ class TestKubeConfigLoader(BaseTestCase): "user": "ssl-local-file" } }, + { + "name": "proxy", + "context": { + "cluster": "proxy", + } + }, { "name": "non_existing_user", "context": { @@ -652,6 +660,12 @@ class TestKubeConfigLoader(BaseTestCase): "tls-server-name": TEST_TLS_SERVER_NAME, } }, + { + "name": "proxy", + "cluster": { + "proxy-url": TEST_PROXY_URL, + } + }, ], "users": [ { @@ -1284,6 +1298,16 @@ def test_tls_server_name(self): active_context="tls-server-name").load_and_set(actual) self.assertEqual(expected, actual) + def test_proxy_server(self): + expected = FakeConfig( + proxy=TEST_PROXY_URL + ) + actual = FakeConfig() + KubeConfigLoader( + config_dict=self.TEST_KUBE_CONFIG, + active_context="proxy").load_and_set(actual) + self.assertEqual(expected, actual) + def test_list_contexts(self): loader = KubeConfigLoader( config_dict=self.TEST_KUBE_CONFIG,