diff --git a/cmd/minikube/cmd/config/config.go b/cmd/minikube/cmd/config/config.go index a3694e0a20e4..509d202ebaca 100644 --- a/cmd/minikube/cmd/config/config.go +++ b/cmd/minikube/cmd/config/config.go @@ -76,7 +76,7 @@ var settings = []Setting{ { name: "cpus", set: SetInt, - validations: []setFn{IsPositive}, + validations: []setFn{IsValidCPUs}, callbacks: []setFn{RequiresRestartMsg}, }, { diff --git a/cmd/minikube/cmd/config/validations.go b/cmd/minikube/cmd/config/validations.go index c88de5c7f31e..5a06786cd988 100644 --- a/cmd/minikube/cmd/config/validations.go +++ b/cmd/minikube/cmd/config/validations.go @@ -25,6 +25,7 @@ import ( "strings" units "github.com/docker/go-units" + "k8s.io/minikube/pkg/minikube/constants" "k8s.io/minikube/pkg/minikube/cruntime" "k8s.io/minikube/pkg/minikube/driver" "k8s.io/minikube/pkg/minikube/out" @@ -53,8 +54,19 @@ func IsValidDiskSize(name string, disksize string) error { return nil } +// IsValidCPUs checks if a string is a valid number of CPUs +func IsValidCPUs(name string, cpus string) error { + if cpus == constants.MaxResources { + return nil + } + return IsPositive(name, cpus) +} + // IsValidMemory checks if a string is a valid memory size func IsValidMemory(name string, memsize string) error { + if memsize == constants.MaxResources { + return nil + } _, err := units.FromHumanSize(memsize) if err != nil { return fmt.Errorf("invalid memory size: %v", err) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 42baf2a1280b..ed1ffff1fb50 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -1030,56 +1030,49 @@ func validateRequestedMemorySize(req int, drvName string) { // validateCPUCount validates the cpu count matches the minimum recommended & not exceeding the available cpu count func validateCPUCount(drvName string) { - var cpuCount int - if driver.BareMetal(drvName) { + var availableCPUs int - // Uses the gopsutil cpu package to count the number of logical cpu cores - ci, err := cpu.Counts(true) + cpuCount := getCPUCount(drvName) + isKIC := driver.IsKIC(drvName) + + if isKIC { + si, err := oci.CachedDaemonInfo(drvName) if err != nil { - klog.Warningf("Unable to get CPU info: %v", err) - } else { - cpuCount = ci + si, err = oci.DaemonInfo(drvName) + if err != nil { + exit.Message(reason.Usage, "Ensure your {{.driver_name}} is running and is healthy.", out.V{"driver_name": driver.FullName(drvName)}) + } } + availableCPUs = si.CPUs } else { - cpuCount = viper.GetInt(cpus) + ci, err := cpu.Counts(true) + if err != nil { + exit.Message(reason.Usage, "Unable to get CPU info: {{.err}}", out.V{"err": err}) + } + availableCPUs = ci } if cpuCount < minimumCPUS { exitIfNotForced(reason.RsrcInsufficientCores, "Requested cpu count {{.requested_cpus}} is less than the minimum allowed of {{.minimum_cpus}}", out.V{"requested_cpus": cpuCount, "minimum_cpus": minimumCPUS}) } - if !driver.IsKIC((drvName)) { - return - } - - si, err := oci.CachedDaemonInfo(drvName) - if err != nil { - out.Styled(style.Confused, "Failed to verify '{{.driver_name}} info' will try again ...", out.V{"driver_name": drvName}) - si, err = oci.DaemonInfo(drvName) - if err != nil { - exit.Message(reason.Usage, "Ensure your {{.driver_name}} is running and is healthy.", out.V{"driver_name": driver.FullName(drvName)}) - } - - } - - if si.CPUs < cpuCount { - + if availableCPUs < cpuCount { if driver.IsDockerDesktop(drvName) { out.Styled(style.Empty, `- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.`, out.V{"driver_name": drvName}) if runtime.GOOS == "darwin" { - out.Styled(style.Empty, `- Docs https://docs.docker.com/docker-for-mac/#resources`, out.V{"driver_name": drvName}) + out.Styled(style.Empty, `- Docs https://docs.docker.com/docker-for-mac/#resources`) } if runtime.GOOS == "windows" { out.String("\n\t") - out.Styled(style.Empty, `- Docs https://docs.docker.com/docker-for-windows/#resources`, out.V{"driver_name": drvName}) + out.Styled(style.Empty, `- Docs https://docs.docker.com/docker-for-windows/#resources`) } } - exitIfNotForced(reason.RsrcInsufficientCores, "Requested cpu count {{.requested_cpus}} is greater than the available cpus of {{.avail_cpus}}", out.V{"requested_cpus": cpuCount, "avail_cpus": si.CPUs}) + exitIfNotForced(reason.RsrcInsufficientCores, "Requested cpu count {{.requested_cpus}} is greater than the available cpus of {{.avail_cpus}}", out.V{"requested_cpus": cpuCount, "avail_cpus": availableCPUs}) } // looks good - if si.CPUs >= 2 { + if availableCPUs >= 2 { return } @@ -1236,13 +1229,32 @@ func validateChangedMemoryFlags(drvName string) { if !driver.HasResourceLimits(drvName) { out.WarningT("The '{{.name}}' driver does not respect the --memory flag", out.V{"name": drvName}) } - req, err := util.CalculateSizeInMB(viper.GetString(memory)) - if err != nil { - exitIfNotForced(reason.Usage, "Unable to parse memory '{{.memory}}': {{.error}}", out.V{"memory": viper.GetString(memory), "error": err}) + var req int + var err error + memString := viper.GetString(memory) + if memString == constants.MaxResources { + sysLimit, containerLimit, err := memoryLimits(drvName) + if err != nil { + klog.Warningf("Unable to query memory limits: %+v", err) + } + req = noLimitMemory(sysLimit, containerLimit) + } else { + req, err = util.CalculateSizeInMB(memString) + if err != nil { + exitIfNotForced(reason.Usage, "Unable to parse memory '{{.memory}}': {{.error}}", out.V{"memory": memString, "error": err}) + } } validateRequestedMemorySize(req, drvName) } +func noLimitMemory(sysLimit int, containerLimit int) int { + if containerLimit != 0 { + return containerLimit + } + // Recommend 1GB to handle OS/VM overhead + return sysLimit - 1024 +} + // This function validates if the --registry-mirror // args match the format of http://localhost func validateRegistryMirror() { diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index 770d605cca88..ccf30226ca71 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -23,10 +23,12 @@ import ( "github.com/blang/semver" "github.com/pkg/errors" + "github.com/shirou/gopsutil/v3/cpu" "github.com/spf13/cobra" "github.com/spf13/viper" "k8s.io/klog/v2" "k8s.io/minikube/pkg/drivers/kic" + "k8s.io/minikube/pkg/drivers/kic/oci" "k8s.io/minikube/pkg/minikube/bootstrapper/bsutil" "k8s.io/minikube/pkg/minikube/bootstrapper/bsutil/kverify" "k8s.io/minikube/pkg/minikube/cni" @@ -135,8 +137,8 @@ func initMinikubeFlags() { startCmd.Flags().Bool(interactive, true, "Allow user prompts for more information") startCmd.Flags().Bool(dryRun, false, "dry-run mode. Validates configuration, but does not mutate system state") - startCmd.Flags().Int(cpus, 2, "Number of CPUs allocated to Kubernetes.") - startCmd.Flags().String(memory, "", "Amount of RAM to allocate to Kubernetes (format: [], where unit = b, k, m or g).") + startCmd.Flags().String(cpus, "2", fmt.Sprintf("Number of CPUs allocated to Kubernetes. Use %q to use the maximum number of CPUs.", constants.MaxResources)) + startCmd.Flags().String(memory, "", fmt.Sprintf("Amount of RAM to allocate to Kubernetes (format: [], where unit = b, k, m or g). Use %q to use the maximum amount of memory.", constants.MaxResources)) startCmd.Flags().String(humanReadableDiskSize, defaultDiskSize, "Disk size allocated to the minikube VM (format: [], where unit = b, k, m or g).") startCmd.Flags().Bool(downloadOnly, false, "If true, only download and cache files for later use - don't install or start anything.") startCmd.Flags().Bool(cacheImages, true, "If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none.") @@ -290,6 +292,30 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k return createNode(cc, kubeNodeName, existing) } +func getCPUCount(drvName string) int { + if viper.GetString(cpus) != constants.MaxResources { + return viper.GetInt(cpus) + } + + if !driver.IsKIC(drvName) { + ci, err := cpu.Counts(true) + if err != nil { + exit.Message(reason.Usage, "Unable to get CPU info: {{.err}}", out.V{"err": err}) + } + return ci + } + + si, err := oci.CachedDaemonInfo(drvName) + if err != nil { + si, err = oci.DaemonInfo(drvName) + if err != nil { + exit.Message(reason.Usage, "Ensure your {{.driver_name}} is running and is healthy.", out.V{"driver_name": driver.FullName(drvName)}) + } + } + + return si.CPUs +} + func getMemorySize(cmd *cobra.Command, drvName string) int { sysLimit, containerLimit, err := memoryLimits(drvName) if err != nil { @@ -298,10 +324,15 @@ func getMemorySize(cmd *cobra.Command, drvName string) int { mem := suggestMemoryAllocation(sysLimit, containerLimit, viper.GetInt(nodes)) if cmd.Flags().Changed(memory) || viper.IsSet(memory) { + memString := viper.GetString(memory) var err error - mem, err = pkgutil.CalculateSizeInMB(viper.GetString(memory)) - if err != nil { - exit.Message(reason.Usage, "Generate unable to parse memory '{{.memory}}': {{.error}}", out.V{"memory": viper.GetString(memory), "error": err}) + if memString == constants.MaxResources { + mem = noLimitMemory(sysLimit, containerLimit) + } else { + mem, err = pkgutil.CalculateSizeInMB(memString) + if err != nil { + exit.Message(reason.Usage, "Generate unable to parse memory '{{.memory}}': {{.error}}", out.V{"memory": memString, "error": err}) + } } if driver.IsKIC(drvName) && mem > containerLimit { exit.Message(reason.Usage, "{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB", out.V{"container_limit": containerLimit, "specified_memory": mem, "driver_name": driver.FullName(drvName)}) @@ -384,7 +415,7 @@ func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, drvName s KicBaseImage: viper.GetString(kicBaseImage), Network: viper.GetString(network), Memory: getMemorySize(cmd, drvName), - CPUs: viper.GetInt(cpus), + CPUs: getCPUCount(drvName), DiskSize: getDiskSize(), Driver: drvName, ListenAddress: viper.GetString(listenAddress), diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index a17021d2a13e..83f577a95648 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -114,6 +114,8 @@ const ( // TimeFormat is the format that should be used when outputting time TimeFormat = time.RFC1123 + // MaxResources is the value that can be passed into the memory and cpus flags to specify to use maximum resources + MaxResources = "max" ) var ( diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index 80d2f63e83b2..4fffbf571775 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -30,7 +30,7 @@ minikube start [flags] --cache-images If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none. (default true) --cni string CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto) --container-runtime string The container runtime to be used (docker, cri-o, containerd). (default "docker") - --cpus int Number of CPUs allocated to Kubernetes. (default 2) + --cpus string Number of CPUs allocated to Kubernetes. Use "max" to use the maximum number of CPUs. (default "2") --cri-socket string The cri socket path to be used. --delete-on-failure If set, delete the current cluster if start fails and try again. Defaults to false. --disable-driver-mounts Disables the filesystem mounts provided by the hypervisors @@ -73,7 +73,7 @@ minikube start [flags] --kvm-numa-count int Simulate numa node count in minikube, supported numa node count range is 1-8 (kvm2 driver only) (default 1) --kvm-qemu-uri string The KVM QEMU connection URI. (kvm2 driver only) (default "qemu:///system") --listen-address string IP Address to use to expose ports (docker and podman driver only) - --memory string Amount of RAM to allocate to Kubernetes (format: [], where unit = b, k, m or g). + --memory string Amount of RAM to allocate to Kubernetes (format: [], where unit = b, k, m or g). Use "max" to use the maximum amount of memory. --mount This will start the mount daemon and automatically mount files into minikube. --mount-string string The argument to pass the minikube mount command on start. --namespace string The named space to activate after start (default "default") diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index ccd09b6c5711..e9877ebe55ae 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -105,3 +105,9 @@ For the docker and podman driver, use `--listen-address` flag: minikube start --listen-address=0.0.0.0 ``` +## How can I allocate maximum resources to minikube? + +Setting the `memory` and `cpus` flags on the start command to `max` will use maximum available resources: +``` +minikube start --memory=max --cpus=max +``` diff --git a/translations/de.json b/translations/de.json index 9e7e19878825..fa0778b70529 100644 --- a/translations/de.json +++ b/translations/de.json @@ -51,7 +51,6 @@ "Allow user prompts for more information": "", "Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Alternatives Bild-Repository zum Abrufen von Docker-Images. Dies ist hilfreich, wenn Sie nur eingeschränkten Zugriff auf gcr.io haben. Stellen Sie \\\"auto\\\" ein, dann wählt minikube eins für sie aus. Nutzer vom chinesischen Festland können einen lokalen gcr.io-Mirror wie registry.cn-hangzhou.aliyuncs.com/google_containers verwenden.", "Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)": "Größe des der minikube-VM zugewiesenen Arbeitsspeichers (Format: \u003cNummer\u003e [\u003cEinheit\u003e], wobei Einheit = b, k, m oder g)", - "Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "", "Amount of time to wait for a service in seconds": "", "Amount of time to wait for service in seconds": "", "Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "", @@ -260,7 +259,6 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "", "Failed to update config": "", - "Failed to verify '{{.driver_name}} info' will try again ...": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -395,7 +393,6 @@ "None of the known repositories is accessible. Consider specifying an alternative image repository with --image-repository flag": "Keines der bekannten Repositories ist zugänglich. Erwägen Sie, ein alternatives Image-Repository mit der Kennzeichnung --image-repository anzugeben", "Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "", "Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "", - "Number of CPUs allocated to Kubernetes.": "", "Number of CPUs allocated to the minikube VM": "Anzahl der CPUs, die der minikube-VM zugeordnet sind", "Number of lines back to go within the log": "", "OS release is {{.pretty_name}}": "", @@ -700,6 +697,7 @@ "Unable to find control plane": "", "Unable to generate docs": "", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "", + "Unable to get CPU info: {{.err}}": "", "Unable to get bootstrapper: {{.error}}": "Bootstrapper kann nicht abgerufen werden: {{.error}}", "Unable to get command runner": "", "Unable to get control plane status: {{.error}}": "", @@ -943,4 +941,4 @@ "{{.profile}} profile is not valid: {{.err}}": "", "{{.type}} is not yet a supported filesystem. We will try anyways!": "", "{{.url}} is not accessible: {{.error}}": "" -} +} \ No newline at end of file diff --git a/translations/es.json b/translations/es.json index 3ba112e71c16..8485833edcc0 100644 --- a/translations/es.json +++ b/translations/es.json @@ -52,7 +52,6 @@ "Allow user prompts for more information": "Permitir que el usuario solicite más información", "Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Repositorio de imágenes alternativo del que extraer imágenes de Docker. Puedes usarlo cuando tengas acceso limitado a gcr.io. Si quieres que minikube elija uno por ti, solo tienes que definir el valor como \"auto\". Los usuarios de China continental pueden utilizar réplicas locales de gcr.io, como registry.cn-hangzhou.aliyuncs.com/google_containers", "Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)": "Cantidad de RAM asignada a la VM de minikube (formato: \u003cnúmero\u003e[\u003cunidad\u003e], donde unidad = b, k, m o g)", - "Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "", "Amount of time to wait for a service in seconds": "Cantidad de tiempo para esperar por un servicio en segundos", "Amount of time to wait for service in seconds": "Cantidad de tiempo para esperar un servicio en segundos", "Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "Otro hipervisor, por ejemplo VirtualBox, está en conflicto con KVM. Por favor detén el otro hipervisor, o usa --driver para cambiarlo.", @@ -265,7 +264,6 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "", "Failed to update config": "", - "Failed to verify '{{.driver_name}} info' will try again ...": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -400,7 +398,6 @@ "None of the known repositories is accessible. Consider specifying an alternative image repository with --image-repository flag": "No se puede acceder a ninguno de los repositorios conocidos. Plantéate indicar un repositorio de imágenes alternativo con la marca --image-repository.", "Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "", "Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "", - "Number of CPUs allocated to Kubernetes.": "", "Number of CPUs allocated to the minikube VM": "Número de CPU asignadas a la VM de minikube", "Number of lines back to go within the log": "", "OS release is {{.pretty_name}}": "", @@ -705,6 +702,7 @@ "Unable to find control plane": "", "Unable to generate docs": "", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "", + "Unable to get CPU info: {{.err}}": "", "Unable to get bootstrapper: {{.error}}": "No se ha podido obtener el programa previo: {{.error}}", "Unable to get command runner": "", "Unable to get control plane status: {{.error}}": "", @@ -947,4 +945,4 @@ "{{.profile}} profile is not valid: {{.err}}": "", "{{.type}} is not yet a supported filesystem. We will try anyways!": "", "{{.url}} is not accessible: {{.error}}": "" -} +} \ No newline at end of file diff --git a/translations/fr.json b/translations/fr.json index 214848c53afd..7375f1cd4388 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -398,7 +398,6 @@ "None of the known repositories is accessible. Consider specifying an alternative image repository with --image-repository flag": "Aucun dépôt connu n'est accessible. Pensez à spécifier un autre dépôt d'images à l'aide de l'indicateur \"--image-repository\".", "Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "Vous avez remarqué que vous avez un docker-env activé sur le pilote {{.driver_name}} dans ce terminal :", "Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "Vous avez remarqué que vous avez un pilote podman-env activé sur {{.driver_name}} dans ce terminal :", - "Number of CPUs allocated to Kubernetes.": "Nombre de processeurs alloués à Kubernetes.", "Number of CPUs allocated to the minikube VM": "Nombre de processeurs alloués à la VM minikube.", "Number of lines back to go within the log": "Nombre de lignes à remonter dans le journal", "OS release is {{.pretty_name}}": "La version du système d'exploitation est {{.pretty_name}}", @@ -703,6 +702,7 @@ "Unable to find control plane": "Impossible de trouver le plan de contrôle", "Unable to generate docs": "Impossible de générer des documents", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "Impossible de générer la documentation. Veuillez vous assurer que le chemin spécifié est un répertoire, existe \u0026 vous avez la permission d'y écrire.", + "Unable to get CPU info: {{.err}}": "", "Unable to get bootstrapper: {{.error}}": "Impossible d'obtenir l'amorceur : {{.error}}", "Unable to get command runner": "Impossible d'obtenir le lanceur de commandes", "Unable to get control plane status: {{.error}}": "Impossible d'obtenir l'état du plan de contrôle : {{.error}}", diff --git a/translations/ja.json b/translations/ja.json index a11577db61d7..269d029ceb52 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -252,7 +252,6 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "", "Failed to update config": "", - "Failed to verify '{{.driver_name}} info' will try again ...": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -390,7 +389,6 @@ "None of the known repositories is accessible. Consider specifying an alternative image repository with --image-repository flag": "既知のいずれのリポジトリにもアクセスできません。--image-repository フラグとともに代替のイメージ リポジトリを指定することを検討してください", "Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "", "Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "", - "Number of CPUs allocated to Kubernetes.": "", "Number of CPUs allocated to the minikube VM": "minikube VM に割り当てられた CPU の数", "Number of lines back to go within the log": "", "OS release is {{.pretty_name}}": "OS は {{.pretty_name}} です。", @@ -699,6 +697,7 @@ "Unable to find control plane": "", "Unable to generate docs": "", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "", + "Unable to get CPU info: {{.err}}": "", "Unable to get bootstrapper: {{.error}}": "ブートストラッパを取得できません。{{.error}}", "Unable to get command runner": "", "Unable to get control plane status: {{.error}}": "", @@ -964,4 +963,4 @@ "{{.profile}} profile is not valid: {{.err}}": "", "{{.type}} is not yet a supported filesystem. We will try anyways!": "{{.type}} はまだサポートされていなファイルシステムです。とにかくやってみます!", "{{.url}} is not accessible: {{.error}}": "{{.url}} はアクセス可能ではありません。 {{.error}}" -} +} \ No newline at end of file diff --git a/translations/ko.json b/translations/ko.json index 9a986a050908..e57897824917 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -55,7 +55,6 @@ "Allow user prompts for more information": "많은 정보를 위해 사용자 프롬프트를 허가합니다", "Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "", "Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "minikube 가상 머신에 할당할 RAM 의 용량 (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)", - "Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "", "Amount of time to wait for a service in seconds": "", "Amount of time to wait for service in seconds": "", "Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "VirtualBox 와 같은 또 다른 하이퍼바이저가 KVM 과 충돌이 발생합니다. 다른 하이퍼바이저를 중단하거나 --driver 로 변경하세요", @@ -283,7 +282,6 @@ "Failed to stop node {{.name}}": "노드 {{.name}} 중지에 실패하였습니다", "Failed to update cluster": "클러스터를 수정하는 데 실패하였습니다", "Failed to update config": "컨피그를 수정하는 데 실패하였습니다", - "Failed to verify '{{.driver_name}} info' will try again ...": "", "Failed unmount: {{.error}}": "마운트 해제에 실패하였습니다: {{.error}}", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -417,7 +415,6 @@ "None of the known repositories in your location are accessible. Using {{.image_repository_name}} as fallback.": "", "Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "", "Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "", - "Number of CPUs allocated to Kubernetes.": "", "Number of lines back to go within the log": "", "OS release is {{.pretty_name}}": "", "One of 'yaml' or 'json'.": "", @@ -705,6 +702,7 @@ "Unable to find control plane": "", "Unable to generate docs": "문서를 생성할 수 없습니다", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "", + "Unable to get CPU info: {{.err}}": "", "Unable to get VM IP address": "가상 머신 IP 주소를 조회할 수 없습니다", "Unable to get command runner": "", "Unable to get control plane status: {{.error}}": "", @@ -961,4 +959,4 @@ "{{.profile}} profile is not valid: {{.err}}": "{{.profile}} 프로파일이 올바르지 않습니다: {{.err}}", "{{.type}} is not yet a supported filesystem. We will try anyways!": "", "{{.url}} is not accessible: {{.error}}": "{{.url}} 이 접근 불가능합니다: {{.error}}" -} +} \ No newline at end of file diff --git a/translations/pl.json b/translations/pl.json index b801df76be82..5bf2f1add205 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -53,7 +53,6 @@ "Allow user prompts for more information": "", "Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "", "Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)": "Ilość zarezerwowanej pamięci RAM dla maszyny wirtualnej minikube (format: \u003cnumber\u003e[\u003cunit\u003e], gdzie jednostka to = b, k, m lub g)", - "Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "", "Amount of time to wait for a service in seconds": "Czas oczekiwania na serwis w sekundach", "Amount of time to wait for service in seconds": "Czas oczekiwania na serwis w sekundach", "Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "Inny hiperwizor, taki jak Virtualbox, powoduje konflikty z KVM. Zatrzymaj innego hiperwizora lub użyj flagi --driver żeby go zmienić.", @@ -270,7 +269,6 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "Aktualizacja klastra nie powiodła się", "Failed to update config": "Aktualizacja konfiguracji nie powiodła się", - "Failed to verify '{{.driver_name}} info' will try again ...": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -716,6 +714,7 @@ "Unable to find control plane": "", "Unable to generate docs": "", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "", + "Unable to get CPU info: {{.err}}": "", "Unable to get command runner": "", "Unable to get control plane status: {{.error}}": "", "Unable to get current user": "", @@ -961,4 +960,4 @@ "{{.profile}} profile is not valid: {{.err}}": "{{.profile}} profil nie jest poprawny: {{.err}}", "{{.type}} is not yet a supported filesystem. We will try anyways!": "{{.type}} nie jest wspierany przez system plików. I tak spróbujemy!", "{{.url}} is not accessible: {{.error}}": "{{.url}} nie jest osiągalny: {{.error}}" -} +} \ No newline at end of file diff --git a/translations/strings.txt b/translations/strings.txt index 4757ac5dced4..33bc73fe51ea 100644 --- a/translations/strings.txt +++ b/translations/strings.txt @@ -47,7 +47,6 @@ "All existing scheduled stops cancelled": "", "Allow user prompts for more information": "", "Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "", - "Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "", "Amount of time to wait for a service in seconds": "", "Amount of time to wait for service in seconds": "", "Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "", @@ -244,7 +243,6 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "", "Failed to update config": "", - "Failed to verify '{{.driver_name}} info' will try again ...": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -371,7 +369,6 @@ "None of the known repositories in your location are accessible. Using {{.image_repository_name}} as fallback.": "", "Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "", "Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "", - "Number of CPUs allocated to Kubernetes.": "", "Number of lines back to go within the log": "", "OS release is {{.pretty_name}}": "", "One of 'yaml' or 'json'.": "", @@ -652,6 +649,7 @@ "Unable to find control plane": "", "Unable to generate docs": "", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "", + "Unable to get CPU info: {{.err}}": "", "Unable to get command runner": "", "Unable to get control plane status: {{.error}}": "", "Unable to get current user": "", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index 2fcb2b1d02e9..b5b3a00c7f8b 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -333,7 +333,6 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "更新 cluster 失败", "Failed to update config": "更新 config 失败", - "Failed to verify '{{.driver_name}} info' will try again ...": "", "Failed unmount: {{.error}}": "unmount 失败:{{.error}}", "File permissions used for the mount": "用于 mount 的文件权限", "Filter to use only VM Drivers": "", @@ -480,7 +479,6 @@ "None of the known repositories is accessible. Consider specifying an alternative image repository with --image-repository flag": "已知存储库都无法访问。请考虑使用 --image-repository 标志指定备选镜像存储库", "Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "", "Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "", - "Number of CPUs allocated to Kubernetes.": "", "Number of CPUs allocated to the minikube VM": "分配给 minikube 虚拟机的 CPU 的数量", "Number of lines back to go within the log": "", "OS release is {{.pretty_name}}": "", @@ -807,6 +805,7 @@ "Unable to find control plane": "", "Unable to generate docs": "", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "", + "Unable to get CPU info: {{.err}}": "", "Unable to get bootstrapper: {{.error}}": "无法获取引导程序:{{.error}}", "Unable to get command runner": "", "Unable to get control plane status: {{.error}}": "",