def k8s_scale_pod(pod_name, number_of_replicas, rest_prefix="apis", api_version="extensions/v1beta1"): """PUT /apis/extensions/v1beta1/namespaces/{namespace}/deployments/{name}/scale""" body = { "metadata": { "name": pod_name, "namespace": DEFAULT_NAMESPACE }, "spec": { "replicas": number_of_replicas } } client = HttpClientFactory.get( KubernetesConfigurationProvider.get(rest_prefix, api_version)) return client.request( method=HttpMethod.PUT, body=body, path="namespaces/{DEFAULT_NAMESPACE}/deployments/{pod_name}/scale", path_params={ 'DEFAULT_NAMESPACE': DEFAULT_NAMESPACE, 'pod_name': pod_name }, msg="POD {} scaled to {} replicas".format(pod_name, number_of_replicas))
def k8s_get_services(*, namespace=DEFAULT_NAMESPACE): """GET /namespaces/{namespace}/services""" return HttpClientFactory.get( KubernetesConfigurationProvider.get()).request( method=HttpMethod.GET, path="namespaces/{namespace}/services", path_params={'namespace': namespace}, msg="KUBERNETES: get services")
def k8s_get_pods(): """GET /namespaces/{namespace}/pods""" return HttpClientFactory.get( KubernetesConfigurationProvider.get()).request( method=HttpMethod.GET, path="namespaces/{DEFAULT_NAMESPACE}/pods", path_params={'DEFAULT_NAMESPACE': DEFAULT_NAMESPACE}, msg="KUBERNETES: get pods")
def k8s_get_ingresses(rest_prefix="apis", api_version="extensions/v1beta1"): """PUT /apis/extensions/v1beta1/namespaces/{namespace}/ingresses""" client = HttpClientFactory.get( KubernetesConfigurationProvider.get(rest_prefix, api_version)) return client.request(method=HttpMethod.GET, path="namespaces/{DEFAULT_NAMESPACE}/ingresses", path_params={'DEFAULT_NAMESPACE': DEFAULT_NAMESPACE}, msg="KUBERNETES: get ingresses")
def k8s_get_configmap(configmap_name): """GET /namespaces/{namespace}/configmaps/{configmap_name}""" return HttpClientFactory.get( KubernetesConfigurationProvider.get()).request( method=HttpMethod.GET, path="namespaces/{DEFAULT_NAMESPACE}/configmaps/{configmap_name}", path_params={ 'DEFAULT_NAMESPACE': DEFAULT_NAMESPACE, 'configmap_name': configmap_name }, msg="KUBERNETES: get configmap {}".format(configmap_name))
def k8s_logs(application_name, params): """GET /namespaces/{namespace}/pods/{application_name}/log""" return HttpClientFactory.get( KubernetesConfigurationProvider.get()).request( method=HttpMethod.GET, path="namespaces/{DEFAULT_NAMESPACE}/pods/{application_name}/log", path_params={ 'DEFAULT_NAMESPACE': DEFAULT_NAMESPACE, 'application_name': application_name }, params=params, msg="KUBERNETES: get logs {}".format(application_name))
def test_get_certificate(self): test_kube_dir_path = "/test/path" test_cert = KubernetesConfigurationProvider._get_certificates(test_kube_dir_path, self.EXAMPLE_CUBE_CONFIG_PATH) assert test_cert[0] == os.path.join(test_kube_dir_path, self.TEST_CERT_FILE_NAME) assert test_cert[1] == os.path.join(test_kube_dir_path, self.TEST_KEY_FILE_NAME)
def test_get_api_version(self): test_api_version = KubernetesConfigurationProvider._get_api_version(self.EXAMPLE_CUBE_CONFIG_PATH) assert test_api_version == self.TEST_API_VERSION
def test_get_url(self): test_url = KubernetesConfigurationProvider._get_url(self.EXAMPLE_CUBE_CONFIG_PATH) assert test_url == self.TEST_URL
def k8s_get_nodes(): """GET /nodes""" return HttpClientFactory.get( KubernetesConfigurationProvider.get()).request( method=HttpMethod.GET, path="nodes", msg="KUBERNETES: get nodes")