def get_e2e_configuration():
    config = Configuration()
    config.host = None
    if os.path.exists(
            os.path.expanduser(kube_config.KUBE_CONFIG_DEFAULT_LOCATION)):
        kube_config.load_kube_config(client_configuration=config)
    else:
        print('Unable to load config from %s' %
              kube_config.KUBE_CONFIG_DEFAULT_LOCATION)
        for url in [
                'https://%s:8443' % DEFAULT_E2E_HOST,
                'http://%s:8080' % DEFAULT_E2E_HOST
        ]:
            try:
                urllib3.PoolManager().request('GET', url)
                config.host = url
                config.verify_ssl = False
                urllib3.disable_warnings()
                break
            except urllib3.exceptions.HTTPError:
                pass
    if config.host is None:
        raise unittest.SkipTest('Unable to find a running Kubernetes instance')
    print('Running test against : %s' % config.host)
    config.assert_hostname = False
    return config
Example #2
0
    def build(self, url=None):
        config = Configuration()
        config.host = None

        if os.path.exists(
                os.path.expanduser(kube_config.KUBE_CONFIG_DEFAULT_LOCATION)):
            kube_config.load_kube_config(client_configuration=config)
        else:
            print('Unable to load config from %s' %
                  kube_config.KUBE_CONFIG_DEFAULT_LOCATION)
        if url is None:
            url = 'http://%s:8085' % Config.DEFAULT_HOST
        try:
            urllib3.PoolManager().request('GET', url)
            config.host = url
            config.verify_ssl = False
            urllib3.disable_warnings()
        except urllib3.exceptions.HTTPError:
            raise urllib3.exceptions.HTTPError(
                'Unable to find a running Kubernetes instance')

        self.config = config
        #Resetting old Client & Related API's
        self.clnt = None
        #       api_manager.reset()

        print('Running test against : %s' % config.host)
        return config
Example #3
0
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
Example #4
0
def get_e2e_configuration():
    config = Configuration()
    config.host = None
    if os.path.exists(
            os.path.expanduser(kube_config.KUBE_CONFIG_DEFAULT_LOCATION)):
        kube_config.load_kube_config(client_configuration=config)
    else:
        print('Unable to load config from %s' %
              kube_config.KUBE_CONFIG_DEFAULT_LOCATION)
        for url in ['https://%s:8443' % DEFAULT_E2E_HOST,
                    'http://%s:8080' % DEFAULT_E2E_HOST]:
            try:
                urllib3.PoolManager().request('GET', url)
                config.host = url
                config.verify_ssl = False
                urllib3.disable_warnings()
                break
            except urllib3.exceptions.HTTPError:
                pass
    if config.host is None:
        raise unittest.SkipTest('Unable to find a running Kubernetes instance')
    print('Running test against : %s' % config.host)
    config.assert_hostname = False
    return config
Example #5
0
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
 def setup_k8s_responses(self, mock_config, mock_client, pod_name):
     os.environ['KUBERNETES_SERVICE_HOST'] = '127.0.0.1'
     os.environ['KUBERNETES_SERVICE_PORT'] = '9988'
     os.environ['POD_NAME'] = pod_name
     configuration = Configuration()
     configuration.host = 'http://127.0.0.1:9988'
     configuration.api_key = {'authorization': 'bearer T0ken'}
     Configuration.set_default(configuration)
     mock_config.return_value = None
     pod1 = mock.MagicMock()
     pod1.metadata.name = 'api-123'
     pod1.status.phase = 'Running'
     pod2 = mock.MagicMock()
     pod2.metadata.name = 'api-234'
     pod2.status.phase = 'Running'
     pod3 = mock.MagicMock()
     pod3.metadata.name = 'api-345'
     pod3.status.phase = 'Terminating'
     mock_client.CoreV1Api().list_namespaced_pod().items = [
         pod1, pod2, pod3
     ]