|
19 | 19 | import tempfile
|
20 | 20 | import unittest
|
21 | 21 |
|
22 |
| -import yaml |
23 | 22 | from six import PY3
|
24 | 23 |
|
| 24 | +import yaml |
| 25 | + |
25 | 26 | from .config_exception import ConfigException
|
26 | 27 | from .dateutil import parse_rfc3339
|
27 | 28 | from .kube_config import (ConfigNode, FileOrData, KubeConfigLoader,
|
@@ -58,6 +59,22 @@ def _raise_exception(st):
|
58 | 59 | # token for me:pass
|
59 | 60 | TEST_BASIC_TOKEN = "Basic bWU6cGFzcw=="
|
60 | 61 |
|
| 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 | + |
61 | 78 | TEST_SSL_HOST = "https://test-host"
|
62 | 79 | TEST_CERTIFICATE_AUTH = "cert-auth"
|
63 | 80 | TEST_CERTIFICATE_AUTH_BASE64 = _base64(TEST_CERTIFICATE_AUTH)
|
@@ -317,6 +334,13 @@ class TestKubeConfigLoader(BaseTestCase):
|
317 | 334 | "user": "expired_gcp"
|
318 | 335 | }
|
319 | 336 | },
|
| 337 | + { |
| 338 | + "name": "oidc", |
| 339 | + "context": { |
| 340 | + "cluster": "default", |
| 341 | + "user": "oidc" |
| 342 | + } |
| 343 | + }, |
320 | 344 | {
|
321 | 345 | "name": "user_pass",
|
322 | 346 | "context": {
|
@@ -434,6 +458,17 @@ class TestKubeConfigLoader(BaseTestCase):
|
434 | 458 | "password": TEST_PASSWORD, # should be ignored
|
435 | 459 | }
|
436 | 460 | },
|
| 461 | + { |
| 462 | + "name": "oidc", |
| 463 | + "user": { |
| 464 | + "auth-provider": { |
| 465 | + "name": "oidc", |
| 466 | + "config": { |
| 467 | + "id-token": TEST_OIDC_LOGIN |
| 468 | + } |
| 469 | + } |
| 470 | + } |
| 471 | + }, |
437 | 472 | {
|
438 | 473 | "name": "user_pass",
|
439 | 474 | "user": {
|
@@ -531,6 +566,14 @@ def cred(): return None
|
531 | 566 | self.assertEqual(BEARER_TOKEN_FORMAT % TEST_ANOTHER_DATA_BASE64,
|
532 | 567 | loader.token)
|
533 | 568 |
|
| 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 | + |
534 | 577 | def test_user_pass(self):
|
535 | 578 | expected = FakeConfig(host=TEST_HOST, token=TEST_BASIC_TOKEN)
|
536 | 579 | actual = FakeConfig()
|
|
0 commit comments