Skip to content

Commit 6fb1fd7

Browse files
authored
Merge pull request #2507 from kubernetes-client/copilot/remove-adal-dependency
Remove EOL adal dependency and Azure auth provider
2 parents 2be0be3 + 79944f9 commit 6fb1fd7

3 files changed

Lines changed: 0 additions & 217 deletions

File tree

kubernetes/base/config/kube_config.py

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@
3737
from .config_exception import ConfigException
3838
from .dateutil import UTC, format_rfc3339, parse_rfc3339
3939

40-
try:
41-
import adal
42-
except ImportError:
43-
pass
44-
4540
try:
4641
import google.auth
4742
import google.auth.transport.requests
@@ -318,55 +313,10 @@ def _load_auth_provider_token(self):
318313
return
319314
if provider['name'] == 'gcp':
320315
return self._load_gcp_token(provider)
321-
if provider['name'] == 'azure':
322-
return self._load_azure_token(provider)
323316
if provider['name'] == 'oidc':
324317
return self._load_oid_token(provider)
325318

326-
def _azure_is_expired(self, provider):
327-
expires_on = provider['config']['expires-on']
328-
if expires_on.isdigit():
329-
return int(expires_on) < time.time()
330-
else:
331-
exp_time = time.strptime(expires_on, '%Y-%m-%d %H:%M:%S.%f')
332-
return exp_time < time.gmtime()
333-
334-
def _load_azure_token(self, provider):
335-
if 'config' not in provider:
336-
return
337-
if 'access-token' not in provider['config']:
338-
return
339-
if 'expires-on' in provider['config']:
340-
if self._azure_is_expired(provider):
341-
self._refresh_azure_token(provider['config'])
342-
self.token = 'Bearer %s' % provider['config']['access-token']
343-
return self.token
344319

345-
def _refresh_azure_token(self, config):
346-
if 'adal' not in globals():
347-
raise ImportError('refresh token error, adal library not imported')
348-
349-
tenant = config['tenant-id']
350-
authority = 'https://login.microsoftonline.com/{}'.format(tenant)
351-
context = adal.AuthenticationContext(
352-
authority, validate_authority=True, api_version='1.0'
353-
)
354-
refresh_token = config['refresh-token']
355-
client_id = config['client-id']
356-
apiserver_id = '00000002-0000-0000-c000-000000000000'
357-
try:
358-
apiserver_id = config['apiserver-id']
359-
except ConfigException:
360-
# We've already set a default above
361-
pass
362-
token_response = context.acquire_token_with_refresh_token(
363-
refresh_token, client_id, apiserver_id)
364-
365-
provider = self._user['auth-provider']['config']
366-
provider.value['access-token'] = token_response['accessToken']
367-
provider.value['expires-on'] = token_response['expiresOn']
368-
if self._config_persister:
369-
self._config_persister()
370320

