def __init__(self, openshift_api_url, openshift_oauth_url, k8s_api_url=None, verbose=False, username=None, password=None, use_kerberos=False, kerberos_keytab=None, kerberos_principal=None, kerberos_ccache=None, client_cert=None, client_key=None, verify_ssl=True, use_auth=None, token=None, namespace=DEFAULT_NAMESPACE): self.os_api_url = openshift_api_url self.k8s_api_url = k8s_api_url self._os_oauth_url = openshift_oauth_url self.namespace = namespace self.verbose = verbose self.verify_ssl = verify_ssl self._con = HttpSession(verbose=self.verbose) self.retries_enabled = True # auth stuff self.use_kerberos = use_kerberos self.username = username self.password = password self.client_cert = client_cert self.client_key = client_key self.kerberos_keytab = kerberos_keytab self.kerberos_principal = kerberos_principal self.kerberos_ccache = kerberos_ccache self.token = token self.ca = None auth_credentials_provided = bool(use_kerberos or token or (username and password)) if use_auth is None: self.use_auth = auth_credentials_provided if not self.use_auth: # Are we running inside a pod? If so, we will have a # token available which can be used for authentication self.use_auth = self.can_use_serviceaccount_token() else: self.use_auth = use_auth if not auth_credentials_provided: # We've been told to use authentication but no # credentials have been given. See if we're running # inside a pod, and if so use the provided token. self.can_use_serviceaccount_token()
def s(): return HttpSession(verbose=True)