Ejemplo n.º 1
0
def install(args) -> None:
    if "--help" in args or "-h" in args:
        _show_install_help()
        return
    parser = argparse.ArgumentParser("microk8s install")
    parser.add_argument("--cpu", default=definitions.DEFAULT_CORES, type=int)
    parser.add_argument("--mem", default=definitions.DEFAULT_MEMORY, type=int)
    parser.add_argument("--disk", default=definitions.DEFAULT_DISK, type=int)
    parser.add_argument("--channel",
                        default=definitions.DEFAULT_CHANNEL,
                        type=str)
    parser.add_argument("-y",
                        "--assume-yes",
                        action="store_true",
                        default=definitions.DEFAULT_ASSUME)
    args = parser.parse_args(args)

    echo = Echo()

    if platform == "win32":
        aux = Windows(args)
        if not aux.is_enough_space():
            echo.warning("VM disk size requested exceeds free space on host.")

    if platform == "darwin":
        aux = MacOS(args)
        if not aux.is_enough_space():
            echo.warning("VM disk size requested exceeds free space on host.")

    vm_provider_name: str = "multipass"
    vm_provider_class = get_provider_for(vm_provider_name)
    try:
        vm_provider_class.ensure_provider()
    except ProviderNotFound as provider_error:
        if provider_error.prompt_installable:
            if args.assume_yes or (echo.is_tty_connected() and echo.confirm(
                    "Support for {!r} needs to be set up. "
                    "Would you like to do that it now?".format(
                        provider_error.provider))):
                vm_provider_class.setup_provider(echoer=echo)
            else:
                raise provider_error
        else:
            raise provider_error

    instance = vm_provider_class(echoer=echo)
    instance.launch_instance(vars(args))
    echo.info(
        "MicroK8s is up and running. See the available commands with `microk8s --help`."
    )
Ejemplo n.º 2
0
def kubectl(args) -> int:
    if platform == "win32":
        return Windows(args).kubectl()
    if platform == "darwin":
        return MacOS(args).kubectl()
    else:
        return Linux(args).kubectl()