58 lines
2.5 KiB
Python
58 lines
2.5 KiB
Python
from kubernetes import client, config
|
|
|
|
|
|
def scale_up(namespace_name,deploy_name,replicas=1):
|
|
config.load_kube_config(config_file='/kubeconfig/config')
|
|
|
|
api = client.AppsV1Api()
|
|
deployment = api.read_namespaced_deployment(name=deploy_name, namespace=namespace_name)
|
|
deployment.spec.replicas = replicas
|
|
resp = api.patch_namespaced_deployment(
|
|
name=deploy_name, namespace=namespace_name, body=deployment);
|
|
return 0
|
|
|
|
def scale_down(namespace_name,deploy_name):
|
|
config.load_kube_config(config_file='/kubeconfig/config')
|
|
api = client.AppsV1Api()
|
|
deployment = api.read_namespaced_deployment(name=deploy_name, namespace=namespace_name)
|
|
deployment.spec.replicas = 0
|
|
resp = api.patch_namespaced_deployment(
|
|
name=deploy_name, namespace=namespace_name, body=deployment);
|
|
return 0
|
|
|
|
def import_Deployments():
|
|
config.load_kube_config(config_file='/kubeconfig/config')
|
|
api = client.AppsV1Api()
|
|
deployment = api.list_deployment_for_all_namespaces()
|
|
for i in range(1,len(deployment.items)):
|
|
print(deployment.items[i].spec.template.spec.containers[0].name)
|
|
|
|
len(deployment.items) #list all deployment inside the namespace
|
|
test.items[0].spec.template.spec.containers[0].name # name the first deploy within the namespace
|
|
test.items[2].spec.template.spec.containers[0].name # name the third deploy within the namespace
|
|
return 0
|
|
|
|
def get_namespace(verbose=False):
|
|
config.load_kube_config(config_file='/kubeconfig/config')
|
|
core = client.CoreV1Api()
|
|
namespace = core.list_namespace()
|
|
namespace_list = []
|
|
for i in range(0,len(namespace.items)):
|
|
if verbose : print(namespace.items[i].metadata.name)
|
|
namespace_list.append(namespace.items[i].metadata.name)
|
|
return namespace_list
|
|
|
|
def get_deployments(verbose=False):
|
|
config.load_kube_config(config_file='/kubeconfig/config')
|
|
api = client.AppsV1Api()
|
|
namespaces_list = get_namespace()
|
|
deployments_list = []
|
|
for namespace in namespaces_list:
|
|
if verbose : print(namespace)
|
|
deployments = api.list_namespaced_deployment(namespace)
|
|
for deployment_index in range(0,len(deployments.items)):
|
|
deployment = deployments.items[deployment_index].metadata.name
|
|
replicas = deployments.items[deployment_index].spec.replicas
|
|
if verbose : print(" "+str(deployment)+" -- Replicas: "+str(replicas))
|
|
deployments_list.append([namespace,deployment,replicas])
|
|
return deployments_list |