Allow to specify k8s credentials in config
Change-Id: I483f43fbdb2c5e91edc2e0592530da01765c24b5
This commit is contained in:
parent
886c0179c2
commit
966ae060d0
|
@ -6,11 +6,15 @@ DEFAULTS = {
|
|||
'key_file': None,
|
||||
'cert_file': None,
|
||||
'insecure': False,
|
||||
'username': None,
|
||||
'password': None,
|
||||
'cluster_domain': 'cluster.local',
|
||||
'image_pull_policy': None,
|
||||
},
|
||||
}
|
||||
|
||||
STRING_OR_NULL = {'anyOf': [{'type': 'string'}, {'type': 'null'}]}
|
||||
|
||||
SCHEMA = {
|
||||
'kubernetes': {
|
||||
'type': 'object',
|
||||
|
@ -18,10 +22,12 @@ SCHEMA = {
|
|||
'properties': {
|
||||
'server': {'type': 'string'},
|
||||
'namespace': {'type': 'string'},
|
||||
'ca_cert': {'anyOf': [{'type': 'string'}, {'type': 'null'}]},
|
||||
'key_file': {'anyOf': [{'type': 'string'}, {'type': 'null'}]},
|
||||
'cert_file': {'anyOf': [{'type': 'string'}, {'type': 'null'}]},
|
||||
'ca_cert': STRING_OR_NULL,
|
||||
'key_file': STRING_OR_NULL,
|
||||
'cert_file': STRING_OR_NULL,
|
||||
'insecure': {'type': 'boolean'},
|
||||
'username': STRING_OR_NULL,
|
||||
'password': STRING_OR_NULL,
|
||||
'cluster_domain': {'type': 'string'},
|
||||
'image_pull_policy': {'oneOf': [
|
||||
{'type': 'null'},
|
||||
|
|
|
@ -20,12 +20,14 @@ UPDATABLE_OBJECTS = (
|
|||
|
||||
|
||||
def get_client(kube_apiserver=None, key_file=None, cert_file=None,
|
||||
ca_cert=None, insecure=None):
|
||||
ca_cert=None, insecure=None, username=None, password=None):
|
||||
kube_apiserver = kube_apiserver or CONF.kubernetes.server
|
||||
key_file = key_file or CONF.kubernetes.key_file
|
||||
cert_file = cert_file or CONF.kubernetes.cert_file
|
||||
ca_cert = ca_cert or CONF.kubernetes.ca_cert
|
||||
insecure = insecure or CONF.kubernetes.insecure
|
||||
username = username or CONF.kubernetes.username
|
||||
password = password or CONF.kubernetes.password
|
||||
|
||||
cluster = {"server": kube_apiserver}
|
||||
if ca_cert:
|
||||
|
@ -37,6 +39,10 @@ def get_client(kube_apiserver=None, key_file=None, cert_file=None,
|
|||
if cert_file and key_file:
|
||||
user["client-certificate"] = cert_file
|
||||
user["client-key"] = key_file
|
||||
if username:
|
||||
user["username"] = username
|
||||
if password:
|
||||
user["password"] = password
|
||||
|
||||
config = {
|
||||
"clusters": [
|
||||
|
|
|
@ -26,7 +26,9 @@ class TestKubernetesClient(base.TestCase):
|
|||
'name': 'ccp',
|
||||
'user': {
|
||||
'client-certificate': 'test.cert',
|
||||
'client-key': 'test.key'
|
||||
'client-key': 'test.key',
|
||||
'username': 'test-user',
|
||||
'password': 'test-passwd'
|
||||
}
|
||||
}],
|
||||
'current-context': 'ccp'
|
||||
|
@ -39,6 +41,8 @@ class TestKubernetesClient(base.TestCase):
|
|||
key_file='test.key',
|
||||
ca_cert='ca.crt',
|
||||
cert_file='test.cert',
|
||||
username='test-user',
|
||||
password='test-passwd'
|
||||
)
|
||||
|
||||
kubernetes.get_client()
|
||||
|
@ -50,7 +54,8 @@ class TestKubernetesClient(base.TestCase):
|
|||
def test_get_client(self, m_client, m_config):
|
||||
kubernetes.get_client(
|
||||
kube_apiserver='http://localhost:8080', key_file='test.key',
|
||||
cert_file='test.cert', ca_cert='ca.crt')
|
||||
cert_file='test.cert', ca_cert='ca.crt',
|
||||
username='test-user', password='test-passwd')
|
||||
m_config.assert_called_once_with(self.config)
|
||||
m_client.assrt_called_once_with(m_config)
|
||||
|
||||
|
|
Loading…
Reference in New Issue