Skip to content
This repository was archived by the owner on Mar 13, 2022. It is now read-only.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e8c0d98

Browse files
authoredJul 18, 2018
Merge pull request #74 from brendandburns/master
Refactor auth-provider code paths a little. Add Azure support.
2 parents 595ee0d + 1be91e3 commit e8c0d98

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed
 

‎config/kube_config.py

+19-14
Original file line numberDiff line numberDiff line change
@@ -178,23 +178,35 @@ def _load_authentication(self):
178178
"""
179179
if not self._user:
180180
return
181-
if self._load_gcp_token():
181+
if self._load_auth_provider_token():
182182
return
183183
if self._load_user_token():
184184
return
185-
if self._load_oid_token():
186-
return
187185
self._load_user_pass_token()
188186

189-
def _load_gcp_token(self):
187+
def _load_auth_provider_token(self):
190188
if 'auth-provider' not in self._user:
191189
return
192190
provider = self._user['auth-provider']
193191
if 'name' not in provider:
194192
return
195-
if provider['name'] != 'gcp':
193+
if provider['name'] == 'gcp':
194+
return self._load_gcp_token(provider)
195+
if provider['name'] == 'azure':
196+
return self._load_azure_token(provider)
197+
if provider['name'] == 'oidc':
198+
return self._load_oid_token(provider)
199+
200+
def _load_azure_token(self, provider):
201+
if 'config' not in provider:
202+
return
203+
if 'access-token' not in provider['config']:
196204
return
205+
# TODO: Refresh token here...
206+
self.token = 'Bearer %s' % provider['config']['access-token']
207+
return self.token
197208

209+
def _load_gcp_token(self, provider):
198210
if (('config' not in provider) or
199211
('access-token' not in provider['config']) or
200212
('expiry' in provider['config'] and
@@ -215,15 +227,8 @@ def _refresh_gcp_token(self):
215227
if self._config_persister:
216228
self._config_persister(self._config.value)
217229

218-
def _load_oid_token(self):
219-
if 'auth-provider' not in self._user:
220-
return
221-
provider = self._user['auth-provider']
222-
223-
if 'name' not in provider or 'config' not in provider:
224-
return
225-
226-
if provider['name'] != 'oidc':
230+
def _load_oid_token(self, provider):
231+
if 'config' not in provider:
227232
return
228233

229234
parts = provider['config']['id-token'].split('.')

‎config/kube_config_test.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ def test_load_gcp_token_no_refresh(self):
618618
active_context="gcp",
619619
get_google_credentials=lambda: _raise_exception(
620620
"SHOULD NOT BE CALLED"))
621-
self.assertTrue(loader._load_gcp_token())
621+
self.assertTrue(loader._load_auth_provider_token())
622622
self.assertEqual(BEARER_TOKEN_FORMAT % TEST_DATA_BASE64,
623623
loader.token)
624624

@@ -632,7 +632,7 @@ def cred(): return None
632632
active_context="expired_gcp",
633633
get_google_credentials=lambda: cred)
634634
original_expiry = _get_expiry(loader)
635-
self.assertTrue(loader._load_gcp_token())
635+
self.assertTrue(loader._load_auth_provider_token())
636636
new_expiry = _get_expiry(loader)
637637
# assert that the configs expiry actually updates
638638
self.assertTrue(new_expiry > original_expiry)
@@ -644,7 +644,7 @@ def test_oidc_no_refresh(self):
644644
config_dict=self.TEST_KUBE_CONFIG,
645645
active_context="oidc",
646646
)
647-
self.assertTrue(loader._load_oid_token())
647+
self.assertTrue(loader._load_auth_provider_token())
648648
self.assertEqual(TEST_OIDC_TOKEN, loader.token)
649649

650650
@mock.patch('kubernetes.config.kube_config.OAuth2Session.refresh_token')
@@ -669,7 +669,7 @@ def test_oidc_with_refresh(self, mock_ApiClient, mock_OAuth2Session):
669669
config_dict=self.TEST_KUBE_CONFIG,
670670
active_context="expired_oidc",
671671
)
672-
self.assertTrue(loader._load_oid_token())
672+
self.assertTrue(loader._load_auth_provider_token())
673673
self.assertEqual("Bearer abc123", loader.token)
674674

675675
@mock.patch('kubernetes.config.kube_config.OAuth2Session.refresh_token')
@@ -695,7 +695,7 @@ def test_oidc_with_refresh_nocert(
695695
config_dict=self.TEST_KUBE_CONFIG,
696696
active_context="expired_oidc_nocert",
697697
)
698-
self.assertTrue(loader._load_oid_token())
698+
self.assertTrue(loader._load_auth_provider_token())
699699
self.assertEqual("Bearer abc123", loader.token)
700700

701701
def test_user_pass(self):

0 commit comments

Comments
 (0)