+
+
+
+
diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md
index 119eef71edac..b33a96a8eced 100644
--- a/site/content/en/docs/contrib/tests.en.md
+++ b/site/content/en/docs/contrib/tests.en.md
@@ -42,6 +42,11 @@ tests the GCP Auth addon with either phony or real credentials and makes sure th
## TestCertOptions
makes sure minikube certs respect the --apiserver-ips and --apiserver-names parameters
+## TestCertExpiration
+makes sure minikube can start after its profile certs have expired.
+It does this by configuring minikube certs to expire after 3 minutes, then waiting 3 minutes, then starting again.
+It also makes sure minikube prints a cert expiration warning to the user.
+
## TestDockerFlags
makes sure the --docker-env and --docker-opt parameters are respected
@@ -54,6 +59,9 @@ makes sure the --force-systemd flag worked with the docker container runtime
#### validateContainerdSystemd
makes sure the --force-systemd flag worked with the containerd container runtime
+#### validateCrioSystemd
+makes sure the --force-systemd flag worked with the cri-o container runtime
+
## TestForceSystemdEnv
makes sure the MINIKUBE_FORCE_SYSTEMD environment variable works just as well as the --force-systemd flag
@@ -75,26 +83,8 @@ are functionality tests which can safely share a profile in parallel
#### validateNodeLabels
checks if minikube cluster is created with correct kubernetes's node label
-#### validateLoadImage
-makes sure that `minikube image load` works as expected
-
-#### validateLoadImageFromFile
-makes sure that `minikube image load` works from a local file
-
-#### validateRemoveImage
-makes sures that `minikube image rm` works as expected
-
-#### validateSaveImage
-makes sure that `minikube image save` works as expected
-
-#### validateSaveImageToFile
-makes sure that `minikube image save` works to a local file
-
-#### validateBuildImage
-makes sures that `minikube image build` works as expected
-
-#### validateListImages
-makes sures that `minikube image ls` works as expected
+#### validateImageCommands
+runs tests on all the `minikube image` commands, ex. `minikube image load`, `minikube image list`, etc.
#### validateDockerEnv
check functionality of minikube after evaluating docker-env
@@ -338,10 +328,6 @@ makes sure no left over left after deleting a profile such as containers or volu
#### validateStatus
makes sure paused clusters show up in minikube status correctly
-## TestDebPackageInstall
-TestPackageInstall tests installation of .deb packages with minikube itself and with kvm2 driver
-on various debian/ubuntu docker images
-
## TestPreload
verifies the preload tarballs get pulled in properly by minikube
diff --git a/site/content/en/docs/drivers/docker.md b/site/content/en/docs/drivers/docker.md
index 1300cd086715..4dad78879b96 100644
--- a/site/content/en/docs/drivers/docker.md
+++ b/site/content/en/docs/drivers/docker.md
@@ -21,7 +21,6 @@ The Docker driver allows you to install Kubernetes into an existing Docker insta
- The following Docker runtime security options are currently *unsupported and will not work* with the Docker driver (see [#9607](https://github.com/kubernetes/minikube/issues/9607)):
- [userns-remap](https://docs.docker.com/engine/security/userns-remap/)
- - [rootless](https://docs.docker.com/engine/security/rootless/)
- On macOS, containers might get hung and require a restart of Docker for Desktop. See [docker/for-mac#1835](https://github.com/docker/for-mac/issues/1835)
diff --git a/site/content/en/docs/drivers/includes/docker_usage.inc b/site/content/en/docs/drivers/includes/docker_usage.inc
index 8b1fd6c694ad..63d50ca323cc 100644
--- a/site/content/en/docs/drivers/includes/docker_usage.inc
+++ b/site/content/en/docs/drivers/includes/docker_usage.inc
@@ -16,3 +16,24 @@ To make docker the default driver:
minikube config set driver docker
```
+## Rootless Docker
+### Requirements
+- Docker 20.10 or higher, see https://rootlesscontaine.rs/getting-started/docker/
+- Cgroup v2 delegation, see https://rootlesscontaine.rs/getting-started/common/cgroup2/
+
+### Usage
+
+Start a cluster using the rootless docker driver:
+
+```shell
+dockerd-rootless-setuptool.sh install -f
+docker context use rootless
+
+minikube start --driver=docker --container-runtime=containerd
+```
+
+The `--container-runtime` flag must be currently set to "containerd".
+
+The restrictions of rootless `kind` apply to minikube with rootless docker as well.
+
+See https://kind.sigs.k8s.io/docs/user/rootless/ .
diff --git a/site/content/en/docs/drivers/podman.md b/site/content/en/docs/drivers/podman.md
index be670dfc57ed..96f7f27ec459 100644
--- a/site/content/en/docs/drivers/podman.md
+++ b/site/content/en/docs/drivers/podman.md
@@ -11,14 +11,13 @@ The podman driver is an alternative container runtime to the [Docker]({{< ref "/
## Requirements
-- Linux operating system
- Install [podman](https://podman.io/getting-started/installation.html)
{{% readfile file="/docs/drivers/includes/podman_usage.inc" %}}
## Known Issues
-- Podman requirements passwordless running of sudo. If you run into an error about sudo, do the following:
+- On Linux, Podman requires passwordless running of sudo. If you run into an error about sudo, do the following:
```shell
$ sudo visudo
@@ -35,6 +34,15 @@ Be sure this text is *after* `#includedir /etc/sudoers.d`. To confirm it worked,
sudo -k -n podman version
```
+- On all other operating systems, make sure to create and start the virtual machine that is needed for Podman.
+
+```shell
+podman machine init --cpus 2 --memory 2048 --disk-size 20
+podman machine start
+podman system connection default podman-machine-default-root
+podman info
+```
+
## Troubleshooting
- Run `minikube start --alsologtostderr -v=7` to debug errors and crashes
diff --git a/site/content/en/docs/handbook/addons/gcp-auth.md b/site/content/en/docs/handbook/addons/gcp-auth.md
index 46f71bbe1d04..21b6d2fe62af 100644
--- a/site/content/en/docs/handbook/addons/gcp-auth.md
+++ b/site/content/en/docs/handbook/addons/gcp-auth.md
@@ -5,9 +5,16 @@ weight: 1
date: 2020-07-15
---
-## Tutorial
-If you have a containerized GCP app with a Kubernetes yaml, you can automatically add your credentials to all your deployed pods dynamically with this minikube addon. You just need to have a credentials file, which can be generated with `gcloud auth application-default login`. If you already have a json credentials file you want specify, use the GOOGLE_APPLICATION_CREDENTIALS environment variable.
+The gcp-auth addon automatically and dynamically configures pods to use your credentials, allowing applications to access Google Cloud services as if they were running within Google Cloud.
+
+The addon normally uses the [Google Application Default Credentials](https://google.aip.dev/auth/4110) as configured with `gcloud auth application-default login`. If you already have a json credentials file you want specify, such as to use a service account, set the GOOGLE_APPLICATION_CREDENTIALS environment variable to point to that file.
+
+The addon normally uses the default gcloud project as configured with `gcloud config set project `. If you want to use a different project, set the `GOOGLE_CLOUD_PROJECT` environment variable to the desired project.
+
+The pods are configured with the `GOOGLE_APPLICATION_DEFAULTS` environment variable is set, which is automatically used by GCP client libraries, and the `GOOGLE_CLOUD_PROJECT` environment variable is set, as are several other historical environment variables. The addon also configures [registry pull secrets](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) to allow the cluster to access container images hosted in your project's [Artifact Registry](https://cloud.google.com/artifact-registry) and [Google Container Registry](https://cloud.google.com/container-registry).
+
+## Tutorial
- Start a cluster:
@@ -90,4 +97,4 @@ If you had already deployed pods to your minikube cluster before enabling the gc
1. If you use a Deployment to deploy your pods, just delete the existing pods with `kubectl delete pod `. The deployment will then automatically recreate the pod and it will have the correct credentials.
-2. minikube can delete and recreate your pods for you, by running `minikube addons enable gcp-auth --refresh`. It does not matter if you have already enabled the addon or not.
\ No newline at end of file
+2. minikube can delete and recreate your pods for you, by running `minikube addons enable gcp-auth --refresh`. It does not matter if you have already enabled the addon or not.
diff --git a/site/content/en/docs/handbook/addons/ingress-dns.md b/site/content/en/docs/handbook/addons/ingress-dns.md
index 5c59e10eda9d..1b10204dfacf 100644
--- a/site/content/en/docs/handbook/addons/ingress-dns.md
+++ b/site/content/en/docs/handbook/addons/ingress-dns.md
@@ -101,8 +101,15 @@ systemctl restart NetworkManager.service
Also see `dns=` in [NetworkManager.conf](https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html).
#### Windows
+Open `Powershell` as Administrator and execute the following
+```sh
+Add-DnsClientNrptRule -Namespace ".test" -NameServers "$(minikube ip)"
+```
-TODO
+The following will remove any matching rules, before creating one. This is helpful if your minikube has a new ip
+```sh
+Get-DnsClientNrptRule | Where-Object {$_.Namespace -eq '.test'} | Remove-DnsClientNrptRule -Force; Add-DnsClientNrptRule -Namespace ".test" -NameServers "$(minikube ip)"
+```
## Testing
diff --git a/site/content/en/docs/handbook/pushing.md b/site/content/en/docs/handbook/pushing.md
index 753ffe96efa7..ac075dbcba2a 100644
--- a/site/content/en/docs/handbook/pushing.md
+++ b/site/content/en/docs/handbook/pushing.md
@@ -31,14 +31,14 @@ Here is a comparison table to help you choose:
| Method | Supported Runtimes | Performance | Load | Build |
|--- |--- |--- |--- |--- |--- |--- |
-| [docker-env command](/docs/handbook/pushing/#1pushing-directly-to-the-in-cluster-docker-daemon-docker-env) | only docker | good | yes | yes |
-| [podman-env command](/docs/handbook/pushing/#3-pushing-directly-to-in-cluster-crio-podman-env) | only cri-o | good | yes | yes |
-| [ctr/buildctl command](/docs/handbook/pushing/#6-pushing-directly-to-in-cluster-containerd-buildkitd) | only containerd | good | yes | yes |
-| [image load command](/docs/handbook/pushing/#7-loading-directly-to-in-cluster-container-runtime) | all | ok | yes | no |
-| [image build command](/docs/handbook/pushing/#8-building-images-to-in-cluster-container-runtime) | all | ok | no | yes |
+| [docker-env command](/docs/handbook/pushing/#1-pushing-directly-to-the-in-cluster-docker-daemon-docker-env) | only docker | good | yes | yes |
| [cache command](/docs/handbook/pushing/#2-push-images-using-cache-command) | all | ok | yes | no |
+| [podman-env command](/docs/handbook/pushing/#3-pushing-directly-to-in-cluster-cri-o-podman-env) | only cri-o | good | yes | yes |
| [registry addon](/docs/handbook/pushing/#4-pushing-to-an-in-cluster-using-registry-addon) | all | ok | yes | no |
| [minikube ssh](/docs/handbook/pushing/#5-building-images-inside-of-minikube-using-ssh) | all | best | yes\* | yes\* |
+| [ctr/buildctl command](/docs/handbook/pushing/#6-pushing-directly-to-in-cluster-containerd-buildkitd) | only containerd | good | yes | yes |
+| [image load command](/docs/handbook/pushing/#7-loading-directly-to-in-cluster-container-runtime) | all | ok | yes | no |
+| [image build command](/docs/handbook/pushing/#8-building-images-to-in-cluster-container-runtime) | all | ok | no | yes |
* note1 : the default container-runtime on minikube is 'docker'.
* note2 : 'none' driver (bare metal) does not need pushing image to the cluster, as any image on your system is already available to the kubernetes.
diff --git a/site/content/en/docs/start/_index.md b/site/content/en/docs/start/_index.md
index 59174dd807e2..69baefb7fcff 100644
--- a/site/content/en/docs/start/_index.md
+++ b/site/content/en/docs/start/_index.md
@@ -425,20 +425,19 @@ choco install minikube
{{% quiz_instruction id="/Windows/x86-64/Stable/.exe download" %}}
1. Download the [latest release](https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe).
- Or if you have `curl` installed, use this command:
- ```shell
- curl -Lo minikube.exe https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe
- New-Item -Path "c:\" -Name "minikube" -ItemType "directory" -Force
- Move-Item .\minikube.exe c:\minikube\minikube.exe -Force
+ Or if using `PowerShell`, use this command:
+ ```powershell
+ New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
+ Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing
```
2. Add the binary in to your `PATH`.
_Make sure to run PowerShell as Administrator._
- ```shell
- $oldpath=[Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine)
- if($oldpath -notlike "*;C:\minikube*"){`
- [Environment]::SetEnvironmentVariable("Path", $oldpath+";C:\minikube", [EnvironmentVariableTarget]::Machine)`
+ ```powershell
+ $oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
+ if ($oldPath.Split(';') -inotcontains 'C:\minikube'){ `
+ [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine) `
}
```
_If you used a CLI to perform the installation, you will need to close that CLI and open a new one before proceeding._
@@ -447,22 +446,22 @@ choco install minikube
{{% quiz_instruction id="/Windows/x86-64/Beta/.exe download" %}}
1. Download the latest beta release.
- Or if you have `curl` installed, use this command:
- ```shell
- $r='https://api.github.com/repos/kubernetes/minikube/releases'
- $u=curl -s $r | Select-String -Pattern 'http.*download/v.*beta.*/minikube-windows-amd64.exe' | Select Matches -First 1
- curl -Lo minikube.exe $u.Matches.Value
- New-Item -Path "c:\" -Name "minikube" -ItemType "directory" -Force
- Move-Item .\minikube.exe c:\minikube\minikube.exe -Force
+ Or if using `PowerShell`, use this command:
+ ```powershell
+ New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
+ $response = Invoke-WebRequest -Uri 'https://api.github.com/repos/kubernetes/minikube/releases' -UseBasicParsing
+ $json = $response.Content | ConvertFrom-Json
+ $item = ($json | ?{ $_.prerelease -eq $true })[0].assets | ?{ $_.name -eq 'minikube-windows-amd64.exe' }
+ Invoke-WebRequest -Uri $item.browser_download_url -OutFile 'c:\minikube\minikube.exe' -UseBasicParsing
```
2. Add the binary in to your `PATH`.
_Make sure to run PowerShell as Administrator._
- ```shell
- $oldpath=[Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine)
- if($oldpath -notlike "*;C:\minikube*"){`
- [Environment]::SetEnvironmentVariable("Path", $oldpath+";C:\minikube", [EnvironmentVariableTarget]::Machine)`
+ ```powershell
+ $oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
+ if ($oldPath.Split(';') -inotcontains 'C:\minikube'){ `
+ [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine) `
}
```
_If you used a CLI to perform the installation, you will need to close that CLI and open a new one before proceeding._
@@ -501,11 +500,15 @@ If you already have kubectl installed, you can now use it to access your shiny n
kubectl get po -A
```
-Alternatively, minikube can download the appropriate version of kubectl, if you don't mind the double-dashes in the command-line:
+Alternatively, minikube can download the appropriate version of kubectl and you should be able to use it like this:
```shell
minikube kubectl -- get po -A
```
+You can also make your life easier by adding the following to your shell config:
+```shell
+alias kubectl="minikube kubectl --"
+```
Initially, some services such as the storage-provisioner, may not yet be in a Running state. This is a normal condition during cluster bring-up, and will resolve itself momentarily. For additional insight into your cluster state, minikube bundles the Kubernetes Dashboard, allowing you to get easily acclimated to your new environment:
diff --git a/site/static/images/benchmarks/timeToK8s/v1.23.0.png b/site/static/images/benchmarks/timeToK8s/v1.23.0.png
new file mode 100644
index 000000000000..ba9e8ab2e600
Binary files /dev/null and b/site/static/images/benchmarks/timeToK8s/v1.23.0.png differ
diff --git a/site/static/images/benchmarks/timeToK8s/v1.23.1.png b/site/static/images/benchmarks/timeToK8s/v1.23.1.png
new file mode 100644
index 000000000000..e3d2fb55dc82
Binary files /dev/null and b/site/static/images/benchmarks/timeToK8s/v1.23.1.png differ
diff --git a/site/static/images/benchmarks/timeToK8s/v1.23.2.png b/site/static/images/benchmarks/timeToK8s/v1.23.2.png
new file mode 100644
index 000000000000..5800a51cfdfb
Binary files /dev/null and b/site/static/images/benchmarks/timeToK8s/v1.23.2.png differ
diff --git a/test/integration/aaa_download_only_test.go b/test/integration/aaa_download_only_test.go
index 0037c98bd629..fca29ccb170c 100644
--- a/test/integration/aaa_download_only_test.go
+++ b/test/integration/aaa_download_only_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/aab_offline_test.go b/test/integration/aab_offline_test.go
index 2b2f29eae2ba..e9f2dbb219e0 100644
--- a/test/integration/aab_offline_test.go
+++ b/test/integration/aab_offline_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go
index df3f02823d50..e8730ac07892 100644
--- a/test/integration/addons_test.go
+++ b/test/integration/addons_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
@@ -68,7 +69,7 @@ func TestAddons(t *testing.T) {
args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=olm", "--addons=volumesnapshots", "--addons=csi-hostpath-driver"}, StartArgs()...)
if !NoneDriver() { // none driver does not support ingress
- args = append(args, "--addons=ingress")
+ args = append(args, "--addons=ingress", "--addons=ingress-dns")
}
if !arm64Platform() {
args = append(args, "--addons=helm-tiller")
@@ -86,10 +87,10 @@ func TestAddons(t *testing.T) {
if detect.IsOnGCE() {
args = []string{"-p", profile, "addons", "enable", "gcp-auth"}
rr, err := Run(t, exec.CommandContext(ctx, Target(), args...))
- if err == nil {
- t.Errorf("Expected error but didn't get one. command %v, output %v", rr.Command(), rr.Output())
+ if err != nil {
+ t.Errorf("%s failed: %v", rr.Command(), err)
} else {
- if !strings.Contains(rr.Output(), "It seems that you are running in GCE") {
+ if !detect.IsCloudShell() && !strings.Contains(rr.Output(), "It seems that you are running in GCE") {
t.Errorf("Unexpected error message: %v", rr.Output())
} else {
// ok, use force here since we are in GCE
@@ -120,7 +121,6 @@ func TestAddons(t *testing.T) {
{"HelmTiller", validateHelmTillerAddon},
{"Olm", validateOlmAddon},
{"CSI", validateCSIDriverAndSnapshots},
- {"GCPAuth", validateGCPAuthAddon},
}
for _, tc := range tests {
tc := tc
@@ -134,6 +134,25 @@ func TestAddons(t *testing.T) {
}
})
+ // Run other tests after to avoid collision
+ t.Run("serial", func(t *testing.T) {
+ tests := []struct {
+ name string
+ validator validateFunc
+ }{
+ {"GCPAuth", validateGCPAuthAddon},
+ }
+ for _, tc := range tests {
+ tc := tc
+ if ctx.Err() == context.DeadlineExceeded {
+ t.Fatalf("Unable to run more tests (deadline exceeded)")
+ }
+ t.Run(tc.name, func(t *testing.T) {
+ tc.validator(ctx, t, profile)
+ })
+ }
+ })
+
t.Run("StoppedEnableDisable", func(t *testing.T) {
// Assert that disable/enable works offline
rr, err := Run(t, exec.CommandContext(ctx, Target(), "stop", "-p", profile))
@@ -155,7 +174,7 @@ func TestAddons(t *testing.T) {
func validateIngressAddon(ctx context.Context, t *testing.T, profile string) {
defer PostMortemLogs(t, profile)
if NoneDriver() {
- t.Skipf("skipping: ingress not supported ")
+ t.Skipf("skipping: ingress not supported")
}
client, err := kapi.Client(profile)
@@ -167,7 +186,7 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) {
// Error from server (InternalError): Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": Post "https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": dial tcp 10.107.218.58:443: i/o timeout
// Error from server (InternalError): Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": Post "https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": context deadline exceeded
if _, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "wait", "--for=condition=ready", "--namespace=ingress-nginx", "pod", "--selector=app.kubernetes.io/component=controller", "--timeout=90s")); err != nil {
- t.Fatalf("failed waititing for ingress-nginx-controller : %v", err)
+ t.Fatalf("failed waiting for ingress-nginx-controller : %v", err)
}
// create networking.k8s.io/v1 ingress
@@ -191,7 +210,7 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) {
t.Errorf("failed to kubectl replace nginx-pod-svc. args %q. %v", rr.Command(), err)
}
- if _, err := PodWait(ctx, t, profile, "default", "run=nginx", Minutes(4)); err != nil {
+ if _, err := PodWait(ctx, t, profile, "default", "run=nginx", Minutes(8)); err != nil {
t.Fatalf("failed waiting for ngnix pod: %v", err)
}
if err := kapi.WaitForService(client, "default", "nginx", true, time.Millisecond*500, Minutes(10)); err != nil {
@@ -203,19 +222,11 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) {
// check if the ingress can route nginx app with networking.k8s.io/v1 ingress
checkv1Ingress := func() error {
- var rr *RunResult
- var err error
- if NoneDriver() { // just run curl directly on the none driver
- rr, err = Run(t, exec.CommandContext(ctx, "curl", "-s", addr, "-H", "'Host: nginx.example.com'"))
- if err != nil {
- return err
- }
- } else {
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "ssh", fmt.Sprintf("curl -s %s -H 'Host: nginx.example.com'", addr)))
- if err != nil {
- return err
- }
+ rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "ssh", fmt.Sprintf("curl -s %s -H 'Host: nginx.example.com'", addr)))
+ if err != nil {
+ return err
}
+
stderr := rr.Stderr.String()
if rr.Stderr.String() != "" {
t.Logf("debug: unexpected stderr for %v:\n%s", rr.Command(), stderr)
@@ -230,6 +241,36 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) {
t.Errorf("failed to get expected response from %s within minikube: %v", addr, err)
}
+ if NeedsPortForward() {
+ t.Skip("skipping ingress DNS test for any combination that needs port forwarding")
+ }
+
+ // check the ingress-dns addon here as well
+ rr, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "replace", "--force", "-f", filepath.Join(*testdataDir, "ingress-dns-example.yaml")))
+ if err != nil {
+ t.Errorf("failed to kubectl replace ingress-dns-example. args %q. %v", rr.Command(), err)
+ }
+
+ rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "ip"))
+ if err != nil {
+ t.Errorf("failed to retrieve minikube ip. args %q : %v", rr.Command(), err)
+ }
+ ip := strings.TrimSuffix(rr.Stdout.String(), "\n")
+
+ rr, err = Run(t, exec.CommandContext(ctx, "nslookup", "hello-john.test", ip))
+ if err != nil {
+ t.Errorf("failed to nslookup hello-john.test host. args %q : %v", rr.Command(), err)
+ }
+ // nslookup should include info about the hello-john.test host, including minikube's ip
+ if !strings.Contains(rr.Stdout.String(), ip) {
+ t.Errorf("unexpected output from nslookup. stdout: %v\nstderr: %v", rr.Stdout.String(), rr.Stderr.String())
+ }
+
+ rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "disable", "ingress-dns", "--alsologtostderr", "-v=1"))
+ if err != nil {
+ t.Errorf("failed to disable ingress-dns addon. args %q : %v", rr.Command(), err)
+ }
+
rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "disable", "ingress", "--alsologtostderr", "-v=1"))
if err != nil {
t.Errorf("failed to disable ingress addon. args %q : %v", rr.Command(), err)
@@ -389,10 +430,10 @@ func validateHelmTillerAddon(ctx context.Context, t *testing.T, profile string)
}
want := "Server: &version.Version"
- // Test from inside the cluster (`helm version` use pod.list permission. we use tiller serviceaccount in kube-system to list pod)
+ // Test from inside the cluster (`helm version` use pod.list permission.)
checkHelmTiller := func() error {
- rr, err := Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "run", "--rm", "helm-test", "--restart=Never", "--image=alpine/helm:2.16.3", "-it", "--namespace=kube-system", "--serviceaccount=tiller", "--", "version"))
+ rr, err := Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "run", "--rm", "helm-test", "--restart=Never", "--image=alpine/helm:2.16.3", "-it", "--namespace=kube-system", "--", "version"))
if err != nil {
return err
}
@@ -663,8 +704,15 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) {
}
}
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "disable", "gcp-auth", "--alsologtostderr", "-v=1"))
- if err != nil {
- t.Errorf("failed disabling gcp-auth addon. arg %q.s %v", rr.Command(), err)
+ disableGCPAuth := func() error {
+ _, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "disable", "gcp-auth", "--alsologtostderr", "-v=1"))
+ if err != nil {
+ return err
+ }
+ return nil
+ }
+
+ if err := retry.Expo(disableGCPAuth, Minutes(2), Minutes(10), 5); err != nil {
+ t.Errorf("failed to disable GCP auth addon: %v", err)
}
}
diff --git a/test/integration/cert_options_test.go b/test/integration/cert_options_test.go
index 6353eac8797b..3ff990b98c22 100644
--- a/test/integration/cert_options_test.go
+++ b/test/integration/cert_options_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
@@ -23,6 +24,7 @@ import (
"os/exec"
"strings"
"testing"
+ "time"
)
// TestCertOptions makes sure minikube certs respect the --apiserver-ips and --apiserver-names parameters
@@ -36,7 +38,6 @@ func TestCertOptions(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), Minutes(30))
defer CleanupWithLogs(t, profile, cancel)
- // Use the most verbose logging for the simplest test. If it fails, something is very wrong.
args := append([]string{"start", "-p", profile, "--memory=2048", "--apiserver-ips=127.0.0.1", "--apiserver-ips=192.168.15.15", "--apiserver-names=localhost", "--apiserver-names=www.google.com", "--apiserver-port=8555"}, StartArgs()...)
// We can safely override --apiserver-name with
@@ -79,3 +80,32 @@ func TestCertOptions(t *testing.T) {
}
}
+
+// TestCertExpiration makes sure minikube can start after its profile certs have expired.
+// It does this by configuring minikube certs to expire after 3 minutes, then waiting 3 minutes, then starting again.
+// It also makes sure minikube prints a cert expiration warning to the user.
+func TestCertExpiration(t *testing.T) {
+ MaybeParallel(t)
+
+ profile := UniqueProfileName("cert-expiration")
+ ctx, cancel := context.WithTimeout(context.Background(), Minutes(30))
+ defer CleanupWithLogs(t, profile, cancel)
+
+ args := append([]string{"start", "-p", profile, "--memory=2048", "--cert-expiration=3m"}, StartArgs()...)
+
+ rr, err := Run(t, exec.CommandContext(ctx, Target(), args...))
+ if err != nil {
+ t.Errorf("failed to start minikube with args: %q : %v", rr.Command(), err)
+ }
+
+ // Now wait 3 minutes for the certs to expire and make sure minikube starts properly
+ time.Sleep(time.Minute * 3)
+ args = append([]string{"start", "-p", profile, "--memory=2048", "--cert-expiration=8760h"}, StartArgs()...)
+ rr, err = Run(t, exec.CommandContext(ctx, Target(), args...))
+ if err != nil {
+ t.Errorf("failed to start minikube after cert expiration: %q : %v", rr.Command(), err)
+ }
+ if !strings.Contains(rr.Output(), "expired") {
+ t.Errorf("minikube start output did not warn about expired certs: %v", rr.Output())
+ }
+}
diff --git a/test/integration/docker_test.go b/test/integration/docker_test.go
index c7db90f6c29d..4b7667690267 100644
--- a/test/integration/docker_test.go
+++ b/test/integration/docker_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
@@ -93,6 +94,8 @@ func TestForceSystemdFlag(t *testing.T) {
validateDockerSystemd(ctx, t, profile)
case "containerd":
validateContainerdSystemd(ctx, t, profile)
+ case "crio":
+ validateCrioSystemd(ctx, t, profile)
}
}
@@ -112,13 +115,25 @@ func validateDockerSystemd(ctx context.Context, t *testing.T, profile string) {
func validateContainerdSystemd(ctx context.Context, t *testing.T, profile string) {
rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "ssh", "cat /etc/containerd/config.toml"))
if err != nil {
- t.Errorf("failed to get docker cgroup driver. args %q: %v", rr.Command(), err)
+ t.Errorf("failed to get containerd cgroup driver. args %q: %v", rr.Command(), err)
}
if !strings.Contains(rr.Output(), "SystemdCgroup = true") {
t.Fatalf("expected systemd cgroup driver, got: %v", rr.Output())
}
}
+// validateCrioSystemd makes sure the --force-systemd flag worked with the cri-o container runtime
+func validateCrioSystemd(ctx context.Context, t *testing.T, profile string) {
+ rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "ssh", "cat /etc/crio/crio.conf"))
+ if err != nil {
+ t.Errorf("failed to get cri-o cgroup driver. args %q: %v", rr.Command(), err)
+ }
+ // cri-o defaults to `systemd` if `cgroup_manager` not set, so we remove `cgroup_manager` on force
+ if strings.Contains(rr.Output(), "cgroup_manager = ") {
+ t.Fatalf("expected systemd cgroup driver, got: %v", rr.Output())
+ }
+}
+
// TestForceSystemdEnv makes sure the MINIKUBE_FORCE_SYSTEMD environment variable works just as well as the --force-systemd flag
func TestForceSystemdEnv(t *testing.T) {
if NoneDriver() {
diff --git a/test/integration/error_spam_test.go b/test/integration/error_spam_test.go
index 6333e5eace6c..95b0c1de0ed6 100644
--- a/test/integration/error_spam_test.go
+++ b/test/integration/error_spam_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go
index 0e011303726c..997095b199af 100644
--- a/test/integration/functional_test.go
+++ b/test/integration/functional_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
@@ -54,6 +55,8 @@ import (
"golang.org/x/build/kubernetes/api"
)
+const addonResizer = "gcr.io/google-containers/addon-resizer"
+
// validateFunc are for subtests that share a single setup
type validateFunc func(context.Context, *testing.T, string)
@@ -150,13 +153,7 @@ func TestFunctional(t *testing.T) {
{"DockerEnv", validateDockerEnv},
{"PodmanEnv", validatePodmanEnv},
{"NodeLabels", validateNodeLabels},
- {"LoadImage", validateLoadImage},
- {"SaveImage", validateSaveImage},
- {"RemoveImage", validateRemoveImage},
- {"LoadImageFromFile", validateLoadImageFromFile},
- {"SaveImageToFile", validateSaveImageToFile},
- {"BuildImage", validateBuildImage},
- {"ListImages", validateListImages},
+ {"ImageCommands", validateImageCommands},
{"NonActiveRuntimeDisabled", validateNotActiveRuntimeDisabled},
{"Version", validateVersionCmd},
}
@@ -180,16 +177,14 @@ func cleanupUnwantedImages(ctx context.Context, t *testing.T, profile string) {
if err != nil {
t.Skipf("docker is not installed, cannot delete docker images")
} else {
- t.Run("delete busybox image", func(t *testing.T) {
- newImage := fmt.Sprintf("docker.io/library/busybox:load-%s", profile)
- rr, err := Run(t, exec.CommandContext(ctx, "docker", "rmi", "-f", newImage))
- if err != nil {
- t.Logf("failed to remove image busybox from docker images. args %q: %v", rr.Command(), err)
- }
- newImage = fmt.Sprintf("docker.io/library/busybox:remove-%s", profile)
- rr, err = Run(t, exec.CommandContext(ctx, "docker", "rmi", "-f", newImage))
- if err != nil {
- t.Logf("failed to remove image busybox from docker images. args %q: %v", rr.Command(), err)
+ t.Run("delete addon-resizer images", func(t *testing.T) {
+ tags := []string{"1.8.8", profile}
+ for _, tag := range tags {
+ image := fmt.Sprintf("%s:%s", addonResizer, tag)
+ rr, err := Run(t, exec.CommandContext(ctx, "docker", "rmi", "-f", image))
+ if err != nil {
+ t.Logf("failed to remove image %q from docker images. args %q: %v", image, rr.Command(), err)
+ }
}
})
t.Run("delete my-image image", func(t *testing.T) {
@@ -226,331 +221,157 @@ func validateNodeLabels(ctx context.Context, t *testing.T, profile string) {
}
}
-// validateLoadImage makes sure that `minikube image load` works as expected
-func validateLoadImage(ctx context.Context, t *testing.T, profile string) {
+// validateImageCommands runs tests on all the `minikube image` commands, ex. `minikube image load`, `minikube image list`, etc.
+func validateImageCommands(ctx context.Context, t *testing.T, profile string) {
if NoneDriver() {
- t.Skip("load image not available on none driver")
+ t.Skip("image commands are not available on the none driver")
}
if GithubActionRunner() && runtime.GOOS == "darwin" {
- t.Skip("skipping on github actions and darwin, as this test requires a running docker daemon")
- }
- defer PostMortemLogs(t, profile)
- // pull busybox
- busyboxImage := "busybox:1.33"
- rr, err := Run(t, exec.CommandContext(ctx, "docker", "pull", busyboxImage))
- if err != nil {
- t.Fatalf("failed to setup test (pull image): %v\n%s", err, rr.Output())
+ t.Skip("skipping on darwin github action runners, as this test requires a running docker daemon")
}
- // tag busybox
- newImage := fmt.Sprintf("docker.io/library/busybox:load-%s", profile)
- rr, err = Run(t, exec.CommandContext(ctx, "docker", "tag", busyboxImage, newImage))
- if err != nil {
- t.Fatalf("failed to setup test (tag image) : %v\n%s", err, rr.Output())
- }
+ t.Run("ImageList", func(t *testing.T) {
+ MaybeParallel(t)
- // try to load the new image into minikube
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "load", "--daemon", newImage))
- if err != nil {
- t.Fatalf("loading image into minikube: %v\n%s", err, rr.Output())
- }
+ rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "ls"))
+ if err != nil {
+ t.Fatalf("listing image with minikube: %v\n%s", err, rr.Output())
+ }
+ if rr.Stdout.Len() > 0 {
+ t.Logf("(dbg) Stdout: %s:\n%s", rr.Command(), rr.Stdout)
+ }
+ if rr.Stderr.Len() > 0 {
+ t.Logf("(dbg) Stderr: %s:\n%s", rr.Command(), rr.Stderr)
+ }
- // make sure the image was correctly loaded
- rr, err = inspectImage(ctx, t, profile, newImage)
- if err != nil {
- t.Fatalf("listing images: %v\n%s", err, rr.Output())
- }
- if !strings.Contains(rr.Output(), fmt.Sprintf("busybox:load-%s", profile)) {
- t.Fatalf("expected %s to be loaded into minikube but the image is not there", newImage)
- }
+ list := rr.Output()
+ for _, theImage := range []string{"k8s.gcr.io/pause", "docker.io/kubernetesui/dashboard"} {
+ if !strings.Contains(list, theImage) {
+ t.Fatalf("expected %s to be listed with minikube but the image is not there", theImage)
+ }
+ }
+ })
-}
+ t.Run("ImageBuild", func(t *testing.T) {
+ MaybeParallel(t)
-// validateLoadImageFromFile makes sure that `minikube image load` works from a local file
-func validateLoadImageFromFile(ctx context.Context, t *testing.T, profile string) {
- if NoneDriver() {
- t.Skip("load image not available on none driver")
- }
- if GithubActionRunner() && runtime.GOOS == "darwin" {
- t.Skip("skipping on github actions and darwin, as this test requires a running docker daemon")
- }
- defer PostMortemLogs(t, profile)
- // pull busybox
- busyboxImage := "busybox:1.31"
- rr, err := Run(t, exec.CommandContext(ctx, "docker", "pull", busyboxImage))
- if err != nil {
- t.Fatalf("failed to setup test (pull image): %v\n%s", err, rr.Output())
- }
+ newImage := fmt.Sprintf("localhost/my-image:%s", profile)
- tag := fmt.Sprintf("load-from-file-%s", profile)
- taggedImage := fmt.Sprintf("docker.io/library/busybox:%s", tag)
- rr, err = Run(t, exec.CommandContext(ctx, "docker", "tag", busyboxImage, taggedImage))
- if err != nil {
- t.Fatalf("failed to setup test (tag image) : %v\n%s", err, rr.Output())
- }
+ // try to build the new image with minikube
+ rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "build", "-t", newImage, filepath.Join(*testdataDir, "build")))
+ if err != nil {
+ t.Fatalf("building image with minikube: %v\n%s", err, rr.Output())
+ }
+ if rr.Stdout.Len() > 0 {
+ t.Logf("(dbg) Stdout: %s:\n%s", rr.Command(), rr.Stdout)
+ }
+ if rr.Stderr.Len() > 0 {
+ t.Logf("(dbg) Stderr: %s:\n%s", rr.Command(), rr.Stderr)
+ }
- // save image to file
- imageFile := "busybox-load.tar"
- rr, err = Run(t, exec.CommandContext(ctx, "docker", "save", "-o", imageFile, taggedImage))
- if err != nil {
- t.Fatalf("failed to save image to file: %v\n%s", err, rr.Output())
- }
+ checkImageExists(ctx, t, profile, newImage)
+ })
+
+ taggedImage := fmt.Sprintf("%s:%s", addonResizer, profile)
+ imageFile := "addon-resizer-save.tar"
+ var imagePath string
defer os.Remove(imageFile)
- // try to load the new image into minikube
- imagePath, err := filepath.Abs(imageFile)
- if err != nil {
- t.Fatalf("failed to get absolute path of file %q: %v", imageFile, err)
- }
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "load", imagePath))
- if err != nil || rr.Stderr.String() != "" {
- t.Fatalf("loading image into minikube: %v\n%s", err, rr.Output())
- }
+ t.Run("Setup", func(t *testing.T) {
+ var err error
+ imagePath, err = filepath.Abs(imageFile)
+ if err != nil {
+ t.Fatalf("failed to get absolute path of file %q: %v", imageFile, err)
+ }
- // make sure the image was correctly loaded
- rr, err = listImages(ctx, t, profile)
- if err != nil {
- t.Fatalf("listing images: %v\n%s", err, rr.Output())
- }
- if !strings.Contains(rr.Output(), tag) {
- t.Fatalf("expected %s to be loaded into minikube but the image is not there: %v", taggedImage, rr.Output())
- }
-}
+ pulledImage := fmt.Sprintf("%s:%s", addonResizer, "1.8.8")
+ rr, err := Run(t, exec.CommandContext(ctx, "docker", "pull", pulledImage))
+ if err != nil {
+ t.Fatalf("failed to setup test (pull image): %v\n%s", err, rr.Output())
+ }
-// validateRemoveImage makes sures that `minikube image rm` works as expected
-func validateRemoveImage(ctx context.Context, t *testing.T, profile string) {
- if NoneDriver() {
- t.Skip("load image not available on none driver")
- }
- if GithubActionRunner() && runtime.GOOS == "darwin" {
- t.Skip("skipping on github actions and darwin, as this test requires a running docker daemon")
- }
- defer PostMortemLogs(t, profile)
+ rr, err = Run(t, exec.CommandContext(ctx, "docker", "tag", pulledImage, taggedImage))
+ if err != nil {
+ t.Fatalf("failed to setup test (tag image) : %v\n%s", err, rr.Output())
+ }
+ })
- // pull busybox
- busyboxImage := "busybox:1.32"
- rr, err := Run(t, exec.CommandContext(ctx, "docker", "pull", busyboxImage))
- if err != nil {
- t.Fatalf("failed to setup test (pull image): %v\n%s", err, rr.Output())
- }
+ t.Run("ImageLoadDaemon", func(t *testing.T) {
+ rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "load", "--daemon", taggedImage))
+ if err != nil {
+ t.Fatalf("loading image into minikube from daemon: %v\n%s", err, rr.Output())
+ }
- // tag busybox
- newImage := fmt.Sprintf("docker.io/library/busybox:remove-%s", profile)
- rr, err = Run(t, exec.CommandContext(ctx, "docker", "tag", busyboxImage, newImage))
- if err != nil {
- t.Fatalf("failed to setup test (tag image) : %v\n%s", err, rr.Output())
- }
+ checkImageExists(ctx, t, profile, taggedImage)
+ })
- // try to load the image into minikube
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "load", newImage))
- if err != nil {
- t.Fatalf("loading image into minikube: %v\n%s", err, rr.Output())
- }
+ t.Run("ImageSaveToFile", func(t *testing.T) {
+ rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "save", taggedImage, imagePath))
+ if err != nil {
+ t.Fatalf("saving image from minikube to file: %v\n%s", err, rr.Output())
+ }
- // try to remove the image from minikube
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "rm", newImage))
- if err != nil {
- t.Fatalf("removing image from minikube: %v\n%s", err, rr.Output())
- }
+ if _, err := os.Stat(imagePath); err != nil {
+ t.Fatalf("expected %q to exist after `image save`, but doesn't exist", imagePath)
+ }
+ })
- // make sure the image was removed
- rr, err = listImages(ctx, t, profile)
- if err != nil {
- t.Fatalf("listing images: %v\n%s", err, rr.Output())
- }
- if strings.Contains(rr.Output(), fmt.Sprintf("busybox:remove-%s", profile)) {
- t.Fatalf("expected %s to be removed from minikube but the image is there", newImage)
- }
+ t.Run("ImageRemove", func(t *testing.T) {
+ rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "rm", taggedImage))
+ if err != nil {
+ t.Fatalf("removing image from minikube: %v\n%s", err, rr.Output())
+ }
-}
+ // make sure the image was removed
+ rr, err = listImages(ctx, t, profile)
+ if err != nil {
+ t.Fatalf("listing images: %v\n%s", err, rr.Output())
+ }
+ if strings.Contains(rr.Output(), taggedImage) {
+ t.Fatalf("expected %q to be removed from minikube but still exists", taggedImage)
+ }
+ })
-// validateSaveImage makes sure that `minikube image save` works as expected
-func validateSaveImage(ctx context.Context, t *testing.T, profile string) {
- if NoneDriver() {
- t.Skip("load image not available on none driver")
- }
- if GithubActionRunner() && runtime.GOOS == "darwin" {
- t.Skip("skipping on github actions and darwin, as this test requires a running docker daemon")
- }
- defer PostMortemLogs(t, profile)
- // pull busybox
- busyboxImage := "docker.io/library/busybox:1.29"
- rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "pull", busyboxImage))
- if err != nil {
- t.Fatalf("failed to setup test (pull image): %v\n%s", err, rr.Output())
- }
+ t.Run("ImageLoadFromFile", func(t *testing.T) {
+ rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "load", imagePath))
+ if err != nil || rr.Stderr.String() != "" {
+ t.Fatalf("loading image into minikube from file: %v\n%s", err, rr.Output())
+ }
- // tag busybox
- name := "busybox"
- tag := fmt.Sprintf("save-%s", profile)
- newImage := fmt.Sprintf("docker.io/library/%s:%s", name, tag)
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "tag", busyboxImage, newImage))
- if err != nil {
- t.Fatalf("failed to setup test (tag image) : %v\n%s", err, rr.Output())
- }
+ checkImageExists(ctx, t, profile, taggedImage)
+ })
- // try to save the new image from minikube
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "save", "--daemon", newImage))
- if err != nil {
- t.Fatalf("loading image into minikube: %v\n%s", err, rr.Output())
- }
+ t.Run("ImageSaveDaemon", func(t *testing.T) {
+ rr, err := Run(t, exec.CommandContext(ctx, "docker", "rmi", taggedImage))
+ if err != nil {
+ t.Fatalf("failed to remove image from docker: %v\n%s", err, rr.Output())
+ }
- // make sure the image was correctly loaded
- rr, err = Run(t, exec.CommandContext(ctx, "docker", "images", name))
- if err != nil {
- t.Fatalf("listing images: %v\n%s", err, rr.Output())
- }
- if !strings.Contains(rr.Output(), fmt.Sprintf("save-%s", profile)) {
- t.Fatalf("expected %s to be loaded into minikube but the image is not there", newImage)
- }
+ rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "save", "--daemon", taggedImage))
+ if err != nil {
+ t.Fatalf("saving image from minikube to daemon: %v\n%s", err, rr.Output())
+ }
+ rr, err = Run(t, exec.CommandContext(ctx, "docker", "image", "inspect", taggedImage))
+ if err != nil {
+ t.Fatalf("expected image to be loaded into Docker, but image was not found: %v\n%s", err, rr.Output())
+ }
+ })
}
-// validateSaveImageToFile makes sure that `minikube image save` works to a local file
-func validateSaveImageToFile(ctx context.Context, t *testing.T, profile string) {
- if NoneDriver() {
- t.Skip("save image not available on none driver")
- }
- if GithubActionRunner() && runtime.GOOS == "darwin" {
- t.Skip("skipping on github actions and darwin, as this test requires a running docker daemon")
- }
- defer PostMortemLogs(t, profile)
- // pull busybox
- busyboxImage := "docker.io/library/busybox:1.30"
- rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "pull", busyboxImage))
- if err != nil {
- t.Fatalf("failed to setup test (pull image): %v\n%s", err, rr.Output())
- }
-
- name := "busybox"
- tag := fmt.Sprintf("save-to-file-%s", profile)
- taggedImage := fmt.Sprintf("docker.io/library/%s:%s", name, tag)
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "tag", busyboxImage, taggedImage))
- if err != nil {
- t.Fatalf("failed to setup test (tag image) : %v\n%s", err, rr.Output())
- }
-
- // try to save the new image from minikube
- imageFile := "busybox-save.tar"
- imagePath, err := filepath.Abs(imageFile)
- if err != nil {
- t.Fatalf("failed to get absolute path of file %q: %v", imageFile, err)
- }
- rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "save", taggedImage, imagePath))
- if err != nil {
- t.Fatalf("saving image from minikube: %v\n%s", err, rr.Output())
- }
-
- // load image from file
- rr, err = Run(t, exec.CommandContext(ctx, "docker", "load", "-i", imagePath))
- if err != nil {
- t.Fatalf("failed to load image to file: %v\n%s", err, rr.Output())
- }
- defer os.Remove(imageFile)
-
+func checkImageExists(ctx context.Context, t *testing.T, profile string, image string) {
// make sure the image was correctly loaded
- rr, err = Run(t, exec.CommandContext(ctx, "docker", "images", name))
+ rr, err := listImages(ctx, t, profile)
if err != nil {
t.Fatalf("listing images: %v\n%s", err, rr.Output())
}
- if !strings.Contains(rr.Output(), tag) {
- t.Fatalf("expected %s to be loaded but the image is not there", taggedImage)
- }
-
-}
-
-func inspectImage(ctx context.Context, t *testing.T, profile string, image string) (*RunResult, error) {
- var cmd *exec.Cmd
- if ContainerRuntime() == "docker" {
- cmd = exec.CommandContext(ctx, Target(), "ssh", "-p", profile, "--", "docker", "image", "inspect", image)
- } else {
- cmd = exec.CommandContext(ctx, Target(), "ssh", "-p", profile, "--", "sudo", "crictl", "inspecti", image)
- }
- rr, err := Run(t, cmd)
- if err != nil {
- return rr, err
+ if !strings.Contains(rr.Output(), image) {
+ t.Fatalf("expected %q to be loaded into minikube but the image is not there", image)
}
- return rr, nil
}
func listImages(ctx context.Context, t *testing.T, profile string) (*RunResult, error) {
- var cmd *exec.Cmd
- if ContainerRuntime() == "docker" {
- cmd = exec.CommandContext(ctx, Target(), "ssh", "-p", profile, "--", "docker", "images")
- } else {
- cmd = exec.CommandContext(ctx, Target(), "ssh", "-p", profile, "--", "sudo", "crictl", "images")
- }
- rr, err := Run(t, cmd)
- if err != nil {
- return rr, err
- }
- return rr, nil
-}
-
-// validateBuildImage makes sures that `minikube image build` works as expected
-func validateBuildImage(ctx context.Context, t *testing.T, profile string) {
- if NoneDriver() {
- t.Skip("image build not available on none driver")
- }
- if GithubActionRunner() && runtime.GOOS == "darwin" {
- t.Skip("skipping on github actions and darwin, as this test requires a running docker daemon")
- }
- defer PostMortemLogs(t, profile)
-
- newImage := fmt.Sprintf("localhost/my-image:%s", profile)
-
- // try to build the new image with minikube
- rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "build", "-t", newImage, filepath.Join(*testdataDir, "build")))
- if err != nil {
- t.Fatalf("building image with minikube: %v\n%s", err, rr.Output())
- }
- if rr.Stdout.Len() > 0 {
- t.Logf("(dbg) Stdout: %s:\n%s", rr.Command(), rr.Stdout)
- }
- if rr.Stderr.Len() > 0 {
- t.Logf("(dbg) Stderr: %s:\n%s", rr.Command(), rr.Stderr)
- }
-
- // make sure the image was correctly built
- rr, err = inspectImage(ctx, t, profile, newImage)
- if err != nil {
- ll, _ := listImages(ctx, t, profile)
- t.Logf("(dbg) images: %s", ll.Output())
- t.Fatalf("listing images: %v\n%s", err, rr.Output())
- }
- if !strings.Contains(rr.Output(), newImage) {
- t.Fatalf("expected %s to be built with minikube but the image is not there", newImage)
- }
-}
-
-// validateListImages makes sures that `minikube image ls` works as expected
-func validateListImages(ctx context.Context, t *testing.T, profile string) {
- if NoneDriver() {
- t.Skip("list images not available on none driver")
- }
- if GithubActionRunner() && runtime.GOOS == "darwin" {
- t.Skip("skipping on github actions and darwin, as this test requires a running docker daemon")
- }
- defer PostMortemLogs(t, profile)
-
- // try to list the images with minikube
- rr, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "ls"))
- if err != nil {
- t.Fatalf("listing image with minikube: %v\n%s", err, rr.Output())
- }
- if rr.Stdout.Len() > 0 {
- t.Logf("(dbg) Stdout: %s:\n%s", rr.Command(), rr.Stdout)
- }
- if rr.Stderr.Len() > 0 {
- t.Logf("(dbg) Stderr: %s:\n%s", rr.Command(), rr.Stderr)
- }
-
- list := rr.Output()
- for _, theImage := range []string{"k8s.gcr.io/pause", "docker.io/kubernetesui/dashboard"} {
- if !strings.Contains(list, theImage) {
- t.Fatalf("expected %s to be listed with minikube but the image is not there", theImage)
- }
- }
+ return Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "image", "ls"))
}
// check functionality of minikube after evaluating docker-env
@@ -2137,7 +1958,7 @@ func validateVersionCmd(ctx context.Context, t *testing.T, profile string) {
t.Errorf("error version: %v", err)
}
got := rr.Stdout.String()
- for _, c := range []string{"buildctl", "commit", "containerd", "crictl", "crio", "ctr", "docker", "minikubeVersion", "podman", "run"} {
+ for _, c := range []string{"buildctl", "commit", "containerd", "crictl", "crio", "ctr", "docker", "minikubeVersion", "podman", "run", "crun"} {
if !strings.Contains(got, c) {
t.Errorf("expected to see %q in the minikube version --components but got:\n%s", c, got)
}
diff --git a/test/integration/functional_test_mount_test.go b/test/integration/functional_test_mount_test.go
index d7e8a847091f..039df204170e 100644
--- a/test/integration/functional_test_mount_test.go
+++ b/test/integration/functional_test_mount_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/functional_test_pvc_test.go b/test/integration/functional_test_pvc_test.go
index 744edadbae98..5b5e015e1531 100644
--- a/test/integration/functional_test_pvc_test.go
+++ b/test/integration/functional_test_pvc_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/functional_test_tunnel_test.go b/test/integration/functional_test_tunnel_test.go
index 8d7b4fcb38d7..4472408778ca 100644
--- a/test/integration/functional_test_tunnel_test.go
+++ b/test/integration/functional_test_tunnel_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/guest_env_test.go b/test/integration/guest_env_test.go
index 21f274b4777f..f75f1cd6d754 100644
--- a/test/integration/guest_env_test.go
+++ b/test/integration/guest_env_test.go
@@ -1,3 +1,4 @@
+//go:build iso
// +build iso
/*
diff --git a/test/integration/gvisor_addon_test.go b/test/integration/gvisor_addon_test.go
index 82609843c3e1..5b5e2453d795 100644
--- a/test/integration/gvisor_addon_test.go
+++ b/test/integration/gvisor_addon_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/kic_custom_network_test.go b/test/integration/kic_custom_network_test.go
index b9e571ff0d0b..b39233653274 100644
--- a/test/integration/kic_custom_network_test.go
+++ b/test/integration/kic_custom_network_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/multinode_test.go b/test/integration/multinode_test.go
index b1e74c9bb3d4..9a70a7aa2292 100644
--- a/test/integration/multinode_test.go
+++ b/test/integration/multinode_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/net_test.go b/test/integration/net_test.go
index e3eb1a49d0e4..60dc1cd443f4 100644
--- a/test/integration/net_test.go
+++ b/test/integration/net_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/none_test.go b/test/integration/none_test.go
index b1219de8cd69..a5e4f96e3c05 100644
--- a/test/integration/none_test.go
+++ b/test/integration/none_test.go
@@ -1,5 +1,5 @@
-// +build integration
-// +build linux
+//go:build integration && linux
+// +build integration,linux
/*
Copyright 2019 The Kubernetes Authors All rights reserved.
diff --git a/test/integration/pause_test.go b/test/integration/pause_test.go
index e4706aaa6fde..b125c7dc4e5c 100644
--- a/test/integration/pause_test.go
+++ b/test/integration/pause_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/pkg_install_test.go b/test/integration/pkg_install_test.go
deleted file mode 100644
index ca500e41a4ab..000000000000
--- a/test/integration/pkg_install_test.go
+++ /dev/null
@@ -1,108 +0,0 @@
-// +build integration
-
-/*
-Copyright 2021 The Kubernetes Authors All rights reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package integration
-
-import (
- "context"
- "fmt"
- "os/exec"
- "path/filepath"
- "runtime"
- "testing"
-)
-
-var distros = []string{
- "debian:sid",
- "debian:latest",
- "debian:10",
- "debian:9",
- "ubuntu:latest",
- "ubuntu:20.10",
- "ubuntu:20.04",
- "ubuntu:18.04",
-}
-
-var timeout = Minutes(10)
-
-// TestPackageInstall tests installation of .deb packages with minikube itself and with kvm2 driver
-// on various debian/ubuntu docker images
-func TestDebPackageInstall(t *testing.T) {
-
- ctx, cancel := context.WithTimeout(context.Background(), timeout)
- defer cancel()
-
- rr, err := Run(t, exec.CommandContext(ctx, "docker", "version"))
- if err != nil || rr.ExitCode != 0 {
- t.Skip("docker is not installed")
- }
-
- pkgDir, err := filepath.Abs(filepath.Dir(Target()))
- if err != nil {
- t.Errorf("failed to get minikube path: %v", err)
- }
- mkDebs, err := filepath.Glob(fmt.Sprintf("%s/minikube_*_%s.deb", pkgDir, runtime.GOARCH))
- if err != nil {
- t.Errorf("failed to find minikube deb in %q: %v", pkgDir, err)
- }
- kvmDebs, err := filepath.Glob(fmt.Sprintf("%s/docker-machine-driver-kvm2_*_%s.deb", pkgDir, runtime.GOARCH))
- if err != nil {
- t.Errorf("failed to find minikube deb in %q: %v", pkgDir, err)
- }
-
- for _, distro := range distros {
- distroImg := distro
- testName := fmt.Sprintf("install_%s_%s", runtime.GOARCH, distroImg)
- t.Run(testName, func(t *testing.T) {
- // apt-get update; dpkg -i minikube_${ver}_${arch}.deb
- t.Run("minikube", func(t *testing.T) {
- for _, mkDeb := range mkDebs {
- rr, err := dpkgInstall(ctx, t, distro, mkDeb)
- if err != nil || rr.ExitCode != 0 {
- t.Errorf("failed to install %q on %q: err=%v, exit=%d",
- mkDeb, distroImg, err, rr.ExitCode)
- }
- }
- })
- // apt-get update; apt-get install -y libvirt0; dpkg -i docker-machine-driver-kvm2_${ver}_${arch}.deb
- t.Run("kvm2-driver", func(t *testing.T) {
- for _, kvmDeb := range kvmDebs {
- rr, err := dpkgInstallDriver(ctx, t, distro, kvmDeb)
- if err != nil || rr.ExitCode != 0 {
- t.Errorf("failed to install %q on %q: err=%v, exit=%d",
- kvmDeb, distroImg, err, rr.ExitCode)
- }
- }
- })
- })
- }
-}
-
-func dpkgInstall(ctx context.Context, t *testing.T, image, deb string) (*RunResult, error) {
- return Run(t, exec.CommandContext(ctx,
- "docker", "run", "--rm", fmt.Sprintf("-v%s:/var/tmp", filepath.Dir(deb)),
- image,
- "sh", "-c", fmt.Sprintf("apt-get update; dpkg -i /var/tmp/%s", filepath.Base(deb))))
-}
-
-func dpkgInstallDriver(ctx context.Context, t *testing.T, image, deb string) (*RunResult, error) {
- return Run(t, exec.CommandContext(ctx,
- "docker", "run", "--rm", fmt.Sprintf("-v%s:/var/tmp", filepath.Dir(deb)),
- image,
- "sh", "-c", fmt.Sprintf("apt-get update; apt-get install -y libvirt0; dpkg -i /var/tmp/%s", filepath.Base(deb))))
-}
diff --git a/test/integration/preload_test.go b/test/integration/preload_test.go
index 1a6d0c8836b2..6ce94bfbc569 100644
--- a/test/integration/preload_test.go
+++ b/test/integration/preload_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/scheduled_stop_test.go b/test/integration/scheduled_stop_test.go
index b01bcca91383..b44a4771175a 100644
--- a/test/integration/scheduled_stop_test.go
+++ b/test/integration/scheduled_stop_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
@@ -43,7 +44,7 @@ func TestScheduledStopWindows(t *testing.T) {
t.Skip("test only runs on windows")
}
profile := UniqueProfileName("scheduled-stop")
- ctx, cancel := context.WithTimeout(context.Background(), Minutes(5))
+ ctx, cancel := context.WithTimeout(context.Background(), Minutes(6))
defer CleanupWithLogs(t, profile, cancel)
startMinikube(ctx, t, profile)
@@ -64,7 +65,7 @@ func TestScheduledStopWindows(t *testing.T) {
stopMinikube(ctx, t, profile, []string{"--schedule", "5s"})
// wait for stop to complete
- time.Sleep(15 * time.Second)
+ time.Sleep(time.Minute)
// make sure minikube timetoStop is not present
ensureTimeToStopNotPresent(ctx, t, profile)
// make sure minikube status is "Stopped"
diff --git a/test/integration/skaffold_test.go b/test/integration/skaffold_test.go
index f801b6117c92..9a10f93c071c 100644
--- a/test/integration/skaffold_test.go
+++ b/test/integration/skaffold_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/start_stop_delete_test.go b/test/integration/start_stop_delete_test.go
index c756965d0376..3b00b5d6ed6a 100644
--- a/test/integration/start_stop_delete_test.go
+++ b/test/integration/start_stop_delete_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/status_test.go b/test/integration/status_test.go
index 3b78642a96c8..924d69e545c5 100644
--- a/test/integration/status_test.go
+++ b/test/integration/status_test.go
@@ -1,3 +1,4 @@
+//go:build integration
// +build integration
/*
diff --git a/test/integration/testdata/ingress-dns-example.yaml b/test/integration/testdata/ingress-dns-example.yaml
new file mode 100644
index 000000000000..a4f7d196ec40
--- /dev/null
+++ b/test/integration/testdata/ingress-dns-example.yaml
@@ -0,0 +1,87 @@
+# Copyright 2021 The Kubernetes Authors All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: hello-world-app
+ namespace: default
+spec:
+ selector:
+ matchLabels:
+ app: hello-world-app
+ template:
+ metadata:
+ labels:
+ app: hello-world-app
+ spec:
+ containers:
+ - name: hello-world-app
+ image: gcr.io/google-samples/hello-app:1.0
+ ports:
+ - containerPort: 8080
+---
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: example-ingress
+ namespace: kube-system
+spec:
+ ingressClassName: nginx
+ rules:
+ - host: hello-john.test
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: hello-world-app
+ port:
+ number: 80
+ - host: hello-jane.test
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: hello-world-app
+ port:
+ number: 80
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: hello-world-app
+ namespace: kube-system
+spec:
+ type: ExternalName
+ externalName: hello-world-app.default.svc.cluster.local
+---
+apiVersion: v1
+kind: Service
+metadata:
+ name: hello-world-app
+ namespace: default
+spec:
+ ports:
+ - name: http
+ port: 80
+ targetPort: 8080
+ protocol: TCP
+ type: NodePort
+ selector:
+ app: hello-world-app
diff --git a/translations/de.json b/translations/de.json
index 79b79eac6fdb..84f72afa84cc 100644
--- a/translations/de.json
+++ b/translations/de.json
@@ -69,6 +69,7 @@
"Bridge CNI is incompatible with multi-node clusters, use a different CNI": "",
"Build a container image in minikube": "",
"Build a container image, using the container runtime.": "",
+ "Build image on all nodes.": "",
"CGroup allocation is not available in your environment, You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CGroup allocation is not available in your environment. You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "",
@@ -79,6 +80,7 @@
"Cannot find directory {{.path}} for copy": "",
"Cannot find directory {{.path}} for mount": "",
"Cannot use both --output and --format options": "",
+ "Certificate {{.certPath}} has expired. Generating a new one...": "",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "",
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "",
"Check that libvirt is setup properly": "",
@@ -102,6 +104,7 @@
"Connect to LoadBalancer services": "",
"Consider creating a cluster with larger memory size using `minikube start --memory SIZE_MB` ": "",
"Consider increasing Docker Desktop's memory size.": "",
+ "Container runtime must be set to \\\"containerd\\\" for rootless": "",
"Continuously listing/getting the status with optional interval duration.": "",
"Control Plane could not update, try minikube delete --all --purge": "",
"Copy the specified file into minikube": "",
@@ -157,6 +160,7 @@
"Downloading VM boot image ...": "",
"Downloading driver {{.driver}}:": "",
"Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not fully supported. Try using a different driver.": "",
+ "Duration until minikube certificate expiration, defaults to three years (26280h).": "",
"ERROR creating `registry-creds-acr` secret": "",
"ERROR creating `registry-creds-dpr` secret": "",
"ERROR creating `registry-creds-ecr` secret: {{.error}}": "",
@@ -258,6 +262,7 @@
"Failed to read temp": "",
"Failed to reload cached images": "",
"Failed to remove image": "",
+ "Failed to remove images for profile {{.pName}} {{.error}}": "",
"Failed to save config {{.profile}}": "",
"Failed to save dir": "",
"Failed to save image": "",
@@ -344,7 +349,6 @@
"Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "Unsichere Docker-Registrys, die an den Docker-Daemon übergeben werden. Der CIDR-Bereich des Standarddienstes wird automatisch hinzugefügt.",
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
"Install the latest hyperkit binary, and run 'minikube delete'": "",
- "Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
"Invalid port": "",
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
@@ -407,7 +411,7 @@
"Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "",
"Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "",
"Number of CPUs allocated to the minikube VM": "Anzahl der CPUs, die der minikube-VM zugeordnet sind",
- "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit driver)": "",
+ "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit and kvm2 drivers)": "",
"Number of lines back to go within the log": "",
"OS release is {{.pretty_name}}": "",
"One of 'text', 'yaml' or 'json'.": "",
@@ -431,7 +435,7 @@
"Paused {{.count}} containers in: {{.namespaces}}": "",
"Pausing node {{.name}} ... ": "",
"Permissions: {{.octalMode}} ({{.writtenMode}})": "",
- "Please attach the following file to the GitHub issue:": "",
+ "Please also attach the following file to the GitHub issue:": "",
"Please create a cluster with bigger disk size: `minikube start --disk SIZE_MB` ": "",
"Please either authenticate to the registry or use --base-image flag to use a different registry.": "",
"Please enter a value:": "",
@@ -446,6 +450,7 @@
"Please provide source and target image": "",
"Please re-eval your docker-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} docker-env'\n\n\t": "",
"Please re-eval your podman-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t": "",
+ "Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.": "",
"Please see {{.documentation_url}} for more details": "",
"Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "",
"Please specify the path to copy: \n\tminikube cp \u003csource file path\u003e \u003ctarget file absolute path\u003e (example: \"minikube cp a/b.txt /copied.txt\")": "",
@@ -621,6 +626,7 @@
"The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "",
"The VM that minikube is configured for no longer exists. Run 'minikube delete'": "",
"The \\\"{{.name}}\\\" container runtime requires CNI": "",
+ "The ambassador addon has stopped working as of v1.23.0, for more details visit: https://github.com/datawire/ambassador-operator/issues/73": "",
"The apiserver listening port": "Der Überwachungsport des API-Servers",
"The apiserver name which is used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Der API-Servername, der im generierten Zertifikat für Kubernetes verwendet wird. Damit kann der API-Server von außerhalb des Computers verfügbar gemacht werden.",
"The argument to pass the minikube mount command on start": "Das Argument, um den Bereitstellungsbefehl für minikube beim Start zu übergeben",
@@ -656,6 +662,7 @@
"The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "",
"The name of the network plugin": "Der Name des Netzwerk-Plugins",
"The named space to activate after start": "",
+ "The node to build on. Defaults to the primary control plane.": "",
"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "",
"The node to get IP. Defaults to the primary control plane.": "",
"The node to get logs from. Defaults to the primary control plane.": "",
@@ -793,7 +800,6 @@
"VM driver is one of: %v": "VM-Treiber ist einer von: %v",
"Valid components are: {{.valid_extra_opts}}": "",
"Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "",
- "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "",
"Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "",
"Verifying Kubernetes components...": "",
"Verifying dashboard health ...": "",
@@ -822,6 +828,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 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.": "",
"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": "",
"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "Möglicherweise müssen Sie die VM \"{{.name}}\" manuell von Ihrem Hypervisor entfernen",
@@ -955,6 +962,7 @@
"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "",
"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+ "{{.err}}": "",
"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
"{{.name}} doesn't have images.": "",
"{{.name}} has following images:": "",
diff --git a/translations/es.json b/translations/es.json
index 1c3db32d9b2a..d4b17ff9c4eb 100644
--- a/translations/es.json
+++ b/translations/es.json
@@ -70,6 +70,7 @@
"Bridge CNI is incompatible with multi-node clusters, use a different CNI": "",
"Build a container image in minikube": "",
"Build a container image, using the container runtime.": "",
+ "Build image on all nodes.": "",
"CGroup allocation is not available in your environment, You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CGroup allocation is not available in your environment. You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "Plug-in CNI para usar. Opciones validas: auto, bridge, calico, cilium, flannel, kindnet, o ruta a un manifiesto CNI (Por defecto: auto)",
@@ -80,6 +81,7 @@
"Cannot find directory {{.path}} for copy": "",
"Cannot find directory {{.path}} for mount": "No se pudo encontrar el directorio {{.path}} para montar",
"Cannot use both --output and --format options": "No se pueden usar ambas opciones (--output y --path)",
+ "Certificate {{.certPath}} has expired. Generating a new one...": "",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "Comprueba si tienes pods innecesarios corriendo, con el comando 'kubectl get pods -A'",
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "Comprueba la salida de 'journalctl -xeu kubelet', intenta pasar --extra-config=kubelet.cgroup-driver=systemd a minikube start",
"Check that libvirt is setup properly": "Comprueba que libvirt esté configurado correctamente",
@@ -103,6 +105,7 @@
"Connect to LoadBalancer services": "Conectar a los servicios LoadBalancer",
"Consider creating a cluster with larger memory size using `minikube start --memory SIZE_MB` ": "Considera crear un cluster con más memoria usando `minikube start --memory CANT_MB`",
"Consider increasing Docker Desktop's memory size.": "Considera incrementar la memoria asignada a Docker Desktop",
+ "Container runtime must be set to \\\"containerd\\\" for rootless": "",
"Continuously listing/getting the status with optional interval duration.": "",
"Control Plane could not update, try minikube delete --all --purge": "",
"Copy the specified file into minikube": "",
@@ -162,6 +165,7 @@
"Due to networking limitations of driver {{.driver_name}} on {{.os_name}}, {{.addon_name}} addon is not supported.\nAlternatively to use this addon you can use a vm-based driver:\n\n\t'minikube start --vm=true'\n\nTo track the update on this work in progress feature please check:\nhttps://github.com/kubernetes/minikube/issues/7332": "Debido a las limitaciones de red del controlador {{.driver_name}} en {{.os_name}}, el complemento \"{{.addon_name}}\" no está soportado.\nPara usar este complemento, puedes utilizar un controlador basado en vm\n\n\t'minikube start --vm=true'\n\nPara realizar un seguimiento de las actualizaciones de esta función consulte:\nhttps://github.com/kubernetes/minikube/issues/7332",
"Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not fully supported. Try using a different driver.": "",
"Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not supported. Try using a different driver.": "Debido a limitaciones de red del controlador {{.driver_name}}, el complemento \"{{.addon_name}}\" no está soportado. Intenta usar un controlador diferente.",
+ "Duration until minikube certificate expiration, defaults to three years (26280h).": "",
"ERROR creating `registry-creds-acr` secret": "ERROR creando el secreto `registry-creds-acr`",
"ERROR creating `registry-creds-dpr` secret": "ERROR creando el secreto `registry-creds-dpr`",
"ERROR creating `registry-creds-ecr` secret: {{.error}}": "ERROR creando el secreto `registry-creds-ecr`: {{.error}}",
@@ -264,6 +268,7 @@
"Failed to read temp": "",
"Failed to reload cached images": "",
"Failed to remove image": "",
+ "Failed to remove images for profile {{.pName}} {{.error}}": "",
"Failed to save config {{.profile}}": "",
"Failed to save dir": "",
"Failed to save image": "",
@@ -350,7 +355,6 @@
"Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "Registros de Docker que no son seguros y que se transferirán al daemon de Docker. Se añadirá automáticamente el intervalo CIDR de servicio predeterminado.",
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
"Install the latest hyperkit binary, and run 'minikube delete'": "",
- "Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
"Invalid port": "",
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
@@ -413,7 +417,7 @@
"Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "",
"Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "",
"Number of CPUs allocated to the minikube VM": "Número de CPU asignadas a la VM de minikube",
- "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit driver)": "",
+ "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit and kvm2 drivers)": "",
"Number of lines back to go within the log": "",
"OS release is {{.pretty_name}}": "",
"One of 'text', 'yaml' or 'json'.": "",
@@ -437,7 +441,7 @@
"Paused {{.count}} containers in: {{.namespaces}}": "",
"Pausing node {{.name}} ... ": "",
"Permissions: {{.octalMode}} ({{.writtenMode}})": "",
- "Please attach the following file to the GitHub issue:": "",
+ "Please also attach the following file to the GitHub issue:": "",
"Please create a cluster with bigger disk size: `minikube start --disk SIZE_MB` ": "",
"Please either authenticate to the registry or use --base-image flag to use a different registry.": "",
"Please enter a value:": "",
@@ -452,6 +456,7 @@
"Please provide source and target image": "",
"Please re-eval your docker-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} docker-env'\n\n\t": "",
"Please re-eval your podman-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t": "",
+ "Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.": "",
"Please see {{.documentation_url}} for more details": "",
"Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "",
"Please specify the path to copy: \n\tminikube cp \u003csource file path\u003e \u003ctarget file absolute path\u003e (example: \"minikube cp a/b.txt /copied.txt\")": "",
@@ -627,6 +632,7 @@
"The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "",
"The VM that minikube is configured for no longer exists. Run 'minikube delete'": "",
"The \\\"{{.name}}\\\" container runtime requires CNI": "",
+ "The ambassador addon has stopped working as of v1.23.0, for more details visit: https://github.com/datawire/ambassador-operator/issues/73": "",
"The apiserver listening port": "El puerto de escucha del apiserver",
"The apiserver name which is used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "El nombre del apiserver del certificado de Kubernetes generado. Se puede utilizar para que sea posible acceder al apiserver desde fuera de la máquina",
"The argument to pass the minikube mount command on start": "El argumento para ejecutar el comando de activación de minikube durante el inicio",
@@ -662,6 +668,7 @@
"The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "",
"The name of the network plugin": "El nombre del complemento de red",
"The named space to activate after start": "",
+ "The node to build on. Defaults to the primary control plane.": "",
"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "",
"The node to get IP. Defaults to the primary control plane.": "",
"The node to get logs from. Defaults to the primary control plane.": "",
@@ -799,7 +806,6 @@
"VM driver is one of: %v": "El controlador de la VM es uno de los siguientes: %v",
"Valid components are: {{.valid_extra_opts}}": "",
"Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "",
- "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "",
"Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "",
"Verifying Kubernetes components...": "",
"Verifying dashboard health ...": "",
@@ -828,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 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.": "",
"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": "",
"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "Puede que tengas que retirar manualmente la VM \"{{.name}}\" de tu hipervisor",
@@ -961,6 +968,7 @@
"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "",
"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+ "{{.err}}": "",
"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
"{{.name}} doesn't have images.": "",
"{{.name}} has following images:": "",
diff --git a/translations/fr.json b/translations/fr.json
index 5f3e35c33a04..ece72517baa5 100644
--- a/translations/fr.json
+++ b/translations/fr.json
@@ -71,16 +71,18 @@
"Bridge CNI is incompatible with multi-node clusters, use a different CNI": "Le pont CNI est incompatible avec les clusters multi-nœuds, utilisez un autre CNI",
"Build a container image in minikube": "Construire une image de conteneur dans minikube",
"Build a container image, using the container runtime.": "Construire une image de conteneur à l'aide de l'environnement d'exécution du conteneur.",
+ "Build image on all nodes.": "",
"CGroup allocation is not available in your environment, You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "L'allocation CGroup n'est pas disponible dans votre environnement, vous exécutez peut-être minikube dans un conteneur imbriqué. Essayez d'exécuter :\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t",
"CGroup allocation is not available in your environment. You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "L'allocation CGroup n'est pas disponible dans votre environnement, vous exécutez peut-être minikube dans un conteneur imbriqué. Essayez d'exécuter :\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t",
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "Plug-in CNI à utiliser. Options valides : auto, bridge, calico, cilium, flannel, kindnet ou chemin vers un manifeste CNI (par défaut : auto)",
"Cache image from docker daemon": "Cacher l'image du démon docker",
"Cache image from remote registry": "Cacher l'image du registre distant",
- "Cache image to docker daemon": "",
- "Cache image to remote registry": "",
+ "Cache image to docker daemon": "Cacher l'image dans le démon docker",
+ "Cache image to remote registry": "Cacher l'image dans le registre distant",
"Cannot find directory {{.path}} for copy": "Impossible de trouver le répertoire {{.path}} pour la copie",
"Cannot find directory {{.path}} for mount": "Impossible de trouver le répertoire {{.path}} pour le montage",
"Cannot use both --output and --format options": "Impossible d'utiliser à la fois les options --output et --format",
+ "Certificate {{.certPath}} has expired. Generating a new one...": "Le certificat {{.certPath}} a expiré. Génération d'un nouveau...",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "Vérifiez si vous avez des pods inutiles en cours d'exécution en exécutant 'kubectl get po -A'",
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "Vérifiez la sortie de 'journalctl -xeu kubelet', essayez de passer --extra-config=kubelet.cgroup-driver=systemd au démarrage de minikube",
"Check that libvirt is setup properly": "Vérifiez que libvirt est correctement configuré",
@@ -105,6 +107,7 @@
"Connect to LoadBalancer services": "Se connecter aux services LoadBalancer",
"Consider creating a cluster with larger memory size using `minikube start --memory SIZE_MB` ": "Envisagez de créer un cluster avec une plus grande taille de mémoire en utilisant `minikube start --memory SIZE_MB`",
"Consider increasing Docker Desktop's memory size.": "Envisagez d'augmenter la taille de la mémoire de Docker Desktop.",
+ "Container runtime must be set to \\\"containerd\\\" for rootless": "L'environnement d'exécution du conteneur doit être défini sur \\\"containerd\\\" pour utilisateur normal",
"Continuously listing/getting the status with optional interval duration.": "Répertorier/obtenir le statut en continu avec une durée d'intervalle facultative.",
"Control Plane could not update, try minikube delete --all --purge": "Le plan de contrôle n'a pas pu mettre à jour, essayez minikube delete --all --purge",
"Copy the specified file into minikube": "Copiez le fichier spécifié dans minikube",
@@ -160,6 +163,7 @@
"Downloading driver {{.driver}}:": "Téléchargement du pilote {{.driver}} :",
"Due to networking limitations of driver {{.driver_name}} on {{.os_name}}, {{.addon_name}} addon is not supported.\nAlternatively to use this addon you can use a vm-based driver:\n\n\t'minikube start --vm=true'\n\nTo track the update on this work in progress feature please check:\nhttps://github.com/kubernetes/minikube/issues/7332": "En raison des limitations réseau du pilote {{.driver_name}} sur {{.os_name}}, le module {{.addon_name}} n'est pas pris en charge.\nAlternativement, pour utiliser ce module, vous pouvez utiliser un pilote basé sur vm :\n\n \t'minikube start --vm=true'\n\nPour suivre la mise à jour de cette fonctionnalité en cours de travail, veuillez vérifier :\nhttps://github.com/kubernetes/minikube/issues/7332",
"Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not fully supported. Try using a different driver.": "En raison des limitations réseau du pilote {{.driver_name}}, le module {{.addon_name}} n'est pas entièrement pris en charge. Essayez d'utiliser un autre pilote.",
+ "Duration until minikube certificate expiration, defaults to three years (26280h).": "Durée jusqu'à l'expiration du certificat minikube, par défaut à trois ans (26280h).",
"ERROR creating `registry-creds-acr` secret": "ERREUR lors de la création du secret `registry-creds-acr`",
"ERROR creating `registry-creds-dpr` secret": "ERREUR lors de la création du secret `registry-creds-dpr`",
"ERROR creating `registry-creds-ecr` secret: {{.error}}": "ERREUR lors de la création du secret `registry-creds-ecr` : {{.error}}",
@@ -250,21 +254,22 @@
"Failed to get command runner": "Impossible d'obtenir le lanceur de commandes",
"Failed to get image map": "Échec de l'obtention de la carte d'image",
"Failed to get service URL: {{.error}}": "Échec de l'obtention de l'URL du service : {{.error}}",
- "Failed to get temp": "",
+ "Failed to get temp": "Impossible d'obtenir le répertoire temporaire",
"Failed to kill mount process: {{.error}}": "Échec de l'arrêt du processus d'installation : {{.error}}",
"Failed to list cached images": "Échec de l'obtention de la liste des images mises en cache",
"Failed to list images": "Échec de l'obtention de la liste des images",
"Failed to load image": "Échec du chargement de l'image",
"Failed to persist images": "Échec de la persistance des images",
"Failed to pull image": "Échec de l'extraction de l'image",
- "Failed to pull images": "",
- "Failed to push images": "",
- "Failed to read temp": "",
+ "Failed to pull images": "Échec de l'extraction des images",
+ "Failed to push images": "Échec de la diffusion des images",
+ "Failed to read temp": "Échec de la lecture du répertoire temporaire",
"Failed to reload cached images": "Échec du rechargement des images mises en cache",
"Failed to remove image": "Échec de la suppression de l'image",
+ "Failed to remove images for profile {{.pName}} {{.error}}": "",
"Failed to save config {{.profile}}": "Échec de l'enregistrement de la configuration {{.profile}}",
"Failed to save dir": "Échec de l'enregistrement du répertoire",
- "Failed to save image": "",
+ "Failed to save image": "Échec de l'enregistrement de l'image",
"Failed to save stdin": "Échec de l'enregistrement de l'entrée standard",
"Failed to set NO_PROXY Env. Please use `export NO_PROXY=$NO_PROXY,{{.ip}}": "Échec de la définition la variable d'environnement NO_PROXY. Veuillez utiliser `export NO_PROXY=$NO_PROXY,{{.ip}}.",
"Failed to set NO_PROXY Env. Please use `export NO_PROXY=$NO_PROXY,{{.ip}}`.": "Échec de la définition de la variable d'environnement NO_PROXY. Veuillez utiliser `export NO_PROXY=$NO_PROXY,{{.ip}}`.",
@@ -272,7 +277,7 @@
"Failed to start container runtime": "Échec du démarrage de l'exécution du conteneur",
"Failed to start {{.driver}} {{.driver_type}}. Running \"{{.cmd}}\" may fix it: {{.error}}": "Échec du démarrage de {{.driver}} {{.driver_type}}. L'exécution de \"{{.cmd}}\" peut résoudre le problème : {{.error}}",
"Failed to stop node {{.name}}": "Échec de l'arrêt du nœud {{.name}}",
- "Failed to tag images": "",
+ "Failed to tag images": "Échec du marquage des images",
"Failed to update cluster": "Échec de la mise à jour du cluster",
"Failed to update config": "Échec de la mise à jour de la configuration",
"Failed to verify '{{.driver_name}} info' will try again ...": "Échec de la vérification des informations sur '{{.driver_name}}' va réessayer ...",
@@ -413,6 +418,7 @@
"Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "Vous avez remarqué que vous avez un docker-env activé sur le pilote {{.driver_name}} dans ce terminal :",
"Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "Vous avez remarqué que vous avez un pilote podman-env activé sur {{.driver_name}} dans ce terminal :",
"Number of CPUs allocated to the minikube VM": "Nombre de processeurs alloués à la VM minikube.",
+ "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit and kvm2 drivers)": "Nombre de disques supplémentaires créés et attachés à la machine virtuelle minikube (actuellement implémenté uniquement pour les pilotes hyperkit et kvm2)",
"Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit driver)": "Nombre de disques supplémentaires créés et attachés à la machine virtuelle minikube (actuellement implémenté uniquement pour le pilote hyperkit)",
"Number of lines back to go within the log": "Nombre de lignes à remonter dans le journal",
"OS release is {{.pretty_name}}": "La version du système d'exploitation est {{.pretty_name}}",
@@ -437,6 +443,7 @@
"Paused {{.count}} containers in: {{.namespaces}}": "{{.count}} conteneurs suspendus dans : {{.namespaces}}",
"Pausing node {{.name}} ... ": "Suspendre le nœud {{.name}} ...",
"Permissions: {{.octalMode}} ({{.writtenMode}})": "Autorisations : {{.octalMode}} ({{.writtenMode}})",
+ "Please also attach the following file to the GitHub issue:": "Veuillez également joindre le fichier suivant au problème GitHub",
"Please attach the following file to the GitHub issue:": "Veuillez joindre le fichier suivant au problème GitHub :",
"Please create a cluster with bigger disk size: `minikube start --disk SIZE_MB` ": "Veuillez créer un cluster avec une plus grande taille de disque : `minikube start --disk SIZE_MB`",
"Please either authenticate to the registry or use --base-image flag to use a different registry.": "Veuillez vous authentifier auprès du registre ou utiliser l'indicateur --base-image pour utiliser un registre différent.",
@@ -447,11 +454,12 @@
"Please install the minikube kvm2 VM driver, or select an alternative --driver": "Veuillez installer le pilote minikube kvm2 VM, ou sélectionnez un --driver alternatif",
"Please make sure the service you are looking for is deployed or is in the correct namespace.": "Veuillez vous assurer que le service que vous recherchez est déployé ou se trouve dans le bon espace de noms.",
"Please provide a path or url to build": "Veuillez fournir un chemin ou une URL à construire",
- "Please provide an image in the container runtime to save from minikube via \u003cminikube image save IMAGE_NAME\u003e": "",
+ "Please provide an image in the container runtime to save from minikube via \u003cminikube image save IMAGE_NAME\u003e": "Veuillez fournir une image dans l'environnement d'exécution du conteneur à enregistrer à partir de minikube via \u003cminikube image save IMAGE_NAME\u003e",
"Please provide an image in your local daemon to load into minikube via \u003cminikube image load IMAGE_NAME\u003e": "Veuillez fournir une image dans votre démon local à charger dans minikube via \u003cminikube image load IMAGE_NAME\u003e",
- "Please provide source and target image": "",
+ "Please provide source and target image": "Veuillez fournir l'image source et cible",
"Please re-eval your docker-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} docker-env'\n\n\t": "Veuillez réévaluer votre docker-env, pour vous assurer que vos variables d'environnement ont des ports mis à jour :\n\n\t'minikube -p {{.profile_name}} docker-env'\n\n\t",
"Please re-eval your podman-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t": "Veuillez réévaluer votre podman-env, pour vous assurer que vos variables d'environnement ont des ports mis à jour :\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t",
+ "Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.": "Veuillez exécuter `minikube logs --file=logs.txt` et attachez logs.txt au problème GitHub.",
"Please see {{.documentation_url}} for more details": "Veuillez consulter {{.documentation_url}} pour plus de détails",
"Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "Veuillez spécifier le répertoire à monter : \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (exemple : \"/host-home:/vm-home\")",
"Please specify the path to copy: \n\tminikube cp \u003csource file path\u003e \u003ctarget file absolute path\u003e (example: \"minikube cp a/b.txt /copied.txt\")": "Veuillez spécifier le chemin à copier : \n\tminikube cp \u003cchemin du fichier source\u003e \u003cchemin absolu du fichier cible\u003e (exemple : \"minikube cp a/b.txt /copied.txt\")",
@@ -475,11 +483,11 @@
"Profile name '{{.profilename}}' is not valid": "Le nom de profil '{{.profilename}}' n'est pas valide",
"Profile name should be unique": "Le nom du profil doit être unique",
"Provide VM UUID to restore MAC address (hyperkit driver only)": "Fournit l'identifiant unique universel (UUID) de la VM pour restaurer l'adresse MAC (pilote hyperkit uniquement).",
- "Pull images": "",
+ "Pull images": "Extraction des images",
"Pull the remote image (no caching)": "Extraire l'image distante (pas de mise en cache)",
"Pulling base image ...": "Extraction de l'image de base...",
"Pulling images ...": "Extraction des images... ",
- "Push images": "",
+ "Push images": "Diffusion des images",
"Push the new image (requires tag)": "Pousser la nouvelle image (nécessite une balise)",
"Reboot to complete VirtualBox installation, verify that VirtualBox is not blocked by your system, and/or use another hypervisor": "Redémarrez pour terminer l'installation de VirtualBox, vérifiez que VirtualBox n'est pas bloqué par votre système et/ou utilisez un autre hyperviseur",
"Rebuild libvirt with virt-network support": "Reconstruire libvirt avec le support de virt-network",
@@ -537,7 +545,7 @@
"SSH key (ssh driver only)": "Clé SSH (pilote ssh uniquement)",
"SSH port (ssh driver only)": "Port SSH (pilote ssh uniquement)",
"SSH user (ssh driver only)": "Utilisateur SSH (pilote ssh uniquement)",
- "Save a image from minikube": "",
+ "Save a image from minikube": "Enregistrer une image de minikube",
"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'",
@@ -600,7 +608,7 @@
"Successfully stopped node {{.name}}": "Nœud {{.name}} arrêté avec succès",
"Suggestion: {{.advice}}": "Suggestion : {{.advice}}",
"System only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "Le système n'a que {{.size}} Mio disponibles, moins que les {{.req}} Mio requis pour Kubernetes",
- "Tag images": "",
+ "Tag images": "Marquer des images",
"Tag to apply to the new image (optional)": "Tag à appliquer à la nouvelle image (facultatif)",
"Target directory {{.path}} must be an absolute path": "Le répertoire cible {{.path}} doit être un chemin absolu",
"Target {{.path}} can not be empty": "La cible {{.path}} ne peut pas être vide",
@@ -628,6 +636,7 @@
"The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "Le pilote VM s'est terminé avec une erreur et est peut-être corrompu. Exécutez 'minikube start' avec --alsologtostderr -v=8 pour voir l'erreur",
"The VM that minikube is configured for no longer exists. Run 'minikube delete'": "La machine virtuelle pour laquelle minikube est configuré n'existe plus. Exécutez 'minikube delete'",
"The \\\"{{.name}}\\\" container runtime requires CNI": "L'environnement d'exécution du conteneur \\\"{{.name}}\\\" nécessite CNI",
+ "The ambassador addon has stopped working as of v1.23.0, for more details visit: https://github.com/datawire/ambassador-operator/issues/73": "Le module Ambassador a cessé de fonctionner à partir de la v1.23.0, pour plus de détails, visitez : https://github.com/datawire/ambassador-operator/issues/73",
"The apiserver listening port": "Port d'écoute du serveur d'API.",
"The apiserver name which is used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Nom du serveur d'API utilisé dans le certificat généré pour Kubernetes. Vous pouvez l'utiliser si vous souhaitez que le serveur d'API soit disponible en dehors de la machine.",
"The argument to pass the minikube mount command on start": "Argument à transmettre à la commande d'installation de minikube au démarrage.",
@@ -663,6 +672,7 @@
"The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "La version minimale requise pour podman est \"{{.minVersion}}\". votre version est \"{{.currentVersion}}\". minikube pourrait ne pas fonctionner. À utiliser à vos risques et périls. Pour installer la dernière version, veuillez consulter https://podman.io/getting-started/installation.html",
"The name of the network plugin": "Nom du plug-in réseau.",
"The named space to activate after start": "L'espace nommé à activer après le démarrage",
+ "The node to build on. Defaults to the primary control plane.": "",
"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "Le nœud pour lequel vérifier l'état. La valeur par défaut est le plan de contrôle. Laissez vide avec le format par défaut pour l'état sur tous les nœuds.",
"The node to get IP. Defaults to the primary control plane.": "Le nœud pour obtenir l'IP. La valeur par défaut est le plan de contrôle principal.",
"The node to get logs from. Defaults to the primary control plane.": "Le nœud à partir duquel obtenir les journaux. La valeur par défaut est le plan de contrôle principal.",
@@ -834,6 +844,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 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.": "Vous vous êtes authentifié avec un compte de service qui n'a pas de 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é.",
"You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "Vous avez choisi de désactiver le CNI mais le runtime du conteneur \\\"{{.name}}\\\" nécessite 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": "Vous avez sélectionné le pilote \"virtualbox\", mais il existe de meilleures options !\nPour de meilleures performances et une meilleure assistance, envisagez d'utiliser un autre pilote: {{.drivers}}\n\nPour désactiver cet avertissement, exécutez :\n\n\t $ minikube config set WantVirtualBoxDriverWarning false\n\n\nPour en savoir plus sur les pilotes minikube, consultez https://minikube.sigs.k8s.io/docs/drivers/\nPour voir les benchmarks, consultez https://minikube.sigs.k8s. io/docs/benchmarks/cpuusage/\n\n",
"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "Vous devrez peut-être supprimer la VM \"{{.name}}\" manuellement de votre hyperviseur.",
@@ -883,7 +894,7 @@
"failed to add node": "échec de l'ajout du nœud",
"failed to open browser: {{.error}}": "échec de l'ouverture du navigateur : {{.error}}",
"failed to save config": "échec de l'enregistrement de la configuration",
- "failed to set cloud shell kubelet config options": "",
+ "failed to set cloud shell kubelet config options": "échec de la définition des options de configuration cloud shell kubelet",
"failed to start node": "échec du démarrage du nœud",
"fish completion failed": "la complétion fish a échoué",
"fish completion.": "complétion fish.",
@@ -970,6 +981,7 @@
"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "{{.driver_name}} dispose de moins de 2 processeurs disponibles, mais Kubernetes nécessite au moins 2 procésseurs pour fonctionner",
"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "{{.driver_name}} ne dispose que de {{.container_limit}}Mo de mémoire, mais vous avez spécifié {{.specified_memory}}Mo",
"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "{{.driver}} ne dispose que de {{.size}}Mio disponible, moins que les {{.req}}Mio requis pour Kubernetes",
+ "{{.err}}": "",
"{{.extra_option_component_name}}.{{.key}}={{.value}}": "{{.extra_option_component_name}}.{{.key}}={{.value}}",
"{{.name}} doesn't have images.": "{{.name}} n'a pas d'images.",
"{{.name}} has following images:": "{{.name}} a les images suivantes :",
diff --git a/translations/ja.json b/translations/ja.json
index 3c8d2d6dcb3b..76d69183dc4b 100644
--- a/translations/ja.json
+++ b/translations/ja.json
@@ -69,6 +69,7 @@
"Bridge CNI is incompatible with multi-node clusters, use a different CNI": "",
"Build a container image in minikube": "",
"Build a container image, using the container runtime.": "",
+ "Build image on all nodes.": "",
"CGroup allocation is not available in your environment, You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CGroup allocation is not available in your environment. You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "",
@@ -79,6 +80,7 @@
"Cannot find directory {{.path}} for copy": "",
"Cannot find directory {{.path}} for mount": "マウントのためのディレクトリ{{.path}}が見つかりません",
"Cannot use both --output and --format options": "",
+ "Certificate {{.certPath}} has expired. Generating a new one...": "",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "",
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "",
"Check that libvirt is setup properly": "",
@@ -102,6 +104,7 @@
"Connect to LoadBalancer services": "LoadBalancer サービスに接続します",
"Consider creating a cluster with larger memory size using `minikube start --memory SIZE_MB` ": "",
"Consider increasing Docker Desktop's memory size.": "",
+ "Container runtime must be set to \\\"containerd\\\" for rootless": "",
"Continuously listing/getting the status with optional interval duration.": "",
"Control Plane could not update, try minikube delete --all --purge": "",
"Copy the specified file into minikube": "",
@@ -154,6 +157,7 @@
"Downloading VM boot image ...": "VM ブートイメージをダウンロードしています...",
"Downloading driver {{.driver}}:": "{{.driver}} ドライバをダウンロードしています:",
"Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not fully supported. Try using a different driver.": "",
+ "Duration until minikube certificate expiration, defaults to three years (26280h).": "",
"ERROR creating `registry-creds-acr` secret": "`registry-creds-acr` シークレット作成中にエラーが発生しました",
"ERROR creating `registry-creds-dpr` secret": "`registry-creds-dpr` シークレット作成中にエラーが発生しました",
"ERROR creating `registry-creds-ecr` secret: {{.error}}": "`registry-creds-ecr` シークレット作成中にエラーが発生しました。{{.error}}",
@@ -252,6 +256,7 @@
"Failed to read temp": "",
"Failed to reload cached images": "",
"Failed to remove image": "",
+ "Failed to remove images for profile {{.pName}} {{.error}}": "",
"Failed to save config {{.profile}}": "",
"Failed to save dir": "",
"Failed to save image": "",
@@ -335,7 +340,6 @@
"Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "Docker デーモンに渡す Docker レジストリが安全ではありません。デフォルトのサービス CIDR 範囲が自動的に追加されます",
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
"Install the latest hyperkit binary, and run 'minikube delete'": "",
- "Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
"Invalid port": "",
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
@@ -403,7 +407,7 @@
"Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "",
"Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "",
"Number of CPUs allocated to the minikube VM": "minikube VM に割り当てられた CPU の数",
- "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit driver)": "",
+ "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit and kvm2 drivers)": "",
"Number of lines back to go within the log": "",
"OS release is {{.pretty_name}}": "OS は {{.pretty_name}} です。",
"One of 'text', 'yaml' or 'json'.": "",
@@ -428,7 +432,7 @@
"Pausing node {{.name}} ...": "ノード {{.name}} を一時停止しています ...",
"Pausing node {{.name}} ... ": "",
"Permissions: {{.octalMode}} ({{.writtenMode}})": "",
- "Please attach the following file to the GitHub issue:": "",
+ "Please also attach the following file to the GitHub issue:": "",
"Please create a cluster with bigger disk size: `minikube start --disk SIZE_MB` ": "",
"Please either authenticate to the registry or use --base-image flag to use a different registry.": "",
"Please enter a value:": "",
@@ -443,6 +447,7 @@
"Please provide source and target image": "",
"Please re-eval your docker-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} docker-env'\n\n\t": "",
"Please re-eval your podman-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t": "",
+ "Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.": "",
"Please see {{.documentation_url}} for more details": "",
"Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "",
"Please specify the path to copy: \n\tminikube cp \u003csource file path\u003e \u003ctarget file absolute path\u003e (example: \"minikube cp a/b.txt /copied.txt\")": "",
@@ -621,6 +626,7 @@
"The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "",
"The VM that minikube is configured for no longer exists. Run 'minikube delete'": "",
"The \\\"{{.name}}\\\" container runtime requires CNI": "",
+ "The ambassador addon has stopped working as of v1.23.0, for more details visit: https://github.com/datawire/ambassador-operator/issues/73": "",
"The apiserver listening port": "API サーバー リスニング ポート",
"The apiserver name which is used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Kubernetes 用に生成された証明書で使用される API サーバー名。マシンの外部から API サーバーを利用できるようにする場合に使用します",
"The argument to pass the minikube mount command on start": "起動時に minikube マウント コマンドを渡す引数",
@@ -656,6 +662,7 @@
"The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "",
"The name of the network plugin": "ネットワーク プラグインの名前",
"The named space to activate after start": "",
+ "The node to build on. Defaults to the primary control plane.": "",
"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "",
"The node to get IP. Defaults to the primary control plane.": "",
"The node to get logs from. Defaults to the primary control plane.": "",
@@ -827,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 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.": "",
"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": "",
"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "ハイパーバイザから「{{.name}}」VM を手動で削除することが必要な可能性があります",
@@ -977,6 +985,7 @@
"{{.driver}} does not appear to be installed": "{{.driver}} がインストールされていないようです",
"{{.driver}} does not appear to be installed, but is specified by an existing profile. Please run 'minikube delete' or install {{.driver}}": "{{.driver}} がインストールされていないようですが、既存のプロフィールから指定されています。「 minikube delete 」を実行、あるいは {{.driver}} をインストールしてください",
"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+ "{{.err}}": "",
"{{.extra_option_component_name}}.{{.key}}={{.value}}": "{{.extra_option_component_name}}.{{.key}}={{.value}}",
"{{.name}} doesn't have images.": "",
"{{.name}} has following images:": "",
diff --git a/translations/ko.json b/translations/ko.json
index 7193f1085af9..192ddd1d06c0 100644
--- a/translations/ko.json
+++ b/translations/ko.json
@@ -74,6 +74,7 @@
"Bridge CNI is incompatible with multi-node clusters, use a different CNI": "",
"Build a container image in minikube": "minikube 내 컨테이너 이미지를 빌드합니다",
"Build a container image, using the container runtime.": "컨테이너 런타임을 사용하여 컨테이너 이미지를 빌드합니다.",
+ "Build image on all nodes.": "",
"CGroup allocation is not available in your environment, You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CGroup allocation is not available in your environment. You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "",
@@ -84,6 +85,7 @@
"Cannot find directory {{.path}} for copy": "복사하기 위한 디렉토리 {{.path}} 를 찾을 수 없습니다.",
"Cannot find directory {{.path}} for mount": "마운트하기 위한 디렉토리 {{.path}} 를 찾을 수 없습니다",
"Cannot use both --output and --format options": "--output 과 --format 옵션을 함께 사용할 수 없습니다",
+ "Certificate {{.certPath}} has expired. Generating a new one...": "",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "",
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "",
"Check that libvirt is setup properly": "",
@@ -109,6 +111,7 @@
"Connect to LoadBalancer services": "",
"Consider creating a cluster with larger memory size using `minikube start --memory SIZE_MB` ": "",
"Consider increasing Docker Desktop's memory size.": "",
+ "Container runtime must be set to \\\"containerd\\\" for rootless": "",
"Continuously listing/getting the status with optional interval duration.": "",
"Control Plane could not update, try minikube delete --all --purge": "",
"Copy the specified file into minikube": "",
@@ -166,6 +169,7 @@
"Downloading driver {{.driver}}:": "드라이버 {{.driver}} 다운로드 중 :",
"Downloading {{.name}} {{.version}}": "{{.name}} {{.version}} 다운로드 중",
"Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not fully supported. Try using a different driver.": "",
+ "Duration until minikube certificate expiration, defaults to three years (26280h).": "",
"ERROR creating `registry-creds-acr` secret": "registry-creds-acr` secret 생성 오류",
"ERROR creating `registry-creds-dpr` secret": "`registry-creds-dpr` secret 생성 오류",
"ERROR creating `registry-creds-ecr` secret: {{.error}}": "`registry-creds-ecr` secret 생성 오류: {{.error}}",
@@ -279,6 +283,7 @@
"Failed to read temp": "",
"Failed to reload cached images": "캐시된 이미지를 다시 불러오는 데 실패하였습니다",
"Failed to remove image": "",
+ "Failed to remove images for profile {{.pName}} {{.error}}": "",
"Failed to save config": "컨피그 저장에 실패하였습니다",
"Failed to save config {{.profile}}": "",
"Failed to save dir": "",
@@ -366,7 +371,6 @@
"Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "",
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
"Install the latest hyperkit binary, and run 'minikube delete'": "",
- "Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
"Invalid port": "",
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
@@ -428,7 +432,7 @@
"None of the known repositories in your location are accessible. Using {{.image_repository_name}} as fallback.": "",
"Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "",
"Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "",
- "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit driver)": "",
+ "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit and kvm2 drivers)": "",
"Number of lines back to go within the log": "",
"OS release is {{.pretty_name}}": "",
"One of 'text', 'yaml' or 'json'.": "",
@@ -452,7 +456,7 @@
"Paused {{.count}} containers in: {{.namespaces}}": "",
"Pausing node {{.name}} ... ": "",
"Permissions: {{.octalMode}} ({{.writtenMode}})": "",
- "Please attach the following file to the GitHub issue:": "",
+ "Please also attach the following file to the GitHub issue:": "",
"Please create a cluster with bigger disk size: `minikube start --disk SIZE_MB` ": "",
"Please either authenticate to the registry or use --base-image flag to use a different registry.": "",
"Please enter a value:": "값을 입력하세요",
@@ -467,6 +471,7 @@
"Please provide source and target image": "",
"Please re-eval your docker-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} docker-env'\n\n\t": "",
"Please re-eval your podman-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t": "",
+ "Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.": "",
"Please see {{.documentation_url}} for more details": "",
"Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "",
"Please specify the path to copy: \n\tminikube cp \u003csource file path\u003e \u003ctarget file absolute path\u003e (example: \"minikube cp a/b.txt /copied.txt\")": "",
@@ -510,7 +515,6 @@
"Removing {{.directory}} ...": "{{.directory}} 제거 중 ...",
"Requested cpu count {{.requested_cpus}} is greater than the available cpus of {{.avail_cpus}}": "",
"Requested cpu count {{.requested_cpus}} is less than the minimum allowed of {{.minimum_cpus}}": "",
- "Requested disk size {{.requested_size}} is less than minimum of {{.minimum_size}}": "",
"Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommend}}MB. Deployments may fail.": "",
"Requested memory allocation {{.requested}}MB is more than your system limit {{.system_limit}}MB.": "",
"Requested memory allocation {{.requested}}MiB is less than the usable minimum of {{.minimum_memory}}MB": "",
@@ -639,6 +643,7 @@
"The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "",
"The VM that minikube is configured for no longer exists. Run 'minikube delete'": "",
"The \\\"{{.name}}\\\" container runtime requires CNI": "",
+ "The ambassador addon has stopped working as of v1.23.0, for more details visit: https://github.com/datawire/ambassador-operator/issues/73": "",
"The apiserver listening port": "API 서버 수신 포트",
"The argument to pass the minikube mount command on start.": "",
"The authoritative apiserver hostname for apiserver certificates and connectivity. This can be used if you want to make the apiserver available from outside the machine": "",
@@ -667,6 +672,7 @@
"The minikube {{.driver_name}} container exited unexpectedly.": "",
"The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "",
"The named space to activate after start": "",
+ "The node to build on. Defaults to the primary control plane.": "",
"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "",
"The node to get IP. Defaults to the primary control plane.": "",
"The node to get logs from. Defaults to the primary control plane.": "",
@@ -799,7 +805,6 @@
"Using the {{.driver}} driver based on user configuration": "유저 환경 설정 정보에 기반하여 {{.driver}} 드라이버를 사용하는 중",
"Valid components are: {{.valid_extra_opts}}": "",
"Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "",
- "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "",
"Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "",
"Verifying Kubernetes components...": "Kubernetes 구성 요소를 확인...",
"Verifying dashboard health ...": "",
@@ -829,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 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.": "",
"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": "",
"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "",
@@ -972,6 +978,7 @@
"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
"{{.driver}} does not appear to be installed": "{{.driver}} 가 설치되지 않았습니다",
"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+ "{{.err}}": "",
"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
"{{.name}} cluster does not exist": "{{.name}} 클러스터가 존재하지 않습니다",
"{{.name}} doesn't have images.": "{{.name}} 이미지가 없습니다.",
diff --git a/translations/pl.json b/translations/pl.json
index a5d9f3016717..3c3f488c4ee3 100644
--- a/translations/pl.json
+++ b/translations/pl.json
@@ -71,6 +71,7 @@
"Bridge CNI is incompatible with multi-node clusters, use a different CNI": "",
"Build a container image in minikube": "Zbuduj obraz kontenera w minikube",
"Build a container image, using the container runtime.": "Zbuduj obraz kontenera używając środowiska uruchomieniowego kontenera",
+ "Build image on all nodes.": "",
"CGroup allocation is not available in your environment, You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CGroup allocation is not available in your environment. You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "",
@@ -81,6 +82,7 @@
"Cannot find directory {{.path}} for copy": "Nie znaleziono katalogu {{.path}} do skopiowania",
"Cannot find directory {{.path}} for mount": "Nie można odnaleźć folderu {{.path}} do zamontowania",
"Cannot use both --output and --format options": "Nie można użyć obydwu opcji --output i --format jednocześnie",
+ "Certificate {{.certPath}} has expired. Generating a new one...": "",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "Sprawdź czy są uruchomione jakieś niepotrzebne pody za pomocą komendy: 'kubectl get pod -A' ",
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "",
"Check that libvirt is setup properly": "Sprawdź czy bibliteka libvirt jest poprawnie zainstalowana",
@@ -106,6 +108,7 @@
"Connect to LoadBalancer services": "Połącz się do serwisów LoadBalancer'a",
"Consider creating a cluster with larger memory size using `minikube start --memory SIZE_MB` ": "",
"Consider increasing Docker Desktop's memory size.": "Rozważ przydzielenie większej ilości pamięci RAM dla programu Docker Desktop",
+ "Container runtime must be set to \\\"containerd\\\" for rootless": "",
"Continuously listing/getting the status with optional interval duration.": "",
"Control Plane could not update, try minikube delete --all --purge": "",
"Copy the specified file into minikube": "Skopiuj dany plik do minikube",
@@ -166,6 +169,7 @@
"Downloading driver {{.driver}}:": "",
"Downloading {{.name}} {{.version}}": "Pobieranie {{.name}} {{.version}}",
"Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not fully supported. Try using a different driver.": "",
+ "Duration until minikube certificate expiration, defaults to three years (26280h).": "",
"ERROR creating `registry-creds-acr` secret": "",
"ERROR creating `registry-creds-dpr` secret": "",
"ERROR creating `registry-creds-ecr` secret: {{.error}}": "",
@@ -266,6 +270,7 @@
"Failed to read temp": "",
"Failed to reload cached images": "",
"Failed to remove image": "",
+ "Failed to remove images for profile {{.pName}} {{.error}}": "",
"Failed to remove profile": "Usunięcie profilu nie powiodło się",
"Failed to save config": "Zapisywanie konfiguracji nie powiodło się",
"Failed to save config {{.profile}}": "",
@@ -353,7 +358,6 @@
"Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "",
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
"Install the latest hyperkit binary, and run 'minikube delete'": "",
- "Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
"Invalid port": "",
"Invalid size passed in argument: {{.error}}": "Nieprawidłowy rozmiar przekazany w argumencie: {{.error}}",
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
@@ -420,7 +424,7 @@
"Number of CPUs allocated to Kubernetes.": "Liczba procesorów przypisana do Kubernetesa",
"Number of CPUs allocated to the minikube VM": "Liczba procesorów przypisana do maszyny wirtualnej minikube",
"Number of CPUs allocated to the minikube VM.": "Liczba procesorów przypisana do maszyny wirtualnej minikube",
- "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit driver)": "",
+ "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit and kvm2 drivers)": "",
"Number of lines back to go within the log": "",
"OS release is {{.pretty_name}}": "Wersja systemu operacyjnego to {{.pretty_name}}",
"One of 'text', 'yaml' or 'json'.": "",
@@ -445,6 +449,7 @@
"Paused {{.count}} containers in: {{.namespaces}}": "Zatrzymane kontenery: {{.count}} w przestrzeniach nazw: {{.namespaces}}",
"Pausing node {{.name}} ... ": "Zatrzymywanie węzła {{.name}} ... ",
"Permissions: {{.octalMode}} ({{.writtenMode}})": "",
+ "Please also attach the following file to the GitHub issue:": "",
"Please attach the following file to the GitHub issue:": "Dołącz następujący plik do zgłoszenia problemu na GitHubie:",
"Please create a cluster with bigger disk size: `minikube start --disk SIZE_MB` ": "Utwórz klaster z większym rozmiarem dysku: `minikube start --disk SIZE_MB`",
"Please either authenticate to the registry or use --base-image flag to use a different registry.": "Uwierzytelnij się w rejestrze lub użyć flagi --base-image w celu użycia innego rejestru.",
@@ -460,6 +465,7 @@
"Please provide source and target image": "",
"Please re-eval your docker-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} docker-env'\n\n\t": "",
"Please re-eval your podman-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t": "",
+ "Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.": "",
"Please see {{.documentation_url}} for more details": "Zobacz {{.documentation_url}} żeby uzyskać więcej informacji",
"Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "Sprecyzuj katalog, który ma być zamontowany: \n\tminikube mount \u003ckatalog źródłowy\u003e:\u003ckatalog docelowy\u003e (przykład: \"/host-home:/vm-home\")",
"Please specify the path to copy: \n\tminikube cp \u003csource file path\u003e \u003ctarget file absolute path\u003e (example: \"minikube cp a/b.txt /copied.txt\")": "",
@@ -506,7 +512,6 @@
"Removing {{.directory}} ...": "",
"Requested cpu count {{.requested_cpus}} is greater than the available cpus of {{.avail_cpus}}": "",
"Requested cpu count {{.requested_cpus}} is less than the minimum allowed of {{.minimum_cpus}}": "",
- "Requested disk size {{.requested_size}} is less than minimum of {{.minimum_size}}": "",
"Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommend}}MB. Deployments may fail.": "",
"Requested memory allocation {{.requested}}MB is more than your system limit {{.system_limit}}MB.": "",
"Requested memory allocation {{.requested}}MiB is less than the usable minimum of {{.minimum_memory}}MB": "",
@@ -641,6 +646,7 @@
"The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "",
"The VM that minikube is configured for no longer exists. Run 'minikube delete'": "",
"The \\\"{{.name}}\\\" container runtime requires CNI": "",
+ "The ambassador addon has stopped working as of v1.23.0, for more details visit: https://github.com/datawire/ambassador-operator/issues/73": "",
"The apiserver listening port": "API nasłuchuje na porcie:",
"The argument to pass the minikube mount command on start.": "",
"The authoritative apiserver hostname for apiserver certificates and connectivity. This can be used if you want to make the apiserver available from outside the machine": "",
@@ -675,6 +681,7 @@
"The name of the network plugin": "Nazwa pluginu sieciowego",
"The name of the network plugin.": "Nazwa pluginu sieciowego",
"The named space to activate after start": "",
+ "The node to build on. Defaults to the primary control plane.": "",
"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "",
"The node to get IP. Defaults to the primary control plane.": "",
"The node to get logs from. Defaults to the primary control plane.": "",
@@ -807,7 +814,6 @@
"VM driver is one of: %v": "Sterownik wirtualnej maszyny to jeden z: %v",
"Valid components are: {{.valid_extra_opts}}": "",
"Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "",
- "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "",
"Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "Zweryfikuj czy zmienne HTTP_PROXY i HTTPS_PROXY są ustawione poprawnie",
"Verify the IP address of the running cluster in kubeconfig.": "Weryfikacja adresu IP działającego klastra w kubeconfig",
"Verifying Kubernetes components...": "",
@@ -838,6 +844,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 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.": "",
"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": "",
"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "",
@@ -974,6 +981,7 @@
"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "",
"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "sterownik {{.driver}} ma tylko {{.size}}MiB dostępnej przestrzeni dyskowej, to mniej niż wymagane {{.req}}MiB dla Kubernetesa",
+ "{{.err}}": "",
"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
"{{.name}} cluster does not exist": "Klaster {{.name}} nie istnieje",
"{{.name}} doesn't have images.": "{{.name}} nie ma obrazów.",
diff --git a/translations/strings.txt b/translations/strings.txt
index e2759bcd63eb..1459f5f1f06f 100644
--- a/translations/strings.txt
+++ b/translations/strings.txt
@@ -65,6 +65,7 @@
"Bridge CNI is incompatible with multi-node clusters, use a different CNI": "",
"Build a container image in minikube": "",
"Build a container image, using the container runtime.": "",
+ "Build image on all nodes.": "",
"CGroup allocation is not available in your environment, You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CGroup allocation is not available in your environment. You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "",
@@ -75,6 +76,7 @@
"Cannot find directory {{.path}} for copy": "",
"Cannot find directory {{.path}} for mount": "",
"Cannot use both --output and --format options": "",
+ "Certificate {{.certPath}} has expired. Generating a new one...": "",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "",
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "",
"Check that libvirt is setup properly": "",
@@ -98,6 +100,7 @@
"Connect to LoadBalancer services": "",
"Consider creating a cluster with larger memory size using `minikube start --memory SIZE_MB` ": "",
"Consider increasing Docker Desktop's memory size.": "",
+ "Container runtime must be set to \\\"containerd\\\" for rootless": "",
"Continuously listing/getting the status with optional interval duration.": "",
"Control Plane could not update, try minikube delete --all --purge": "",
"Copy the specified file into minikube": "",
@@ -149,6 +152,7 @@
"Downloading VM boot image ...": "",
"Downloading driver {{.driver}}:": "",
"Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not fully supported. Try using a different driver.": "",
+ "Duration until minikube certificate expiration, defaults to three years (26280h).": "",
"ERROR creating `registry-creds-acr` secret": "",
"ERROR creating `registry-creds-dpr` secret": "",
"ERROR creating `registry-creds-ecr` secret: {{.error}}": "",
@@ -243,6 +247,7 @@
"Failed to read temp": "",
"Failed to reload cached images": "",
"Failed to remove image": "",
+ "Failed to remove images for profile {{.pName}} {{.error}}": "",
"Failed to save config {{.profile}}": "",
"Failed to save dir": "",
"Failed to save image": "",
@@ -323,7 +328,6 @@
"Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "",
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
"Install the latest hyperkit binary, and run 'minikube delete'": "",
- "Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
"Invalid port": "",
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
@@ -382,7 +386,7 @@
"None of the known repositories in your location are accessible. Using {{.image_repository_name}} as fallback.": "",
"Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "",
"Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "",
- "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit driver)": "",
+ "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit and kvm2 drivers)": "",
"Number of lines back to go within the log": "",
"OS release is {{.pretty_name}}": "",
"One of 'text', 'yaml' or 'json'.": "",
@@ -406,7 +410,7 @@
"Paused {{.count}} containers in: {{.namespaces}}": "",
"Pausing node {{.name}} ... ": "",
"Permissions: {{.octalMode}} ({{.writtenMode}})": "",
- "Please attach the following file to the GitHub issue:": "",
+ "Please also attach the following file to the GitHub issue:": "",
"Please create a cluster with bigger disk size: `minikube start --disk SIZE_MB` ": "",
"Please either authenticate to the registry or use --base-image flag to use a different registry.": "",
"Please enter a value:": "",
@@ -421,6 +425,7 @@
"Please provide source and target image": "",
"Please re-eval your docker-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} docker-env'\n\n\t": "",
"Please re-eval your podman-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t": "",
+ "Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.": "",
"Please see {{.documentation_url}} for more details": "",
"Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "",
"Please specify the path to copy: \n\tminikube cp \u003csource file path\u003e \u003ctarget file absolute path\u003e (example: \"minikube cp a/b.txt /copied.txt\")": "",
@@ -464,7 +469,6 @@
"Removing {{.directory}} ...": "",
"Requested cpu count {{.requested_cpus}} is greater than the available cpus of {{.avail_cpus}}": "",
"Requested cpu count {{.requested_cpus}} is less than the minimum allowed of {{.minimum_cpus}}": "",
- "Requested disk size {{.requested_size}} is less than minimum of {{.minimum_size}}": "",
"Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommend}}MB. Deployments may fail.": "",
"Requested memory allocation {{.requested}}MB is more than your system limit {{.system_limit}}MB.": "",
"Requested memory allocation {{.requested}}MiB is less than the usable minimum of {{.minimum_memory}}MB": "",
@@ -586,6 +590,7 @@
"The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "",
"The VM that minikube is configured for no longer exists. Run 'minikube delete'": "",
"The \\\"{{.name}}\\\" container runtime requires CNI": "",
+ "The ambassador addon has stopped working as of v1.23.0, for more details visit: https://github.com/datawire/ambassador-operator/issues/73": "",
"The apiserver listening port": "",
"The argument to pass the minikube mount command on start.": "",
"The authoritative apiserver hostname for apiserver certificates and connectivity. This can be used if you want to make the apiserver available from outside the machine": "",
@@ -614,6 +619,7 @@
"The minikube {{.driver_name}} container exited unexpectedly.": "",
"The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "",
"The named space to activate after start": "",
+ "The node to build on. Defaults to the primary control plane.": "",
"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "",
"The node to get IP. Defaults to the primary control plane.": "",
"The node to get logs from. Defaults to the primary control plane.": "",
@@ -740,7 +746,6 @@
"Using the {{.driver}} driver based on user configuration": "",
"Valid components are: {{.valid_extra_opts}}": "",
"Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "",
- "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "",
"Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "",
"Verifying Kubernetes components...": "",
"Verifying dashboard health ...": "",
@@ -767,6 +772,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 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.": "",
"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": "",
"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "",
@@ -900,6 +906,7 @@
"{{.driver_name}} has less than 2 CPUs available, but Kubernetes requires at least 2 to be available": "",
"{{.driver_name}} has only {{.container_limit}}MB memory but you specified {{.specified_memory}}MB": "",
"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+ "{{.err}}": "",
"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
"{{.name}} doesn't have images.": "",
"{{.name}} has following images:": "",
diff --git a/translations/zh-CN.json b/translations/zh-CN.json
index 7fbfaf21e285..6a1aae7ad4e9 100644
--- a/translations/zh-CN.json
+++ b/translations/zh-CN.json
@@ -85,6 +85,7 @@
"Bridge CNI is incompatible with multi-node clusters, use a different CNI": "",
"Build a container image in minikube": "",
"Build a container image, using the container runtime.": "",
+ "Build image on all nodes.": "",
"CGroup allocation is not available in your environment, You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CGroup allocation is not available in your environment. You might be running minikube in a nested container. Try running:\n\t\t\t\n\tminikube start --extra-config=kubelet.cgroups-per-qos=false --extra-config=kubelet.enforce-node-allocatable=\"\"\n\n\t\t\t\n\t\t\t": "",
"CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto)": "",
@@ -95,6 +96,7 @@
"Cannot find directory {{.path}} for copy": "",
"Cannot find directory {{.path}} for mount": "找不到用来挂载的 {{.path}} 目录",
"Cannot use both --output and --format options": "不能同时使用 --output 和 --format 选项",
+ "Certificate {{.certPath}} has expired. Generating a new one...": "",
"Check if you have unnecessary pods running by running 'kubectl get po -A": "",
"Check output of 'journalctl -xeu kubelet', try passing --extra-config=kubelet.cgroup-driver=systemd to minikube start": "检查 'journalctl -xeu kubelet' 的输出,尝试启动 minikube 时添加参数 --extra-config=kubelet.cgroup-driver=systemd",
"Check that SELinux is disabled, and that the provided apiserver flags are valid": "检查 SELinux 是否禁用,且提供的 apiserver 标志是否有效",
@@ -125,6 +127,7 @@
"Connect to LoadBalancer services": "连接到 LoadBalancer 服务",
"Consider creating a cluster with larger memory size using `minikube start --memory SIZE_MB` ": "",
"Consider increasing Docker Desktop's memory size.": "",
+ "Container runtime must be set to \\\"containerd\\\" for rootless": "",
"Continuously listing/getting the status with optional interval duration.": "",
"Control Plane could not update, try minikube delete --all --purge": "",
"Copy the specified file into minikube": "",
@@ -191,6 +194,7 @@
"Downloading driver {{.driver}}:": "正在下载驱动 {{.driver}}:",
"Downloading {{.name}} {{.version}}": "正在下载 {{.name}} {{.version}}",
"Due to networking limitations of driver {{.driver_name}}, {{.addon_name}} addon is not fully supported. Try using a different driver.": "",
+ "Duration until minikube certificate expiration, defaults to three years (26280h).": "",
"ERROR creating `registry-creds-acr` secret": "",
"ERROR creating `registry-creds-dpr` secret": "创建 `registry-creds-dpr` secret 时出错",
"ERROR creating `registry-creds-ecr` secret: {{.error}}": "创建 `registry-creds-ecr` secret 时出错:{{.error}}",
@@ -329,6 +333,7 @@
"Failed to read temp": "",
"Failed to reload cached images": "重新加载缓存镜像失败",
"Failed to remove image": "",
+ "Failed to remove images for profile {{.pName}} {{.error}}": "",
"Failed to remove profile": "无法删除配置文件",
"Failed to save config": "无法保存配置",
"Failed to save config {{.profile}}": "",
@@ -425,7 +430,6 @@
"Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "传递给 Docker 守护进程的不安全 Docker 注册表。系统会自动添加默认服务 CIDR 范围。",
"Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "",
"Install the latest hyperkit binary, and run 'minikube delete'": "",
- "Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "",
"Invalid port": "",
"Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "",
"Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "",
@@ -493,7 +497,7 @@
"Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "",
"Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "",
"Number of CPUs allocated to the minikube VM": "分配给 minikube 虚拟机的 CPU 的数量",
- "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit driver)": "",
+ "Number of extra disks created and attached to the minikube VM (currently only implemented for hyperkit and kvm2 drivers)": "",
"Number of lines back to go within the log": "",
"OS release is {{.pretty_name}}": "",
"One of 'text', 'yaml' or 'json'.": "",
@@ -519,7 +523,7 @@
"Paused {{.count}} containers in: {{.namespaces}}": "",
"Pausing node {{.name}} ... ": "",
"Permissions: {{.octalMode}} ({{.writtenMode}})": "权限: {{.octalMode}} ({{.writtenMode}})",
- "Please attach the following file to the GitHub issue:": "",
+ "Please also attach the following file to the GitHub issue:": "",
"Please create a cluster with bigger disk size: `minikube start --disk SIZE_MB` ": "",
"Please either authenticate to the registry or use --base-image flag to use a different registry.": "",
"Please enter a value:": "请输入一个值:",
@@ -534,6 +538,7 @@
"Please provide source and target image": "",
"Please re-eval your docker-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} docker-env'\n\n\t": "",
"Please re-eval your podman-env, To ensure your environment variables have updated ports:\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t": "",
+ "Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue.": "",
"Please see {{.documentation_url}} for more details": "",
"Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "",
"Please specify the path to copy: \n\tminikube cp \u003csource file path\u003e \u003ctarget file absolute path\u003e (example: \"minikube cp a/b.txt /copied.txt\")": "",
@@ -728,6 +733,7 @@
"The VM driver exited with an error, and may be corrupt. Run 'minikube start' with --alsologtostderr -v=8 to see the error": "",
"The VM that minikube is configured for no longer exists. Run 'minikube delete'": "",
"The \\\"{{.name}}\\\" container runtime requires CNI": "",
+ "The ambassador addon has stopped working as of v1.23.0, for more details visit: https://github.com/datawire/ambassador-operator/issues/73": "",
"The apiserver listening port": "apiserver 侦听端口",
"The apiserver name which is used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "在为 kubernetes 生成的证书中使用的 apiserver 名称。如果您希望将此 apiserver 设置为可从机器外部访问,则可以使用这组 apiserver 名称",
"The argument to pass the minikube mount command on start": "用于在启动时传递 minikube 装载命令的参数",
@@ -763,6 +769,7 @@
"The minimum required version for podman is \"{{.minVersion}}\". your version is \"{{.currentVersion}}\". minikube might not work. use at your own risk. To install latest version please see https://podman.io/getting-started/installation.html": "",
"The name of the network plugin": "网络插件的名称",
"The named space to activate after start": "",
+ "The node to build on. Defaults to the primary control plane.": "",
"The node to check status for. Defaults to control plane. Leave blank with default format for status on all nodes.": "",
"The node to get IP. Defaults to the primary control plane.": "",
"The node to get logs from. Defaults to the primary control plane.": "",
@@ -908,7 +915,6 @@
"VM may be unable to resolve external DNS records": "虚拟机可能无法解析外部 DNS 记录",
"Valid components are: {{.valid_extra_opts}}": "",
"Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "",
- "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "",
"Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "验证是否正确设置了 HTTP_PROXY 和 HTTPS_PROXY 环境变量。",
"Verify the IP address of the running cluster in kubeconfig.": "在 kubeconfig 中验证正在运行的集群 IP 地址。",
"Verifying Kubernetes components...": "",
@@ -943,6 +949,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 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.": "",
"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": "",
"You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "您可能需要从管理程序中手动移除“{{.name}}”虚拟机",
@@ -1084,6 +1091,7 @@
"{{.driver}} does not appear to be installed": "似乎并未安装 {{.driver}}",
"{{.driver}} does not appear to be installed, but is specified by an existing profile. Please run 'minikube delete' or install {{.driver}}": "似乎并未安装 {{.driver}},但已被当前的配置文件指定。请执行 'minikube delete' 或者安装 {{.driver}}",
"{{.driver}} only has {{.size}}MiB available, less than the required {{.req}}MiB for Kubernetes": "",
+ "{{.err}}": "",
"{{.extra_option_component_name}}.{{.key}}={{.value}}": "",
"{{.name}} doesn't have images.": "",
"{{.name}} has following images:": "",