Skip to content
This repository was archived by the owner on Mar 13, 2022. It is now read-only.

Commit c9014fd

Browse files
committed
Refactor auth-provider code paths a little. Add Azure support.
1 parent 595ee0d commit c9014fd

File tree

1 file changed

+23
-15
lines changed

1 file changed

+23
-15
lines changed

Diff for: config/kube_config.py

+23-15
Original file line numberDiff line numberDiff line change
@@ -178,23 +178,38 @@ 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+
188+
189+
def _load_auth_provider_token(self):
190190
if 'auth-provider' not in self._user:
191191
return
192192
provider = self._user['auth-provider']
193193
if 'name' not in provider:
194194
return
195-
if provider['name'] != 'gcp':
195+
if provider['name'] == 'gcp':
196+
return self._load_gcp_token(provider)
197+
if provider['name'] == 'azure':
198+
return self._load_azure_token(provider)
199+
if provider['name'] == 'oidc':
200+
return self._load_oid_token(provider)
201+
202+
def _load_azure_token(self, provider):
203+
if 'config' not in provider:
204+
return
205+
if 'access-token' not in provider['config']:
196206
return
207+
# TODO: Refresh token here...
208+
self.token = 'Bearer %s' % provider['config']['access-token']
209+
return self.token
210+
197211

212+
def _load_gcp_token(self, provider):
198213
if (('config' not in provider) or
199214
('access-token' not in provider['config']) or
200215
('expiry' in provider['config'] and
@@ -215,17 +230,10 @@ def _refresh_gcp_token(self):
215230
if self._config_persister:
216231
self._config_persister(self._config.value)
217232

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:
233+
def _load_oid_token(self, provider):
234+
if 'config' not in provider:
224235
return
225-
226-
if provider['name'] != 'oidc':
227-
return
228-
236+
229237
parts = provider['config']['id-token'].split('.')
230238

231239
if len(parts) != 3: # Not a valid JWT

0 commit comments

Comments
 (0)