def kubectl(args) -> int: if platform == "win32": return Windows(args).kubectl() if platform == "darwin": return MacOS(args).kubectl() else: return Linux(args).kubectl()
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.") else: aux = Linux(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) spec = vars(args) spec.update({"kubeconfig": get_kubeconfig_path()}) instance.launch_instance(spec) echo.info("MicroK8s is up and running. See the available commands with `microk8s --help`.")