diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index d62eeb35f669..abf00ff1fb27 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -1220,6 +1220,12 @@ func validateFlags(cmd *cobra.Command, drvName string) { validateCNI(cmd, viper.GetString(containerRuntime)) } + if cmd.Flags().Changed(staticIP) { + if err := validateStaticIP(viper.GetString(staticIP), drvName, viper.GetString(subnet)); err != nil { + exit.Message(reason.Usage, "{{.err}}", out.V{"err": err}) + } + } + if driver.BareMetal(drvName) { if ClusterFlagValue() != constants.DefaultClusterName { exit.Message(reason.DrvUnsupportedProfile, "The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/", out.V{"name": drvName}) @@ -1763,6 +1769,30 @@ func validateDockerStorageDriver(drvName string) { viper.Set(preload, false) } +func validateStaticIP(staticIP, drvName, subnet string) error { + if !driver.IsKIC(drvName) { + if staticIP != "" { + out.WarningT("--static-ip is only implemented on Docker and Podman drivers, flag will be ignored") + } + return nil + } + if subnet != "" { + out.WarningT("--static-ip overrides --subnet, --subnet will be ignored") + } + ip := net.ParseIP(staticIP) + if !ip.IsPrivate() { + return fmt.Errorf("static IP must be private") + } + if ip.To4() == nil { + return fmt.Errorf("static IP must be IPv4") + } + lastOctet, _ := strconv.Atoi(strings.Split(ip.String(), ".")[3]) + if lastOctet < 2 || lastOctet > 254 { + return fmt.Errorf("static IPs last octet must be between 2 and 254 (ex. X.X.X.2 - X.X.X.254)") + } + return nil +} + func exitIfNotForced(r reason.Kind, message string, v ...out.V) { if !viper.GetBool(force) { exit.Message(r, message, v...) diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index ba1e1857bdcb..92b3d231637c 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -140,6 +140,7 @@ const ( qemuFirmwarePath = "qemu-firmware-path" socketVMnetClientPath = "socket-vmnet-client-path" socketVMnetPath = "socket-vmnet-path" + staticIP = "static-ip" ) var ( @@ -200,6 +201,7 @@ func initMinikubeFlags() { startCmd.Flags().String(binaryMirror, "", "Location to fetch kubectl, kubelet, & kubeadm binaries from.") startCmd.Flags().Bool(disableOptimizations, false, "If set, disables optimizations that are set for local Kubernetes. Including decreasing CoreDNS replicas from 2 to 1. Defaults to false.") startCmd.Flags().Bool(disableMetrics, false, "If set, disables metrics reporting (CPU and memory usage), this can improve CPU usage. Defaults to false.") + startCmd.Flags().String(staticIP, "", "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)") } // initKubernetesFlags inits the commandline flags for Kubernetes related options @@ -571,6 +573,7 @@ func generateNewConfigFromFlags(cmd *cobra.Command, k8sVersion string, rtime str CustomQemuFirmwarePath: viper.GetString(qemuFirmwarePath), SocketVMnetClientPath: viper.GetString(socketVMnetClientPath), SocketVMnetPath: viper.GetString(socketVMnetPath), + StaticIP: viper.GetString(staticIP), KubernetesConfig: config.KubernetesConfig{ KubernetesVersion: k8sVersion, ClusterName: ClusterFlagValue(), @@ -747,6 +750,10 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing *config.ClusterC out.WarningT("You cannot add or remove extra disks for an existing minikube cluster. Please first delete the cluster.") } + if cmd.Flags().Changed(staticIP) && viper.GetString(staticIP) != existing.StaticIP { + out.WarningT("You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.") + } + updateBoolFromFlag(cmd, &cc.KeepContext, keepContext) updateBoolFromFlag(cmd, &cc.EmbedCerts, embedCerts) updateStringFromFlag(cmd, &cc.MinikubeISO, isoURL) diff --git a/cmd/minikube/cmd/start_test.go b/cmd/minikube/cmd/start_test.go index 5b5201a4be39..c6e9506d5c3b 100644 --- a/cmd/minikube/cmd/start_test.go +++ b/cmd/minikube/cmd/start_test.go @@ -628,3 +628,62 @@ func TestValidatePorts(t *testing.T) { }) } } + +func TestValidateStaticIP(t *testing.T) { + tests := []struct { + staticIP string + drvName string + errorMsg string + }{ + { + staticIP: "8.8.8.8", + drvName: "docker", + errorMsg: "static IP must be private", + }, + { + staticIP: "8.8.8.8", + drvName: "hyperkit", + errorMsg: "", + }, + { + staticIP: "fdfc:a4c0:e99e:7ad3::", + drvName: "docker", + errorMsg: "static IP must be IPv4", + }, + { + staticIP: "192.168.49.0", + drvName: "docker", + errorMsg: "static IPs last octet must be between 2 and 254 (ex. X.X.X.2 - X.X.X.254)", + }, + { + staticIP: "192.168.49.1", + drvName: "docker", + errorMsg: "static IPs last octet must be between 2 and 254 (ex. X.X.X.2 - X.X.X.254)", + }, + { + staticIP: "192.168.49.255", + drvName: "docker", + errorMsg: "static IPs last octet must be between 2 and 254 (ex. X.X.X.2 - X.X.X.254)", + }, + { + staticIP: "192.168.49.2", + drvName: "docker", + errorMsg: "", + }, + { + staticIP: "192.168.49.254", + drvName: "docker", + errorMsg: "", + }, + } + for _, tt := range tests { + gotError := "" + got := validateStaticIP(tt.staticIP, tt.drvName, "") + if got != nil { + gotError = got.Error() + } + if gotError != tt.errorMsg { + t.Errorf("validateStaticIP(%s, %s): got %v, expected %v", tt.staticIP, tt.drvName, got, tt.errorMsg) + } + } +} diff --git a/pkg/drivers/kic/kic.go b/pkg/drivers/kic/kic.go index a877d2a0b8cb..3596a9c243c8 100644 --- a/pkg/drivers/kic/kic.go +++ b/pkg/drivers/kic/kic.go @@ -41,7 +41,9 @@ import ( "k8s.io/minikube/pkg/minikube/cruntime" "k8s.io/minikube/pkg/minikube/download" "k8s.io/minikube/pkg/minikube/driver" + "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/out" + "k8s.io/minikube/pkg/minikube/reason" "k8s.io/minikube/pkg/minikube/style" "k8s.io/minikube/pkg/minikube/sysinit" "k8s.io/minikube/pkg/util/retry" @@ -92,8 +94,17 @@ func (d *Driver) Create() error { if networkName == "" { networkName = d.NodeConfig.ClusterName } - if gateway, err := oci.CreateNetwork(d.OCIBinary, networkName, d.NodeConfig.Subnet); err != nil { - out.WarningT("Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}", out.V{"error": err}) + staticIP := d.NodeConfig.StaticIP + if gateway, err := oci.CreateNetwork(d.OCIBinary, networkName, d.NodeConfig.Subnet, staticIP); err != nil { + msg := "Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}" + args := out.V{"error": err} + if staticIP != "" { + exit.Message(reason.IfDedicatedNetwork, msg, args) + } + out.WarningT(msg, args) + } else if gateway != nil && staticIP != "" { + params.Network = networkName + params.IP = staticIP } else if gateway != nil { params.Network = networkName ip := gateway.To4() diff --git a/pkg/drivers/kic/oci/network_create.go b/pkg/drivers/kic/oci/network_create.go index aaccbe651b43..aad123867c2a 100644 --- a/pkg/drivers/kic/oci/network_create.go +++ b/pkg/drivers/kic/oci/network_create.go @@ -63,7 +63,7 @@ func firstSubnetAddr(subnet string) string { } // CreateNetwork creates a network returns gateway and error, minikube creates one network per cluster -func CreateNetwork(ociBin, networkName, subnet string) (net.IP, error) { +func CreateNetwork(ociBin, networkName, subnet, staticIP string) (net.IP, error) { defaultBridgeName := defaultBridgeName(ociBin) if networkName == defaultBridgeName { klog.Infof("skipping creating network since default network %s was specified", networkName) @@ -84,12 +84,20 @@ func CreateNetwork(ociBin, networkName, subnet string) (net.IP, error) { klog.Warningf("failed to get mtu information from the %s's default network %q: %v", ociBin, defaultBridgeName, err) } + tries := 20 + + // we don't want to increment the subnet IP on network creation failure if the user specifies a static IP, so set tries to 1 + if staticIP != "" { + tries = 1 + subnet = staticIP + } + // retry up to 5 times to create container network for attempts, subnetAddr := 0, firstSubnetAddr(subnet); attempts < 5; attempts++ { // Rather than iterate through all of the valid subnets, give up at 20 to avoid a lengthy user delay for something that is unlikely to work. // will be like 192.168.49.0/24,..., 192.168.220.0/24 (in increment steps of 9) var subnet *network.Parameters - subnet, err = network.FreeSubnet(subnetAddr, 9, 20) + subnet, err = network.FreeSubnet(subnetAddr, 9, tries) if err != nil { klog.Errorf("failed to find free subnet for %s network %s after %d attempts: %v", ociBin, networkName, 20, err) return nil, fmt.Errorf("un-retryable: %w", err) diff --git a/pkg/drivers/kic/types.go b/pkg/drivers/kic/types.go index b56bb7f91436..607cf6ca1bf3 100644 --- a/pkg/drivers/kic/types.go +++ b/pkg/drivers/kic/types.go @@ -64,8 +64,9 @@ type Config struct { Envs map[string]string // key,value of environment variables passed to the node KubernetesVersion string // Kubernetes version to install ContainerRuntime string // container runtime kic is running - Network string // network to run with kic + Network string // network to run with kic Subnet string // subnet to be used on kic cluster + StaticIP string // static IP for the kic cluster ExtraArgs []string // a list of any extra option to pass to oci binary during creation time, for example --expose 8080... ListenAddress string // IP Address to listen to } diff --git a/pkg/minikube/config/types.go b/pkg/minikube/config/types.go index 10e6ef8a8a80..7aec572b8abf 100644 --- a/pkg/minikube/config/types.go +++ b/pkg/minikube/config/types.go @@ -104,6 +104,7 @@ type ClusterConfig struct { CustomQemuFirmwarePath string SocketVMnetClientPath string SocketVMnetPath string + StaticIP string } // KubernetesConfig contains the parameters used to configure the VM Kubernetes. diff --git a/pkg/minikube/reason/reason.go b/pkg/minikube/reason/reason.go index 2068f294d745..d6dd8a79ecfb 100644 --- a/pkg/minikube/reason/reason.go +++ b/pkg/minikube/reason/reason.go @@ -385,6 +385,8 @@ var ( IfMountPort = Kind{ID: "IF_MOUNT_PORT", ExitCode: ExLocalNetworkError} // minikube failed to access an ssh client on the host machine IfSSHClient = Kind{ID: "IF_SSH_CLIENT", ExitCode: ExLocalNetworkError} + // minikube failed to create a dedicated network + IfDedicatedNetwork = Kind{ID: "IF_DEDICATED_NETWORK", ExitCode: ExLocalNetworkError} // minikube failed to cache kubernetes binaries for the current runtime InetCacheBinaries = Kind{ID: "INET_CACHE_BINARIES", ExitCode: ExInternetError} diff --git a/pkg/minikube/registry/drvs/docker/docker.go b/pkg/minikube/registry/drvs/docker/docker.go index 001bc7fef95b..fdbddb4622e7 100644 --- a/pkg/minikube/registry/drvs/docker/docker.go +++ b/pkg/minikube/registry/drvs/docker/docker.go @@ -88,6 +88,7 @@ func configure(cc config.ClusterConfig, n config.Node) (interface{}, error) { ExtraArgs: extraArgs, Network: cc.Network, Subnet: cc.Subnet, + StaticIP: cc.StaticIP, ListenAddress: cc.ListenAddress, }), nil } diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index 19bf2a65e9a4..2c4263cef5e2 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -111,6 +111,7 @@ minikube start [flags] --ssh-key string SSH key (ssh driver only) --ssh-port int SSH port (ssh driver only) (default 22) --ssh-user string SSH user (ssh driver only) (default "root") + --static-ip string Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only) --subnet string Subnet to be used on kic cluster. If left empty, minikube will choose subnet address, beginning from 192.168.49.0. (docker and podman driver only) --trace string Send trace events. Options include: [gcp] --uuid string Provide VM UUID to restore MAC address (hyperkit driver only) diff --git a/site/content/en/docs/contrib/errorcodes.en.md b/site/content/en/docs/contrib/errorcodes.en.md index 135242dec880..a852480d8b1f 100644 --- a/site/content/en/docs/contrib/errorcodes.en.md +++ b/site/content/en/docs/contrib/errorcodes.en.md @@ -358,6 +358,9 @@ minikube failed to parse or find port for mount "IF_SSH_CLIENT" (Exit code ExLocalNetworkError) minikube failed to access an ssh client on the host machine +"IF_DEDICATED_NETWORK" (Exit code ExLocalNetworkError) +minikube failed to create a dedicated network + "INET_CACHE_BINARIES" (Exit code ExInternetError) minikube failed to cache kubernetes binaries for the current runtime diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index a5fd4fe4901a..93b872aecad4 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -455,6 +455,9 @@ verifies the docker driver and run with an existing network ## TestKicCustomSubnet verifies the docker/podman driver works with a custom subnet +## TestKicStaticIP +starts minikube with the static IP flag + ## TestingKicBaseImage will return true if the integraiton test is running against a passed --base-image flag diff --git a/test/integration/kic_custom_network_test.go b/test/integration/kic_custom_network_test.go index 85d2822e09ff..322916290f8c 100644 --- a/test/integration/kic_custom_network_test.go +++ b/test/integration/kic_custom_network_test.go @@ -74,7 +74,7 @@ func TestKicExistingNetwork(t *testing.T) { } // create custom network networkName := "existing-network" - if _, err := oci.CreateNetwork(oci.Docker, networkName, ""); err != nil { + if _, err := oci.CreateNetwork(oci.Docker, networkName, "", ""); err != nil { t.Fatalf("error creating network: %v", err) } defer func() { @@ -117,6 +117,34 @@ func TestKicCustomSubnet(t *testing.T) { verifySubnet(ctx, t, profile, subnet) } +// TestKicStaticIP starts minikube with the static IP flag +func TestKicStaticIP(t *testing.T) { + if !KicDriver() { + t.Skip("only run with docker/podman driver") + } + profile := UniqueProfileName("static-ip") + ctx, cancel := context.WithTimeout(context.Background(), Minutes(5)) + defer Cleanup(t, profile, cancel) + + staticIP := "192.168.200.200" + startArgs := []string{"start", "-p", profile, fmt.Sprintf("--static-ip=%s", staticIP)} + c := exec.CommandContext(ctx, Target(), startArgs...) + rr, err := Run(t, c) + if err != nil { + t.Fatalf("%v failed: %v\n%v", rr.Command(), err, rr.Output()) + } + + c = exec.CommandContext(ctx, Target(), "-p", profile, "ip") + rr, err = Run(t, c) + if err != nil { + t.Fatalf("%s failed: %v\n%s", rr.Command(), err, rr.Output()) + } + + if !strings.Contains(rr.Output(), staticIP) { + t.Errorf("static IP (%s) not found in output %s", staticIP, rr.Output()) + } +} + func verifyNetworkExists(ctx context.Context, t *testing.T, networkName string) { c := exec.CommandContext(ctx, "docker", "network", "ls", "--format", "{{.Name}}") rr, err := Run(t, c) diff --git a/translations/de.json b/translations/de.json index 2b9dd592db2a..e0a3c4efb859 100644 --- a/translations/de.json +++ b/translations/de.json @@ -24,6 +24,8 @@ "--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "Der Parameter --network kann nur mit dem docker/podman und den KVM Treibern verwendet werden, er wird ignoriert werden", "--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "", "--network with QEMU must be 'user' or 'socket_vmnet'": "", + "--static-ip is only implemented on Docker and Podman drivers, flag will be ignored": "", + "--static-ip overrides --subnet, --subnet will be ignored": "", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "1) Erstellen Sie den Cluster mit Kubernetes {{.new}} neu, indem Sie folgende Befehle ausführen:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Erstellen Sie einen zweiten Cluster mit Kubernetes {{.new}}, indem Sie folgende Befehle ausführen:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Verwenden Sie den existierenden Cluster mit Version {{.old}} von Kubernetes, indem Sie folgende Befehle ausführen:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. Klicken Sie auf das \"Docker für Desktop\" Menu Icon\n\t\t\t2. Klicken Sie auf \"Einstellungen\"\n\t\t\t3. Klicken Sie auf \"Resourcen\"\n\t\t\t4. Erhöhen Sie den Wert von \"CPUs\" auf 2 oder mehr\n\t\t\t5. Klicken Sie auf \"Anwenden \u0026 Neustarten\"", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. Klicken Sie auf das \"Docker für Desktop\" Menu Icon\n\t\t\t2. Klicken Sie auf \"Einstellungen\"\n\t\t\t3. Klicken Sie auf \"Resourcen\"\n\t\t\t4. Erhöhen Sie den Wert von \"Speicher\" auf {{.recommend}} oder mehr\n\t\t\t5. Klicken Sie auf \"Anwenden \u0026 Neustarten\"", @@ -584,6 +586,7 @@ "Select a valid value for --dnsdomain": "Wähle einen gültigen Wert für --dnsdomain", "Send trace events. Options include: [gcp]": "Schicke Trace Events. Mögliche Optionen sind [gcp]", "Service '{{.service}}' was not found in '{{.namespace}}' namespace.\nYou may select another namespace by using 'minikube service {{.service}} -n \u003cnamespace\u003e'. Or list out all the services using 'minikube service list'": "Service '{{.service}}' konnte nicht im Namespace '{{.namespace}} gefunden werden.\nEs ist möglich einen anderen Namespace mit 'minikube service {{.service}} -n \u003cnamespace\u003e' auszuwählen. Oder die Liste aller Services anzuzeigen mit 'minikube service list'", + "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)": "", "Set failed": "Setzen fehlgeschlagen", "Set flag to delete all profiles": "Setze Flag um alle Profile zu löschen", "Set flag to stop all profiles (clusters)": "Setze Flag um alle Profile (Cluster) zu stoppen", @@ -899,6 +902,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "Die Anzahl der CPUs eines existierenden Minikube Clusters kann nicht geändert werden. Bitte löschen Sie den Cluster zuerst.", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "Die Plattengröße eines existierenden Minikube Clusters kann nicht geändert werden. Bitte löschen Sie den Cluster zuerst.", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "Die Speichergröße eines existierenden Minikube Clusters kann nicht geändert werden. Bitte löschen Sie den Cluster zuerst.", + "You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue.": "", "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file to in order to continue. The image pull secret has been imported.": "Sie haben sich mit einem Service Account authentifiziert, welcher kein zugehöriges JSON besitzt. GCP Auth benötigt Zugangsdaten in einer JSON-Datei um weitermachen zu können. Das Image Pull Secret wurde importiert.", "You have chosen to disable the CNI but the \"{{.name}}\" container runtime requires CNI": "Sie haben den CNI Treiber deaktiviert, aber die \"{{.name}}\" Container Laufzeitumgebung benötigt ein CNI", diff --git a/translations/es.json b/translations/es.json index 4519be1d823f..58b1acbb5a64 100644 --- a/translations/es.json +++ b/translations/es.json @@ -25,6 +25,8 @@ "--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "el flag --network es válido solamente con docker/podman y KVM, será ignorado", "--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "", "--network with QEMU must be 'user' or 'socket_vmnet'": "", + "--static-ip is only implemented on Docker and Podman drivers, flag will be ignored": "", + "--static-ip overrides --subnet, --subnet will be ignored": "", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", @@ -590,6 +592,7 @@ "Select a valid value for --dnsdomain": "", "Send trace events. Options include: [gcp]": "", "Service '{{.service}}' was not found in '{{.namespace}}' namespace.\nYou may select another namespace by using 'minikube service {{.service}} -n \u003cnamespace\u003e'. Or list out all the services using 'minikube service list'": "", + "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", @@ -899,6 +902,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", + "You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue.": "", "You have chosen to disable the CNI but the \"{{.name}}\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", diff --git a/translations/fr.json b/translations/fr.json index d0d314b4433d..9a844c56326d 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -25,6 +25,8 @@ "--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "l'indicateur --network est valide uniquement avec les pilotes docker/podman et KVM, il va être ignoré", "--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "L'indicateur --network n'est valide qu'avec les pilotes docker/podman, KVM et Qemu, il sera ignoré", "--network with QEMU must be 'user' or 'socket_vmnet'": "--network avec QEMU doit être 'user' ou 'socket_vmnet'", + "--static-ip is only implemented on Docker and Podman drivers, flag will be ignored": "", + "--static-ip overrides --subnet, --subnet will be ignored": "", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete {{.profile}}\n\t\t minikube start {{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start {{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "1) Recréez le cluster avec Kubernetes {{.new}}, en exécutant :\n\t \n\t\t minikube delete {{.profile}}\n\t\t minikube start {{.profile}} - -kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Créez un deuxième cluster avec Kubernetes {{.new}}, en exécutant :\n\t \n \t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Utiliser le cluster existant à la version Kubernetes {{.old}}, en exécutant :\n\t \n\t\t minikube start {{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t \t", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "1) Recréez le cluster avec Kubernetes {{.new}}, en exécutant :\n\t \n\t\t minikube delete {{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Créez un deuxième cluster avec Kubernetes {{.new}}, en exécutant :\n\t \n \t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Utiliser le cluster existant à la version Kubernetes {{.old}}, en exécutant :\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t \t", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. Cliquez sur l'icône de menu \"Docker for Desktop\"\n\t\t\t2. Cliquez sur \"Preferences\"\n\t\t\t3. Cliquez sur \"Ressources\"\n\t\t\t4. Augmentez la barre de défilement \"CPU\" à 2 ou plus\n\t\t\t5. Cliquez sur \"Apply \u0026 Restart\"", @@ -568,6 +570,7 @@ "Select a valid value for --dnsdomain": "Sélectionnez une valeur valide pour --dnsdomain", "Send trace events. Options include: [gcp]": "Envoyer des événements de trace. Les options incluent : [gcp]", "Service '{{.service}}' was not found in '{{.namespace}}' namespace.\nYou may select another namespace by using 'minikube service {{.service}} -n \u003cnamespace\u003e'. Or list out all the services using 'minikube service list'": "Le service '{{.service}}' n'a pas été trouvé dans l'espace de noms '{{.namespace}}'.\nVous pouvez sélectionner un autre espace de noms en utilisant 'minikube service {{.service}} -n \u003cnamespace\u003e'. Ou répertoriez tous les services à l'aide de 'minikube service list'", + "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)": "", "Set failed": "Échec de la définition", "Set flag to delete all profiles": "Définir un indicateur pour supprimer tous les profils", "Set flag to stop all profiles (clusters)": "Définir un indicateur pour arrêter tous les profils (clusters)", @@ -872,6 +875,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "Vous ne pouvez pas modifier les processeurs d'un cluster minikube existant. Veuillez d'abord supprimer le cluster.", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "Vous ne pouvez pas modifier la taille du disque pour un cluster minikube existant. Veuillez d'abord supprimer le cluster.", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "Vous ne pouvez pas modifier la taille de la mémoire d'un cluster minikube existant. Veuillez d'abord supprimer le cluster.", + "You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue.": "Vous vous êtes authentifié avec un compte de service qui n'a pas de fichier JSON associé. Le module complémentaire GCP Auth nécessite des informations d'identification avec un fichier JSON pour continuer.", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "Vous vous êtes authentifié avec un compte de service qui n'a pas de fichier JSON associé. Le module complémentaire GCP Auth nécessite des informations d'identification avec un fichier JSON pour continuer. Le secret d'extraction d'image a été importé.", "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "Vous vous êtes authentifié avec un compte de service qui n'a pas de fichier JSON associé. L'authentification GCP nécessite des informations d'identification avec un fichier JSON pour continuer. Le secret d'extraction d'image a été importé.", diff --git a/translations/ja.json b/translations/ja.json index 3ba905c11817..e9f9b9dd64e4 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -24,6 +24,8 @@ "--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "--network フラグは、docker/podman および KVM ドライバーでのみ有効であるため、無視されます", "--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "--network フラグは、docker/podman, KVM および Qemu ドライバーでのみ有効であるため、無視されます", "--network with QEMU must be 'user' or 'socket_vmnet'": "QEMU を用いる場合、--network は、'user' か 'socket_vmnet' でなければなりません", + "--static-ip is only implemented on Docker and Podman drivers, flag will be ignored": "", + "--static-ip overrides --subnet, --subnet will be ignored": "", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "1) 次のコマンドで Kubernetes {{.new}} によるクラスターを再構築します:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) 次のコマンドで Kubernetes {{.new}} による第 2 のクラスターを作成します:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) 次のコマンドで Kubernetes {{.old}} による既存クラスターを使用します:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. 「Docker for Desktop」メニューアイコンをクリックします\n\t\t\t2. 「Preferences」をクリックします\n\t\t\t3. 「Resources」をクリックします\n\t\t\t4. 「CPUs」スライドバーを 2 以上に増やします\n\t\t\t5. 「Apply \u0026 Restart」をクリックします", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. 「Docker for Desktop」メニューアイコンをクリックします\n\t\t\t2. 「Preferences」をクリックします\n\t\t\t3. 「Resources」をクリックします\n\t\t\t4. 「Memory」スライドバーを {{.recommend}} 以上に増やします\n\t\t\t5. 「Apply \u0026 Restart」をクリックします", @@ -550,6 +552,7 @@ "Select a valid value for --dnsdomain": "--dnsdomain に有効な値を選択してください", "Send trace events. Options include: [gcp]": "トレースイベントを送信します。含まれるオプション: [gcp]", "Service '{{.service}}' was not found in '{{.namespace}}' namespace.\nYou may select another namespace by using 'minikube service {{.service}} -n \u003cnamespace\u003e'. Or list out all the services using 'minikube service list'": "'{{.namespace}}' ネームスペース中に '{{.service}}' サービスが見つかりませんでした。\n'minikube service {{.service}} -n \u003cnamespace\u003e' を使って別のネームスペースを選択できます。または、'minikube service list' を使って全サービスを一覧表示してください", + "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)": "", "Set failed": "設定に失敗しました", "Set flag to delete all profiles": "全プロファイルを削除します", "Set flag to stop all profiles (clusters)": "全プロファイル (クラスター) を停止します", @@ -835,6 +838,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、CPU を変更できません。最初にクラスターを削除してください。", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、ディスクサイズを変更できません。最初にクラスターを削除してください。", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、メモリサイズを変更できません。最初にクラスターを削除してください。", + "You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "関連する JSON ファイルがないサービスアカウントで認証しています。GCP Auth アドオンは、作業を続行するために JSON ファイル付きクレデンシャルを要求します。イメージ取得シークレットがインポートされました。", "You have chosen to disable the CNI but the \"{{.name}}\" container runtime requires CNI": "CNI 無効が選択されましたが、「{{.name}}」コンテナランタイムは CNI が必要です", diff --git a/translations/ko.json b/translations/ko.json index 2fba0893d8c2..31a595b687f9 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -29,6 +29,8 @@ "--kvm-numa-count range is 1-8": "--kvm-numa-count 범위는 1부터 8입니다", "--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "--network 는 docker나 podman 에서만 유효합니다. KVM이나 Qemu 드라이버에서는 인자가 무시됩니다", "--network with QEMU must be 'user' or 'socket_vmnet'": "", + "--static-ip is only implemented on Docker and Podman drivers, flag will be ignored": "", + "--static-ip overrides --subnet, --subnet will be ignored": "", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", @@ -600,6 +602,7 @@ "Select a valid value for --dnsdomain": "", "Send trace events. Options include: [gcp]": "", "Service '{{.service}}' was not found in '{{.namespace}}' namespace.\nYou may select another namespace by using 'minikube service {{.service}} -n \u003cnamespace\u003e'. Or list out all the services using 'minikube service list'": "", + "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)": "", "Set failed": "설정이 실패하였습니다", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", @@ -898,6 +901,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", + "You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue.": "", "You have chosen to disable the CNI but the \"{{.name}}\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", diff --git a/translations/pl.json b/translations/pl.json index 12da0142047b..8f1c06e1be5b 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -28,6 +28,8 @@ "--kvm-numa-count range is 1-8": "", "--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "", "--network with QEMU must be 'user' or 'socket_vmnet'": "", + "--static-ip is only implemented on Docker and Podman drivers, flag will be ignored": "", + "--static-ip overrides --subnet, --subnet will be ignored": "", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", @@ -602,6 +604,7 @@ "Select a valid value for --dnsdomain": "", "Send trace events. Options include: [gcp]": "", "Service '{{.service}}' was not found in '{{.namespace}}' namespace.\nYou may select another namespace by using 'minikube service {{.service}} -n \u003cnamespace\u003e'. Or list out all the services using 'minikube service list'": "", + "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", @@ -910,6 +913,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", + "You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue.": "", "You have chosen to disable the CNI but the \"{{.name}}\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", diff --git a/translations/ru.json b/translations/ru.json index 38f5f6f2b092..706385afeee2 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -23,6 +23,8 @@ "--kvm-numa-count range is 1-8": "", "--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "", "--network with QEMU must be 'user' or 'socket_vmnet'": "", + "--static-ip is only implemented on Docker and Podman drivers, flag will be ignored": "", + "--static-ip overrides --subnet, --subnet will be ignored": "", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "1) Пересоздайте кластер с Kubernetes {{.new}}, выполнив:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Создайье второй кластер с Kubernetes {{.new}}, выполнив:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Используйте существующий кластер с версией Kubernetes {{.old}}, выполнив:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. Кликните на иконку \"Docker for Desktop\"\n\t\t\t2. Выберите \"Preferences\"\n\t\t\t3. Нажмите \"Resources\"\n\t\t\t4. Увеличьте кол-во \"CPUs\" до 2 или выше\n\t\t\t5. Нажмите \"Apply \u0026 Перезапуск\"", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "1. Кликните на иконку \"Docker for Desktop\"\n\t\t\t2. Выберите \"Preferences\"\n\t\t\t3. Нажмите \"Resources\"\n\t\t\t4. Увеличьте кол-во \"emory\" до {{.recommend}} или выше\n\t\t\t5. Нажмите \"Apply \u0026 Перезапуск\"", @@ -548,6 +550,7 @@ "Select a valid value for --dnsdomain": "", "Send trace events. Options include: [gcp]": "", "Service '{{.service}}' was not found in '{{.namespace}}' namespace.\nYou may select another namespace by using 'minikube service {{.service}} -n \u003cnamespace\u003e'. Or list out all the services using 'minikube service list'": "", + "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", @@ -831,6 +834,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", + "You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue.": "", "You have chosen to disable the CNI but the \"{{.name}}\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", diff --git a/translations/strings.txt b/translations/strings.txt index 6c1d0abed0df..49d2e4970f7f 100644 --- a/translations/strings.txt +++ b/translations/strings.txt @@ -23,6 +23,8 @@ "--kvm-numa-count range is 1-8": "", "--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "", "--network with QEMU must be 'user' or 'socket_vmnet'": "", + "--static-ip is only implemented on Docker and Podman drivers, flag will be ignored": "", + "--static-ip overrides --subnet, --subnet will be ignored": "", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", @@ -548,6 +550,7 @@ "Select a valid value for --dnsdomain": "", "Send trace events. Options include: [gcp]": "", "Service '{{.service}}' was not found in '{{.namespace}}' namespace.\nYou may select another namespace by using 'minikube service {{.service}} -n \u003cnamespace\u003e'. Or list out all the services using 'minikube service list'": "", + "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", @@ -831,6 +834,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", + "You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue.": "", "You have chosen to disable the CNI but the \"{{.name}}\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index b3d8ef157a66..d8656c244fe6 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -31,6 +31,8 @@ "--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "--network 标识仅对 docker/podman 和 KVM 驱动程序有效,它将被忽略", "--network flag is only valid with the docker/podman, KVM and Qemu drivers, it will be ignored": "", "--network with QEMU must be 'user' or 'socket_vmnet'": "", + "--static-ip is only implemented on Docker and Podman drivers, flag will be ignored": "", + "--static-ip overrides --subnet, --subnet will be ignored": "", "1) Recreate the cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube delete{{.profile}}\n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t2) Create a second cluster with Kubernetes {{.new}}, by running:\n\t \n\t\t minikube start -p {{.suggestedName}} --kubernetes-version={{.prefix}}{{.new}}\n\t \n\t\t3) Use the existing cluster at version Kubernetes {{.old}}, by running:\n\t \n\t\t minikube start{{.profile}} --kubernetes-version={{.prefix}}{{.old}}\n\t\t": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"CPUs\" slider bar to 2 or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", "1. Click on \"Docker for Desktop\" menu icon\n\t\t\t2. Click \"Preferences\"\n\t\t\t3. Click \"Resources\"\n\t\t\t4. Increase \"Memory\" slider bar to {{.recommend}} or higher\n\t\t\t5. Click \"Apply \u0026 Restart\"": "", @@ -684,6 +686,7 @@ "Selecting '{{.driver}}' driver from user configuration (alternates: {{.alternates}})": "从用户配置中选择 {{.driver}}' 驱动程序(可选:{{.alternates}})", "Send trace events. Options include: [gcp]": "", "Service '{{.service}}' was not found in '{{.namespace}}' namespace.\nYou may select another namespace by using 'minikube service {{.service}} -n \u003cnamespace\u003e'. Or list out all the services using 'minikube service list'": "", + "Set a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "设置标志以删除所有配置文件", "Set flag to stop all profiles (clusters)": "", @@ -1018,6 +1021,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", + "You cannot change the static IP of an existing minikube cluster. Please first delete the cluster.": "", "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue.": "", "You have chosen to disable the CNI but the \"{{.name}}\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "",