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

Commit 93e75c9

Browse files
committed
Test OIDC without refresh token
1 parent c246d19 commit 93e75c9

File tree

2 files changed

+47
-4
lines changed

2 files changed

+47
-4
lines changed

config/kube_config.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@
1919
import os
2020
import tempfile
2121

22+
from six import PY3
23+
2224
import google.auth
2325
import google.auth.transport.requests
2426
import oauthlib.oauth2
2527
import urllib3
2628
import yaml
27-
from requests_oauthlib import OAuth2Session
28-
from six import PY3
29-
3029
from kubernetes.client import ApiClient, ConfigurationObject, configuration
30+
from requests_oauthlib import OAuth2Session
3131

3232
from .config_exception import ConfigException
3333
from .dateutil import UTC, format_rfc3339, parse_rfc3339

config/kube_config_test.py

+44-1
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
import tempfile
2020
import unittest
2121

22-
import yaml
2322
from six import PY3
2423

24+
import yaml
25+
2526
from .config_exception import ConfigException
2627
from .dateutil import parse_rfc3339
2728
from .kube_config import (ConfigNode, FileOrData, KubeConfigLoader,
@@ -58,6 +59,22 @@ def _raise_exception(st):
5859
# token for me:pass
5960
TEST_BASIC_TOKEN = "Basic bWU6cGFzcw=="
6061

62+
TEST_OIDC_LOGIN = (
63+
"eyJhbGciOiJSUzI1NiIsImtpZCI6ImVmM2Y0NjIxODhiNjhhMzY2YjQ1MWE0YjkwY2UxYjYyY"
64+
"mEyYzliNDkifQ.eyJpc3MiOiJodHRwczovL2V4YW1wbGUudXMtd2VzdC0xLmF3cy5uZXQvaWR"
65+
"lbnRpdHkiLCJzdWIiOiJBQUFBQUFBQUFBQUEiLCJhdWQiOiJ0ZWN0b25pYy1rdWJlY3RsIiwi"
66+
"ZXhwIjoxMDM4MjI1NjAwMCwiaWF0IjoxMDM4MjI1NjAwMCwiYXRfaGFzaCI6IlhYWFhYWF9YW"
67+
"FhYWFhYIiwiZW1haWwiOiJkYW1pYW4ubXllcnNjb3VnaEBnbWFpbC5jb20iLCJlbWFpbF92ZX"
68+
"JpZmllZCI6dHJ1ZSwiZ3JvdXBzIjpbInRlYW0taW5mcmEiXSwibmFtZSI6IkRhbWlhbiBNeWV"
69+
"yc2NvdWdoIn0=.BZwpd0_hKYMIaYRj88QjPTrg8JFtaiyVXOqLgKkJHBVzivdzs9JjM9jvV3q"
70+
"zj2DUwaeGeAZqxlbmwEXXePU-jFg70HGo7FDq4G29x516XNZWW2BaelcevFPspcIJTQ92VhYZ"
71+
"vCiWp8r7SmhZ1TSss3nmuDHn3FTdasqUm22LJOqCfCDaOOf_Uq3uP0zHj4UHJAqvgMfw1j5tZ"
72+
"XTYJ613vGGPkCz_K1Jnv6YIxVVnuZM3PyNNdSXQl5_GM01Zf5wJCgqMdRZ01ZrWhOda6wzlKr"
73+
"h7TClbW12_vMo56aOj9HOAjhKyjcbLHjIWAWqmt3nmhwkzf8sYc9-WpscPTNalsQ"
74+
)
75+
76+
TEST_OIDC_TOKEN = "Bearer %s" % TEST_OIDC_LOGIN
77+
6178
TEST_SSL_HOST = "https://test-host"
6279
TEST_CERTIFICATE_AUTH = "cert-auth"
6380
TEST_CERTIFICATE_AUTH_BASE64 = _base64(TEST_CERTIFICATE_AUTH)
@@ -317,6 +334,13 @@ class TestKubeConfigLoader(BaseTestCase):
317334
"user": "expired_gcp"
318335
}
319336
},
337+
{
338+
"name": "oidc",
339+
"context": {
340+
"cluster": "default",
341+
"user": "oidc"
342+
}
343+
},
320344
{
321345
"name": "user_pass",
322346
"context": {
@@ -434,6 +458,17 @@ class TestKubeConfigLoader(BaseTestCase):
434458
"password": TEST_PASSWORD, # should be ignored
435459
}
436460
},
461+
{
462+
"name": "oidc",
463+
"user": {
464+
"auth-provider": {
465+
"name": "oidc",
466+
"config": {
467+
"id-token": TEST_OIDC_LOGIN
468+
}
469+
}
470+
}
471+
},
437472
{
438473
"name": "user_pass",
439474
"user": {
@@ -531,6 +566,14 @@ def cred(): return None
531566
self.assertEqual(BEARER_TOKEN_FORMAT % TEST_ANOTHER_DATA_BASE64,
532567
loader.token)
533568

569+
def test_oidc_no_refresh(self):
570+
loader = KubeConfigLoader(
571+
config_dict=self.TEST_KUBE_CONFIG,
572+
active_context="oidc",
573+
)
574+
self.assertTrue(loader._load_oid_token())
575+
self.assertEqual(TEST_OIDC_TOKEN, loader.token)
576+
534577
def test_user_pass(self):
535578
expected = FakeConfig(host=TEST_HOST, token=TEST_BASIC_TOKEN)
536579
actual = FakeConfig()

0 commit comments

Comments
 (0)