def create(context, conf, **kwargs): register_opts(conf) client_config = conf.k8s_client LOG.info('Creating the kubernetes client with url %s.', client_config.k8s_host) config = Configuration() config.host = client_config.k8s_host config.ssl_ca_cert = client_config.k8s_ssl_ca_cert config.cert_file = client_config.k8s_cert_file config.key_file = client_config.k8s_key_file k8s_api_client = api_client.ApiClient(config) k8s_core_v1_api = client.CoreV1Api(k8s_api_client) return k8s_core_v1_api
def get_cli(cluster_name): global _client_cache if cluster_name in _client_cache: return _client_cache.get(cluster_name, None) cluster = Cluster.query.filter_by(name=cluster_name).first() if cluster is None: return None cfg = Configuration() # cfg.debug = True cfg.host = cluster.addr cfg.ssl_ca_cert = _create_temp_file_with_content( base64.b64decode(cluster.cert)) cfg.api_key['authorization'] = "Bearer {}".format(cluster.access_token) api = ApiClient(cfg) _client_cache[cluster_name] = api return api