371321
def _load_gcp_token(self, provider):
372322
if (('config' not in provider) or

kubernetes/base/config/kube_config_test.py

Lines changed: 0 additions & 166 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,6 @@ def _raise_exception(st):
135135

136136
TEST_OIDC_CA = _base64(TEST_CERTIFICATE_AUTH)
137137

138-
TEST_AZURE_LOGIN = TEST_OIDC_LOGIN
139-
TEST_AZURE_TOKEN = "test-azure-token"
140-
TEST_AZURE_TOKEN_FULL = "Bearer " + TEST_AZURE_TOKEN
141-
142138

143139
class BaseTestCase(unittest.TestCase):
144140

@@ -464,41 +460,6 @@ class TestKubeConfigLoader(BaseTestCase):
464460
"user": "oidc"
465461
}
466462
},
467-
{
468-
"name": "azure",
469-
"context": {
470-
"cluster": "default",
471-
"user": "azure"
472-
}
473-
},
474-
{
475-
"name": "azure_num",
476-
"context": {
477-
"cluster": "default",
478-
"user": "azure_num"
479-
}
480-
},
481-
{
482-
"name": "azure_str",
483-
"context": {
484-
"cluster": "default",
485-
"user": "azure_str"
486-
}
487-
},
488-
{
489-
"name": "azure_num_error",
490-
"context": {
491-
"cluster": "default",
492-
"user": "azure_str_error"
493-
}
494-
},
495-
{
496-
"name": "azure_str_error",
497-
"context": {
498-
"cluster": "default",
499-
"user": "azure_str_error"
500-
}
501-
},
502463
{
503464
"name": "expired_oidc",
504465
"context": {
@@ -739,94 +700,6 @@ class TestKubeConfigLoader(BaseTestCase):
739700
}
740701
}
741702
},
742-
{
743-
"name": "azure",
744-
"user": {
745-
"auth-provider": {
746-
"config": {
747-
"access-token": TEST_AZURE_TOKEN,
748-
"apiserver-id": "00000002-0000-0000-c000-"
749-
"000000000000",
750-
"environment": "AzurePublicCloud",
751-
"refresh-token": "refreshToken",
752-
"tenant-id": "9d2ac018-e843-4e14-9e2b-4e0ddac75433"
753-
},
754-
"name": "azure"
755-
}
756-
}
757-
},
758-
{
759-
"name": "azure_num",
760-
"user": {
761-
"auth-provider": {
762-
"config": {
763-
"access-token": TEST_AZURE_TOKEN,
764-
"apiserver-id": "00000002-0000-0000-c000-"
765-
"000000000000",
766-
"environment": "AzurePublicCloud",
767-
"expires-in": "0",
768-
"expires-on": "156207275",
769-
"refresh-token": "refreshToken",
770-
"tenant-id": "9d2ac018-e843-4e14-9e2b-4e0ddac75433"
771-
},
772-
"name": "azure"
773-
}
774-
}
775-
},
776-
{
777-
"name": "azure_str",
778-
"user": {
779-
"auth-provider": {
780-
"config": {
781-
"access-token": TEST_AZURE_TOKEN,
782-
"apiserver-id": "00000002-0000-0000-c000-"
783-
"000000000000",
784-
"environment": "AzurePublicCloud",
785-
"expires-in": "0",
786-
"expires-on": "2018-10-18 00:52:29.044727",
787-
"refresh-token": "refreshToken",
788-
"tenant-id": "9d2ac018-e843-4e14-9e2b-4e0ddac75433"
789-
},
790-
"name": "azure"
791-
}
792-
}
793-
},
794-
{
795-
"name": "azure_str_error",
796-
"user": {
797-
"auth-provider": {
798-
"config": {
799-
"access-token": TEST_AZURE_TOKEN,
800-
"apiserver-id": "00000002-0000-0000-c000-"
801-
"000000000000",
802-
"environment": "AzurePublicCloud",
803-
"expires-in": "0",
804-
"expires-on": "2018-10-18 00:52",
805-
"refresh-token": "refreshToken",
806-
"tenant-id": "9d2ac018-e843-4e14-9e2b-4e0ddac75433"
807-
},
808-
"name": "azure"
809-
}
810-
}
811-
},
812-
{
813-
"name": "azure_num_error",
814-
"user": {
815-
"auth-provider": {
816-
"config": {
817-
"access-token": TEST_AZURE_TOKEN,
818-
"apiserver-id": "00000002-0000-0000-c000-"
819-
"000000000000",
820-
"environment": "AzurePublicCloud",
821-
"expires-in": "0",
822-
"expires-on": "-1",
823-
"refresh-token": "refreshToken",
824-
"tenant-id": "9d2ac018-e843-4e14-9e2b-4e0ddac75433"
825-
},
826-
"name": "azure"
827-
}
828-
}
829-
},
830703
{
831704
"name": "expired_oidc",
832705
"user": {
@@ -1193,45 +1066,6 @@ def test_oidc_fails_if_invalid_padding_length(self):
11931066
None,
11941067
)
11951068

1196-
def test_azure_no_refresh(self):
1197-
loader = KubeConfigLoader(
1198-
config_dict=self.TEST_KUBE_CONFIG,
1199-
active_context="azure",
1200-
)
1201-
self.assertTrue(loader._load_auth_provider_token())
1202-
self.assertEqual(TEST_AZURE_TOKEN_FULL, loader.token)
1203-
1204-
def test_azure_with_expired_num(self):
1205-
loader = KubeConfigLoader(
1206-
config_dict=self.TEST_KUBE_CONFIG,
1207-
active_context="azure_num",
1208-
)
1209-
provider = loader._user['auth-provider']
1210-
self.assertTrue(loader._azure_is_expired(provider))
1211-
1212-
def test_azure_with_expired_str(self):
1213-
loader = KubeConfigLoader(
1214-
config_dict=self.TEST_KUBE_CONFIG,
1215-
active_context="azure_str",
1216-
)
1217-
provider = loader._user['auth-provider']
1218-
self.assertTrue(loader._azure_is_expired(provider))
1219-
1220-
def test_azure_with_expired_str_error(self):
1221-
loader = KubeConfigLoader(
1222-
config_dict=self.TEST_KUBE_CONFIG,
1223-
active_context="azure_str_error",
1224-
)
1225-
provider = loader._user['auth-provider']
1226-
self.assertRaises(ValueError, loader._azure_is_expired, provider)
1227-
1228-
def test_azure_with_expired_int_error(self):
1229-
loader = KubeConfigLoader(
1230-
config_dict=self.TEST_KUBE_CONFIG,
1231-
active_context="azure_num_error",
1232-
)
1233-
provider = loader._user['auth-provider']
1234-
self.assertRaises(ValueError, loader._azure_is_expired, provider)
12351069

12361070
def test_user_pass(self):
12371071
expected = FakeConfig(host=TEST_HOST, token=TEST_BASIC_TOKEN)

setup.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
# http://pypi.python.org/pypi/setuptools
2929

3030
EXTRAS = {
31-
'adal': ['adal>=1.0.2'],
3231
'google-auth': ['google-auth>=1.0.1']
3332
}
3433
REQUIRES = []

0 commit comments

Comments
 (0)