From e6d95b82305ca7e48c9d4a34706b50795f3f4f24 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Tue, 27 Dec 2022 11:35:49 -0800 Subject: [PATCH 1/3] implement --static-ip flag --- cmd/minikube/cmd/start.go | 30 ++++++++++ cmd/minikube/cmd/start_flags.go | 7 +++ cmd/minikube/cmd/start_test.go | 59 +++++++++++++++++++ pkg/drivers/kic/kic.go | 15 ++++- pkg/drivers/kic/oci/network_create.go | 12 +++- pkg/drivers/kic/types.go | 3 +- pkg/minikube/config/types.go | 1 + pkg/minikube/reason/reason.go | 2 + pkg/minikube/registry/drvs/docker/docker.go | 1 + site/content/en/docs/commands/start.md | 1 + site/content/en/docs/contrib/errorcodes.en.md | 3 + site/content/en/docs/contrib/tests.en.md | 3 + test/integration/kic_custom_network_test.go | 30 +++++++++- translations/de.json | 4 ++ translations/es.json | 4 ++ translations/fr.json | 4 ++ translations/ja.json | 4 ++ translations/ko.json | 4 ++ translations/pl.json | 4 ++ translations/ru.json | 4 ++ translations/strings.txt | 4 ++ translations/zh-CN.json | 4 ++ 22 files changed, 197 insertions(+), 6 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 758fd2097a34..17ea53033d3a 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -1228,6 +1228,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.IsSSH(drvName) { sshIPAddress := viper.GetString(sshIPAddress) if sshIPAddress == "" { @@ -1772,6 +1778,30 @@ func validateSubnet(subnet string) error { return nil } +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 validateBareMetal(drvName string) { if !driver.BareMetal(drvName) { return 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 ef4a1f854a36..4f4cb92d7354 100644 --- a/cmd/minikube/cmd/start_test.go +++ b/cmd/minikube/cmd/start_test.go @@ -665,3 +665,62 @@ func TestValidateSubnet(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 d3e6100f6ceb..0f2b07ce99a1 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": "", From d47bb1a5acf00efac8618bead97d5d85275f93cd Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Wed, 4 Jan 2023 12:55:35 -0800 Subject: [PATCH 2/3] add FAQ and tutorial for static IP --- site/content/en/docs/faq/_index.md | 6 +++ site/content/en/docs/tutorials/static_ip.md | 51 +++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 site/content/en/docs/tutorials/static_ip.md diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 701da92a7d8d..9c5a847e155f 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -159,3 +159,9 @@ $env:MINIKUBE_HOME = "D:\.minikube" minikube start ``` + +## Can I set a static IP for the minikube cluster? + +Currently a static IP can only be set when using the Docker or Podman driver. + +For more details see the [static IP tutorial]({{< ref "docs/tutorials/static_ip.md" >}}). diff --git a/site/content/en/docs/tutorials/static_ip.md b/site/content/en/docs/tutorials/static_ip.md new file mode 100644 index 000000000000..6c416f946010 --- /dev/null +++ b/site/content/en/docs/tutorials/static_ip.md @@ -0,0 +1,51 @@ +--- +title: "Setting a Static IP for a Cluster" +linkTitle: "Setting a Static IP for a Cluster" +weight: 1 +date: 2023-01-04 +--- + +## Overview + +This tutorial will show you how to create a minikube cluster with a static IP. + +## Prerequisites + +- minikube v1.29.0 or higher +- Docker or Podman driver + +## Selecting a static IP + +The static IP must be IPv4, private, and the last octet must be between 2-254 (X.X.X.2 - X.X.X.254). + +Valid static IPs:
+10.0.0.2 - 10.255.255.254
+172.16.0.2 - 172.31.255.254
+192.168.0.2 - 192.168.255.254 + +## Tutorial + +Use the `--static-ip` flag on `minikube start` to set the static IP. + +**Note:** You cannot add a static IP to an existing cluster, you have to delete and recreate the cluster with the flag. + +``` +$ minikube start --driver docker --static-ip 192.168.200.200 +😄 minikube v1.28.0 on Darwin 13.1 (arm64) +✨ Using the docker driver based on user configuration +📌 Using Docker Desktop driver with root privileges +👍 Starting control plane node minikube in cluster minikube +🚜 Pulling base image ... +🔥 Creating docker container (CPUs=2, Memory=4000MB) ... +🐳 Preparing Kubernetes v1.25.3 on Docker 20.10.21 ... + ▪ Generating certificates and keys ... + ▪ Booting up control plane ... + ▪ Configuring RBAC rules ... +🔎 Verifying Kubernetes components... + ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5 +🌟 Enabled addons: default-storageclass +🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default + +$ minikube ip +192.168.200.200 +``` From 6e2511d9f1b8922ac585aec594f7f916c5b7cc85 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Wed, 4 Jan 2023 13:22:57 -0800 Subject: [PATCH 3/3] add example of static IP in docs --- cmd/minikube/cmd/start.go | 2 +- cmd/minikube/cmd/start_flags.go | 2 +- cmd/minikube/cmd/start_test.go | 6 +++--- site/content/en/docs/commands/start.md | 2 +- translations/de.json | 2 +- translations/es.json | 2 +- translations/fr.json | 2 +- translations/ja.json | 2 +- translations/ko.json | 2 +- translations/pl.json | 2 +- translations/ru.json | 2 +- translations/strings.txt | 2 +- translations/zh-CN.json | 2 +- 13 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 17ea53033d3a..fe99b99b0d3c 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -1797,7 +1797,7 @@ func validateStaticIP(staticIP, drvName, subnet string) error { } 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 fmt.Errorf("static IPs last octet must be between 2 and 254 (X.X.X.2 - X.X.X.254), for example 192.168.200.200") } return nil } diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index 92b3d231637c..aea0a1752040 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -201,7 +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)") + 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, for example 192.168.200.200 (Docker and Podman drivers only)") } // initKubernetesFlags inits the commandline flags for Kubernetes related options diff --git a/cmd/minikube/cmd/start_test.go b/cmd/minikube/cmd/start_test.go index 4f4cb92d7354..9b0088f1e3a7 100644 --- a/cmd/minikube/cmd/start_test.go +++ b/cmd/minikube/cmd/start_test.go @@ -690,17 +690,17 @@ func TestValidateStaticIP(t *testing.T) { { 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)", + errorMsg: "static IPs last octet must be between 2 and 254 (X.X.X.2 - X.X.X.254), for example 192.168.200.200", }, { 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)", + errorMsg: "static IPs last octet must be between 2 and 254 (X.X.X.2 - X.X.X.254), for example 192.168.200.200", }, { 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)", + errorMsg: "static IPs last octet must be between 2 and 254 (X.X.X.2 - X.X.X.254), for example 192.168.200.200", }, { staticIP: "192.168.49.2", diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index 2c4263cef5e2..74f3a0859c80 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -111,7 +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) + --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, for example 192.168.200.200 (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/translations/de.json b/translations/de.json index e0a3c4efb859..1899316a65ec 100644 --- a/translations/de.json +++ b/translations/de.json @@ -586,7 +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 a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (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", diff --git a/translations/es.json b/translations/es.json index 58b1acbb5a64..5ff53bd23a45 100644 --- a/translations/es.json +++ b/translations/es.json @@ -592,7 +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 a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", diff --git a/translations/fr.json b/translations/fr.json index 9a844c56326d..d7184509b323 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -570,7 +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 a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (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)", diff --git a/translations/ja.json b/translations/ja.json index e9f9b9dd64e4..878f283b38ce 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -552,7 +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 a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (Docker and Podman drivers only)": "", "Set failed": "設定に失敗しました", "Set flag to delete all profiles": "全プロファイルを削除します", "Set flag to stop all profiles (clusters)": "全プロファイル (クラスター) を停止します", diff --git a/translations/ko.json b/translations/ko.json index 0f2b07ce99a1..5290809051f6 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -602,7 +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 a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (Docker and Podman drivers only)": "", "Set failed": "설정이 실패하였습니다", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", diff --git a/translations/pl.json b/translations/pl.json index 8f1c06e1be5b..7c94161ea3c8 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -604,7 +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 a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", diff --git a/translations/ru.json b/translations/ru.json index 706385afeee2..a366b53fcbb8 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -550,7 +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 a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", diff --git a/translations/strings.txt b/translations/strings.txt index 49d2e4970f7f..96b20fc9dbd6 100644 --- a/translations/strings.txt +++ b/translations/strings.txt @@ -550,7 +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 a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "", "Set flag to stop all profiles (clusters)": "", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index d8656c244fe6..e6c661863681 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -686,7 +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 a static IP for the minikube cluster, the IP must be: private, IPv4, and the last octet must be between 2 and 254, for example 192.168.200.200 (Docker and Podman drivers only)": "", "Set failed": "", "Set flag to delete all profiles": "设置标志以删除所有配置文件", "Set flag to stop all profiles (clusters)": "",