Exemple #1
0
def delete_deployment(name: str, namespace: str=None, concurrency: int=None) -> None:
    args = ["delete", "deploy", "--force", name]
    if namespace is not None:
        args.extend(["--namespace", namespace])
    if concurrency is not None:
        args.extend(["--concurrency", concurrency])
    sh.chkit(*args).execute()
Exemple #2
0
def create_ingress(ingress: Ingress, file: bool=False, namespace: str=None) -> None:
    args = ["create", "ingr", "--name", ingress.name[0], "--force"]
    if file:
        args.extend(["--input", "json"])
    else:
        rule = ingress.rules[0]
        args.extend(["--host", rule.host])
        path = rule.path[0]
        args.extend(["--path", path.path, "--service", path.service_name, "--port", path.service_port])

    if namespace is not None:
        args.extend(["--namespace", namespace])

    sh.chkit(*args).execute()
Exemple #3
0
def replace_container(deployment: str="", container: Container=Container(), namespace: str=None) -> None:
    args = ["replace", "container", "--container", container.name, "--deployment", deployment, "--force"]
    if namespace is not None:
        args.extend(["--namespace", namespace])
    if container.env is not None:
        for var in container.env:
            args.extend(["--env", f"{var.name}:{var.value}"])
    if container.limits is not None:
        if container.limits.cpu is not None:
            args.extend(["--cpu", container.limits.cpu])
        if container.limits.memory is not None:
            args.extend(["--memory", container.limits.memory])
        if container.image is not None:
            args.extend(["--image", container.image])
    sh.chkit(*args).execute()
Exemple #4
0
def get_services(solution: str=None, namespace: str=None) -> List[Service]:
    args = ["get", "svc", "--output", "json"]
    if solution is not None:
        args.extend(["--solution", solution])
    if namespace is not None:
        args.extend(["--namespace", namespace])
    return [Service.json_decode(j) for j in json.loads(sh.chkit(*args).execute().stdout())]
Exemple #5
0
def add_container(deployment: str="", container: Container=Container(), namespace: str=None, file: bool=False) -> None:
    args = ["create", "container", "--name", container.name, "--deployment", deployment, "--force"]
    if file:
        args.extend(["--file", "-"])
    else:
        args.extend(["--image", container.image, "--memory", container.limits.memory, "--cpu", container.limits.cpu])
        if container.env is not None:
            for var in container.env:
                args.extend(["--env", f"{var.name}:{var.value}"])
    if namespace is not None:
        args.extend(["--namespace", namespace])

    if file:
        sh.chkit(*args, _stdin=json.dumps(container, cls=JSONSerialize)).execute()
    else:
        sh.chkit(*args).execute()
Exemple #6
0
def replace_ingress(ingress: Ingress, file: bool=False, namespace: str=None) -> None:
    args = ["replace", "ingr", ingress.name[0], "--force"]
    if file:
        args.extend(["--input", "json"])
    else:
        path = ingress.rules[0].path[0]
        if path.path is not None:
            args.extend(["--path", path.path])
        if path.service_name is not None:
            args.extend(["--service", path.service_name])
        if path.service_port != 0:
            args.extend(["--port", path.service_port])

        if namespace is not None:
            args.extend(["--namespace", namespace])

    sh.chkit(*args).execute()
Exemple #7
0
def get_pods(namespace: str=None, status: str=None) -> List[Pod]:
    args = ["get", "pods", "--output", "json"]
    if namespace is not None:
        args.extend(["--namespace", namespace])
    if status is not None:
        args.extend(["--status", status])
    output = sh.chkit(*args).execute().stdout()

    return [Pod.json_decode(j) for j in json.loads(output)]
Exemple #8
0
def create_service(service: Service, file: bool=False, namespace: str=None) -> None:
    args = ["create", "service", "--name", service.name, "--deployment", service.deploy, "--force"]
    if file:
        args.extend(["--input", "json"])
    else:
        port = service.ports[0]
        args.extend(["--port-name", port.name, "--target-port", port.target_port, "--protocol", port.protocol])
        if port.port is not None:
            args.extend(["--port", port.port])

    if namespace is not None:
        args.extend(["--namespace", namespace])

    if file:
        service_to_create = Service(name=service.name, deploy=service.deploy, ports=service.ports)
        sh.chkit(*args, _stdin=json.dumps(service_to_create, cls=JSONSerialize)).execute()
    else:
        sh.chkit(*args).execute()
Exemple #9
0
def pod_logs(pod: str, container: str=None, tail: int=None, namespace: str=None) -> List[str]:
    args = ["logs", pod]
    if container is not None:
        args.append(container)
    if tail is not None:
        args.extend(["--tail", tail])
    if namespace is not None:
        args.extend(["--namespace", namespace])

    return sh.chkit(*args).execute().stdout().splitlines()
Exemple #10
0
def replace_configmap(cm: ConfigMap, file: bool=False, namespace: str=None) -> None:
    args = ["replace", "cm", cm.name, "--force"]
    # if file:
    #   args.extend(["--input", "json"])
    # else:

    sep = " "
    envs = []
    for d in cm.data:
        buf = "%s:%s" % (d, cm.data[d])
        envs.append(buf)

    args.extend(["--item-string", sep.join(envs)])

    if namespace is not None:
        args.extend(["--namespace", namespace])

    # if file:
    #    cm_to_create = ConfigMap(name=cm.name, data=cm.data)
    #    sh.chkit(*args, _stdin=json.dumps(cm_to_create, cls=JSONSerialize)).execute()
    # else:
    sh.chkit(*args).execute()
Exemple #11
0
def create_deployment(depl: Deployment, namespace: str=None, file: bool=False) -> None:
    args = ["create", "deployment", "--force"]
    if not file:
        if depl.name is not None:
            args.extend(["--name", depl.name])
        for container in depl.containers:
            args.extend(["--image", f"{container.name}@{container.image}"])
            args.extend(["--cpu", f"{container.name}@{container.limits.cpu}"])
            args.extend(["--memory", f"{container.name}@{container.limits.memory}"])
            if container.env is not None:
                for var in container.env:
                    args.extend(["--env", f"{container.name}@{var.name}:{var.value}"])
            if container.config_maps is not None:
                for var in container.config_maps:
                    args.extend(["--configmap", f"{container.name}@{var.name}"])
    else:
        args.extend(["--file", "-"])
    if namespace is not None:
        args.extend(["--namespace", namespace])

    if not file:
        sh.chkit(*args).execute()
    else:
        sh.chkit(*args, _stdin=json.dumps(depl, cls=JSONSerialize)).execute()
Exemple #12
0
def delete_solution(name: str) -> None:
    args = ["delete", "sol", name, "--force"]
    sh.chkit(*args).execute()
Exemple #13
0
def login(user: str="test", password: str="test", namespace: str="-") -> None:
    sh.chkit("login", "--username", user, "--password", password, "--namespace", namespace).execute()
Exemple #14
0
def get_solutions() -> List[Solution]:
    args = ["get", "sol", "--output", "json"]
    return [Solution.json_decode(j) for j in json.loads(sh.chkit(*args).execute().stdout()).get("solutions")]
Exemple #15
0
def get_solution(name: str) -> Solution:
    args = ["get", "sol", name, "--output", "json"]
    return Solution.json_decode(json.loads(sh.chkit(*args).execute().stdout()))
Exemple #16
0
def delete_service(service: str, namespace: str=None) -> None:
    args = ["delete", "service", service, "--force"]
    if namespace is not None:
        args.extend(["--namespace", namespace])

    sh.chkit(*args).execute()
Exemple #17
0
def set_default_namespace(namespace: str="-") -> None:
    sh.chkit("set", "default-namespace", namespace).execute()
Exemple #18
0
def get_templates() -> List[Templates]:
    args = ["get", "tmpl", "--output", "json"]
    return [Templates.json_decode(j) for j in json.loads(sh.chkit(*args).execute().stdout()).get("solutions")]
Exemple #19
0
def get_ingresses() -> List[Ingress]:
    args = ["get", "ingr", "--output", "json"]
    return [Ingress.json_decode(j) for j in json.loads(sh.chkit(*args).execute().stdout())]
Exemple #20
0
def get_default_namespace() -> Tuple[str, str]:
    output = sh.chkit("get", "default-namespace").execute().stdout()
    line = output.splitlines()[0]
    kv = line.split("/")
    owner_login, namespace_name = kv[0], kv[1]
    return owner_login, namespace_name
Exemple #21
0
def delete_configmap(configmap: str, namespace: str=None) -> None:
    args = ["delete", "cm", configmap, "--force"]
    if namespace is not None:
        args.extend(["--namespace", namespace])

    sh.chkit(*args).execute()
Exemple #22
0
def delete_container(deployment: str="", container: str="", namespace: str=None) -> None:
    args = ["delete", "container", "--deployment", deployment, "--container", container, "--force"]
    if namespace is not None:
        args.extend(["--namespace", namespace])
    sh.chkit(*args).execute()
Exemple #23
0
def get_configmaps(namespace: str=None) -> List[ConfigMap]:
    args = ["get", "cm", "--output", "json"]
    if namespace is not None:
        args.extend(["--namespace", namespace])

    return [ConfigMap.json_decode(j) for j in json.loads(sh.chkit(*args).execute().stdout())]
Exemple #24
0
def get_configmap(configmap: str, namespace: str=None) -> ConfigMap:
    args = ["get", "cm", configmap, "--output", "json"]
    if namespace is not None:
        args.extend(["--namespace", namespace])

    return ConfigMap.json_decode(json.loads(sh.chkit(*args).execute().stdout()))
Exemple #25
0
def set_image(image: str="", container: str="", deployment: str="", namespace: str=None) -> None:
    args = ["set", "image", "--image", image, "--container", container, "--deployment", deployment, "--force"]
    if namespace is not None:
        args.extend(["--namespace", namespace])
    sh.chkit(*args).execute()
Exemple #26
0
def get_template_envs(tmpl: str) -> TemplateEnvs:
    args = ["get", "envs", tmpl, "--output", "json"]
    return TemplateEnvs.json_decode(json.loads(sh.chkit(*args).execute().stdout()))
Exemple #27
0
def delete_ingress(ingr: str, namespace: str=None) -> None:
    args = ["delete", "ingr", ingr, "--force"]
    if namespace is not None:
        args.extend(["--namespace", namespace])

    sh.chkit(*args).execute()
Exemple #28
0
def run_solution(tmpl: str, name: str) -> None:
    args = ["run", "sol", tmpl, "--name", name, "--force"]
    sh.chkit(*args).execute()
Exemple #29
0
def get_ingress(name: str) -> Ingress:
    args = ["get", "ingr", name, "--output", "json"]
    return Ingress.json_decode(json.loads(sh.chkit(*args).execute().stdout()))
Exemple #30
0
def get_profile() -> Dict[str, str]:
    output = sh.chkit("get", "profile").execute().stdout()
    profile = (line.split(':') for line in output.splitlines())
    profile = (tuple(items) for items in profile if len(items) == 2)
    profile = {key.strip(): value.strip() for key, value in profile}
    return profile