From f84ae2aaf7077d294eefa1bce5171f63572833d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Tue, 3 Aug 2021 13:16:01 +0200 Subject: [PATCH 001/129] Use cri-dockerd instead of dockershim where needed Starting with Kubernetes version 1.23, the CRI socket for Docker is handled externally instead of internally. --- pkg/minikube/cruntime/cruntime.go | 12 +++++++++-- pkg/minikube/cruntime/cruntime_test.go | 27 ++++++++++++++++++++++++ pkg/minikube/cruntime/docker.go | 29 ++++++++++++++++++++++++-- 3 files changed, 64 insertions(+), 4 deletions(-) diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go index 95d9084839..f14ae4fecb 100644 --- a/pkg/minikube/cruntime/cruntime.go +++ b/pkg/minikube/cruntime/cruntime.go @@ -193,13 +193,21 @@ func New(c Config) (Manager, error) { switch c.Type { case "", "docker": + sp := c.Socket + cs := "" + // There is no more dockershim socket, in Kubernetes version 1.23 and beyond + if sp == "" && c.KubernetesVersion.GTE(semver.Version{Major: 1, Minor: 23}) { + sp = ExternalDockerCRISocket + cs = "cri-dockerd.service" + } return &Docker{ - Socket: c.Socket, + Socket: sp, Runner: c.Runner, ImageRepository: c.ImageRepository, KubernetesVersion: c.KubernetesVersion, Init: sm, - UseCRI: (c.Socket != ""), // !dockershim + UseCRI: (sp != ""), // !dockershim + CRIService: cs, }, nil case "crio", "cri-o": return &CRIO{ diff --git a/pkg/minikube/cruntime/cruntime_test.go b/pkg/minikube/cruntime/cruntime_test.go index ca1c6cd54b..b313df3ce6 100644 --- a/pkg/minikube/cruntime/cruntime_test.go +++ b/pkg/minikube/cruntime/cruntime_test.go @@ -23,6 +23,7 @@ import ( "strings" "testing" + "github.com/blang/semver/v4" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/pkg/errors" @@ -56,6 +57,32 @@ func TestName(t *testing.T) { } } +func TestDefaultDockerSocketPath(t *testing.T) { + var tests = []struct { + version string + want string + }{ + {"1.20.0", InternalDockerCRISocket}, + {"1.21.3", InternalDockerCRISocket}, + {"1.23.0", ExternalDockerCRISocket}, + {"1.24.6", ExternalDockerCRISocket}, + } + for _, tc := range tests { + runtime := "docker" + version := semver.MustParse(tc.version) + t.Run(runtime, func(t *testing.T) { + r, err := New(Config{Type: runtime, KubernetesVersion: version}) + if err != nil { + t.Fatalf("New(%s): %v", tc.version, err) + } + got := r.SocketPath() + if got != tc.want { + t.Errorf("SocketPath(%s) = %q, want: %q", tc.version, got, tc.want) + } + }) + } +} + func TestImageExists(t *testing.T) { var tests = []struct { runtime string diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index c25c6cc930..2e402bdf20 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -40,6 +40,9 @@ import ( // KubernetesContainerPrefix is the prefix of each Kubernetes container const KubernetesContainerPrefix = "k8s_" +const InternalDockerCRISocket = "/var/run/dockershim.sock" +const ExternalDockerCRISocket = "/var/run/cri-dockerd.sock" + // ErrISOFeature is the error returned when disk image is missing features type ErrISOFeature struct { missing string @@ -64,6 +67,7 @@ type Docker struct { KubernetesVersion semver.Version Init sysinit.Manager UseCRI bool + CRIService string } // Name is a human readable name for Docker @@ -92,7 +96,7 @@ func (r *Docker) SocketPath() string { if r.Socket != "" { return r.Socket } - return "/var/run/dockershim.sock" + return InternalDockerCRISocket } // Available returns an error if it is not possible to use this runtime on a host @@ -140,7 +144,20 @@ func (r *Docker) Enable(disOthers, forceSystemd bool) error { return r.Init.Restart("docker") } - return r.Init.Start("docker") + if err := r.Init.Start("docker"); err != nil { + return err + } + + if r.CRIService != "" { + if err := r.Init.Enable(r.CRIService); err != nil { + return err + } + if err := r.Init.Start(r.CRIService); err != nil { + return err + } + } + + return nil } // Restart restarts Docker on a host @@ -162,6 +179,14 @@ func (r *Docker) Disable() error { if err := r.Init.Disable("docker.socket"); err != nil { klog.ErrorS(err, "Failed to disable", "service", "docker.socket") } + if r.CRIService != "" { + if err := r.Init.Stop(r.CRIService); err != nil { + return err + } + if err := r.Init.Disable(r.CRIService); err != nil { + return err + } + } return r.Init.Mask("docker.service") } From 52dcf3d283c860aeee16377198a636e584e4ede0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Tue, 3 Aug 2021 13:28:37 +0200 Subject: [PATCH 002/129] Use the socket systemd unit instead of the service The socket-activated service for cri-dockerd will start on demand, similar to how the docker service works (for /var/run/docker.sock) --- pkg/minikube/cruntime/cruntime.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go index f14ae4fecb..ce03e575d2 100644 --- a/pkg/minikube/cruntime/cruntime.go +++ b/pkg/minikube/cruntime/cruntime.go @@ -198,7 +198,7 @@ func New(c Config) (Manager, error) { // There is no more dockershim socket, in Kubernetes version 1.23 and beyond if sp == "" && c.KubernetesVersion.GTE(semver.Version{Major: 1, Minor: 23}) { sp = ExternalDockerCRISocket - cs = "cri-dockerd.service" + cs = "cri-dockerd.socket" } return &Docker{ Socket: sp, From 51b3f1c82b9503621ea9b94fbc37bd4b29b620f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Wed, 4 Aug 2021 19:58:36 +0200 Subject: [PATCH 003/129] The socket has a different name than the package It is cri-docker.sock, even for cri-dockerd deb --- pkg/minikube/cruntime/cruntime.go | 2 +- pkg/minikube/cruntime/docker.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go index ce03e575d2..a9ee611860 100644 --- a/pkg/minikube/cruntime/cruntime.go +++ b/pkg/minikube/cruntime/cruntime.go @@ -198,7 +198,7 @@ func New(c Config) (Manager, error) { // There is no more dockershim socket, in Kubernetes version 1.23 and beyond if sp == "" && c.KubernetesVersion.GTE(semver.Version{Major: 1, Minor: 23}) { sp = ExternalDockerCRISocket - cs = "cri-dockerd.socket" + cs = "cri-docker.socket" } return &Docker{ Socket: sp, diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index 2e402bdf20..9bca426f2d 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -41,7 +41,7 @@ import ( const KubernetesContainerPrefix = "k8s_" const InternalDockerCRISocket = "/var/run/dockershim.sock" -const ExternalDockerCRISocket = "/var/run/cri-dockerd.sock" +const ExternalDockerCRISocket = "/var/run/cri-docker.sock" // ErrISOFeature is the error returned when disk image is missing features type ErrISOFeature struct { From 865e5be0a67e66d3d2ebd68129e2728fb0278993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Wed, 4 Aug 2021 20:09:54 +0200 Subject: [PATCH 004/129] Stop CRIDocker socket before Docker socket That is, reverse order from when starting up. --- pkg/minikube/cruntime/docker.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index 9bca426f2d..4e3b7dc56e 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -167,6 +167,14 @@ func (r *Docker) Restart() error { // Disable idempotently disables Docker on a host func (r *Docker) Disable() error { + if r.CRIService != "" { + if err := r.Init.Stop(r.CRIService); err != nil { + return err + } + if err := r.Init.Disable(r.CRIService); err != nil { + return err + } + } klog.Info("disabling docker service ...") // because #10373 if err := r.Init.ForceStop("docker.socket"); err != nil { @@ -179,14 +187,6 @@ func (r *Docker) Disable() error { if err := r.Init.Disable("docker.socket"); err != nil { klog.ErrorS(err, "Failed to disable", "service", "docker.socket") } - if r.CRIService != "" { - if err := r.Init.Stop(r.CRIService); err != nil { - return err - } - if err := r.Init.Disable(r.CRIService); err != nil { - return err - } - } return r.Init.Mask("docker.service") } From 9957016111b5cf87653cf2325698229d32c86b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Fri, 6 Aug 2021 09:17:57 +0200 Subject: [PATCH 005/129] Fix version comparison for pre-release versions --- pkg/minikube/cruntime/cruntime.go | 2 +- pkg/minikube/cruntime/cruntime_test.go | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go index a9ee611860..1c1b424015 100644 --- a/pkg/minikube/cruntime/cruntime.go +++ b/pkg/minikube/cruntime/cruntime.go @@ -196,7 +196,7 @@ func New(c Config) (Manager, error) { sp := c.Socket cs := "" // There is no more dockershim socket, in Kubernetes version 1.23 and beyond - if sp == "" && c.KubernetesVersion.GTE(semver.Version{Major: 1, Minor: 23}) { + if sp == "" && c.KubernetesVersion.GTE(semver.MustParse("1.23.0-alpha.0")) { sp = ExternalDockerCRISocket cs = "cri-docker.socket" } diff --git a/pkg/minikube/cruntime/cruntime_test.go b/pkg/minikube/cruntime/cruntime_test.go index b313df3ce6..1e1e324f9e 100644 --- a/pkg/minikube/cruntime/cruntime_test.go +++ b/pkg/minikube/cruntime/cruntime_test.go @@ -64,6 +64,8 @@ func TestDefaultDockerSocketPath(t *testing.T) { }{ {"1.20.0", InternalDockerCRISocket}, {"1.21.3", InternalDockerCRISocket}, + {"1.23.0-alpha.0", ExternalDockerCRISocket}, + {"1.23.0-beta.0", ExternalDockerCRISocket}, {"1.23.0", ExternalDockerCRISocket}, {"1.24.6", ExternalDockerCRISocket}, } From c738c78c591b9aa4d3938e68dcdf1fa6d1ad651e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Fri, 6 Aug 2021 10:02:11 +0200 Subject: [PATCH 006/129] Make sure to pass k8s version for socket path --- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 31 +++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index e2990381a1..fa8ec8f662 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -788,14 +788,15 @@ func (k *Bootstrapper) GenerateToken(cc config.ClusterConfig) (string, error) { joinCmd = fmt.Sprintf("%s --ignore-preflight-errors=all", strings.TrimSpace(joinCmd)) // avoid "Found multiple CRI sockets, please use --cri-socket to select one: /var/run/dockershim.sock, /var/run/crio/crio.sock" error - cr, err := cruntime.New(cruntime.Config{Type: cc.KubernetesConfig.ContainerRuntime, Runner: k.c, Socket: cc.KubernetesConfig.CRISocket}) + version, err := util.ParseKubernetesVersion(cc.KubernetesConfig.KubernetesVersion) + if err != nil { + return "", errors.Wrap(err, "parsing Kubernetes version") + } + cr, err := cruntime.New(cruntime.Config{Type: cc.KubernetesConfig.ContainerRuntime, Runner: k.c, Socket: cc.KubernetesConfig.CRISocket, KubernetesVersion: version}) if err != nil { klog.Errorf("cruntime: %v", err) } sp := cr.SocketPath() - if sp == "" { - sp = kconst.DefaultDockerCRISocket - } joinCmd = fmt.Sprintf("%s --cri-socket %s", joinCmd, sp) return joinCmd, nil @@ -803,21 +804,17 @@ func (k *Bootstrapper) GenerateToken(cc config.ClusterConfig) (string, error) { // DeleteCluster removes the components that were started earlier func (k *Bootstrapper) DeleteCluster(k8s config.KubernetesConfig) error { - cr, err := cruntime.New(cruntime.Config{Type: k8s.ContainerRuntime, Runner: k.c, Socket: k8s.CRISocket}) - if err != nil { - return errors.Wrap(err, "runtime") - } - version, err := util.ParseKubernetesVersion(k8s.KubernetesVersion) if err != nil { return errors.Wrap(err, "parsing Kubernetes version") } + cr, err := cruntime.New(cruntime.Config{Type: k8s.ContainerRuntime, Runner: k.c, Socket: k8s.CRISocket, KubernetesVersion: version}) + if err != nil { + return errors.Wrap(err, "runtime") + } ka := bsutil.InvokeKubeadm(k8s.KubernetesVersion) sp := cr.SocketPath() - if sp == "" { - sp = kconst.DefaultDockerCRISocket - } cmd := fmt.Sprintf("%s reset --cri-socket %s --force", ka, sp) if version.LT(semver.MustParse("1.11.0")) { cmd = fmt.Sprintf("%s reset --cri-socket %s", ka, sp) @@ -858,9 +855,15 @@ func (k *Bootstrapper) UpdateCluster(cfg config.ClusterConfig) error { return errors.Wrap(err, "kubeadm images") } + version, err := util.ParseKubernetesVersion(cfg.KubernetesConfig.KubernetesVersion) + if err != nil { + return errors.Wrap(err, "parsing Kubernetes version") + } r, err := cruntime.New(cruntime.Config{ - Type: cfg.KubernetesConfig.ContainerRuntime, - Runner: k.c, Socket: cfg.KubernetesConfig.CRISocket, + Type: cfg.KubernetesConfig.ContainerRuntime, + Runner: k.c, + Socket: cfg.KubernetesConfig.CRISocket, + KubernetesVersion: version, }) if err != nil { return errors.Wrap(err, "runtime") From 580759b124c863db7080ca2ccdaa32aea1da9452 Mon Sep 17 00:00:00 2001 From: Frank Schwichtenberg Date: Mon, 22 Nov 2021 12:48:37 -0500 Subject: [PATCH 007/129] add BR2_PACKAGE_LIBFUSE to address issue12426 --- deploy/iso/minikube-iso/configs/minikube_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/deploy/iso/minikube-iso/configs/minikube_defconfig b/deploy/iso/minikube-iso/configs/minikube_defconfig index 9cd682c723..acbbffec00 100644 --- a/deploy/iso/minikube-iso/configs/minikube_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_defconfig @@ -71,3 +71,4 @@ BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/ BR2_TARGET_SYSLINUX=y BR2_PACKAGE_HOST_E2TOOLS=y BR2_PACKAGE_HOST_PYTHON=y +BR2_PACKAGE_LIBFUSE=y From 7b3860388c5a52a9b04b97d568b91e2590491396 Mon Sep 17 00:00:00 2001 From: Piotr Resztak Date: Sun, 31 Oct 2021 13:29:07 +0100 Subject: [PATCH 008/129] Print a message about preserving kicbase image Print additional info about preserving kicbase image and generates image deletion command for user when running `minikube delete`. Message is printed only when `--purge` option is used. --- cmd/minikube/cmd/delete.go | 66 ++++++++++++++++++++++++++++++++++++++ pkg/drivers/kic/oci/oci.go | 24 ++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/cmd/minikube/cmd/delete.go b/cmd/minikube/cmd/delete.go index 87ffd48ae0..23f407f74b 100644 --- a/cmd/minikube/cmd/delete.go +++ b/cmd/minikube/cmd/delete.go @@ -23,6 +23,7 @@ import ( "os/exec" "path/filepath" "strconv" + "strings" "time" "github.com/docker/machine/libmachine/mcnerror" @@ -34,6 +35,7 @@ import ( "github.com/spf13/viper" "k8s.io/klog/v2" cmdcfg "k8s.io/minikube/cmd/minikube/cmd/config" + "k8s.io/minikube/pkg/drivers/kic" "k8s.io/minikube/pkg/drivers/kic/oci" "k8s.io/minikube/pkg/minikube/cluster" "k8s.io/minikube/pkg/minikube/config" @@ -145,6 +147,60 @@ func deleteContainersAndVolumes(ctx context.Context, ociBin string) { } } +// kicbaseImages returns kicbase images +func kicbaseImages(ctx context.Context, ociBin string) ([]string, error) { + if _, err := exec.LookPath(ociBin); err != nil { + return nil, nil + } + + // create list of possible kicbase images + kicImages := []string{kic.BaseImage} + kicImages = append(kicImages, kic.FallbackImages...) + + kicImagesRepo := []string{} + for _, img := range kicImages { + kicImagesRepo = append(kicImagesRepo, strings.Split(img, ":")[0]) + } + + allImages, err := oci.ListImagesRepository(ctx, ociBin) + if err != nil { + return nil, err + } + + var result []string + for _, img := range allImages { + for _, kicImg := range kicImagesRepo { + if kicImg == strings.Split(img, ":")[0] { + result = append(result, img) + break + } + } + } + return result, nil +} + +// printDeleteImagesCommand prints command which remove images +func printDeleteImagesCommand(ociBin string, imageNames []string) { + if _, err := exec.LookPath(ociBin); err != nil { + return + } + + if len(imageNames) > 0 { + out.Styled(style.Command, `{{.ociBin}} rmi {{.images}}`, out.V{"ociBin": ociBin, "images": strings.Join(imageNames, " ")}) + } +} + +// printDeleteImageInfo prints info about removing kicbase images +func printDeleteImageInfo(dockerImageNames, podmanImageNames []string) { + if len(dockerImageNames) == 0 && len(podmanImageNames) == 0 { + return + } + + out.Styled(style.Notice, `Kicbase images have not been deleted. To delete images run:`) + printDeleteImagesCommand(oci.Docker, dockerImageNames) + printDeleteImagesCommand(oci.Podman, podmanImageNames) +} + // runDelete handles the executes the flow of "minikube delete" func runDelete(cmd *cobra.Command, args []string) { if len(args) > 0 { @@ -213,6 +269,16 @@ func runDelete(cmd *cobra.Command, args []string) { // If the purge flag is set, go ahead and delete the .minikube directory. if purge { purgeMinikubeDirectory() + + dockerImageNames, err := kicbaseImages(delCtx, oci.Docker) + if err != nil { + klog.Warningf("error fetching docker images: %v", err) + } + podmanImageNames, err := kicbaseImages(delCtx, oci.Podman) + if err != nil { + klog.Warningf("error fetching podman images: %v", err) + } + printDeleteImageInfo(dockerImageNames, podmanImageNames) } } diff --git a/pkg/drivers/kic/oci/oci.go b/pkg/drivers/kic/oci/oci.go index cacb16a9cc..bde0430375 100644 --- a/pkg/drivers/kic/oci/oci.go +++ b/pkg/drivers/kic/oci/oci.go @@ -554,6 +554,30 @@ func ListContainersByLabel(ctx context.Context, ociBin string, label string, war return names, err } +// ListImagesRepository returns all the images names +func ListImagesRepository(ctx context.Context, ociBin string) ([]string, error) { + rr, err := runCmd(exec.CommandContext(ctx, ociBin, "images", "--format", "{{.Repository}}:{{.Tag}}")) + if err != nil { + return nil, err + } + s := bufio.NewScanner(bytes.NewReader(rr.Stdout.Bytes())) + var names []string + for s.Scan() { + n := strings.TrimSpace(s.Text()) + if n != "" { + // add docker.io prefix to image name + if !strings.Contains(n, ".io/") { + n = "docker.io/" + n + } + names = append(names, n) + } + } + if err := s.Err(); err != nil { + return nil, err + } + return names, nil +} + // PointToHostDockerDaemon will unset env variables that point to docker inside minikube // to make sure it points to the docker daemon installed by user. func PointToHostDockerDaemon() error { From c4ec4c5d87cc161bd6cec5b3ebe4b7b5410ad91e Mon Sep 17 00:00:00 2001 From: Olivier Bouchoms <54796206+olivierbouchomsfreshheads@users.noreply.github.com> Date: Thu, 2 Dec 2021 16:40:17 +0100 Subject: [PATCH 009/129] Add info about gcp-auth to registry handbook page It's hard to distinguish Google Container Registry and Google Artifact Registry. They have to be configured differently. I think it wouldn't hurt to emphasize that in the docs. --- site/content/en/docs/handbook/registry.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/content/en/docs/handbook/registry.md b/site/content/en/docs/handbook/registry.md index a42d1595e5..0aefbc2116 100644 --- a/site/content/en/docs/handbook/registry.md +++ b/site/content/en/docs/handbook/registry.md @@ -29,6 +29,8 @@ registry-creds was successfully configured $ minikube addons enable registry-creds ``` +**Google Artifact Registry**: minikube has an addon, `gcp-auth`, which maps credentials into minikube to support pulling from Google Artifact Registry. Run `minikube addons enable gcp-auth` to configure the authentication. You can refer to the full docs [here](https://minikube.sigs.k8s.io/docs/handbook/addons/gcp-auth/). + For additional information on private container registries, see [this page](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/). We recommend you use _ImagePullSecrets_, but if you would like to configure access on the minikube VM you can place the `.dockercfg` in the `/home/docker` directory or the `config.json` in the `/var/lib/kubelet` directory. Make sure to restart your kubelet (for kubeadm) process with `sudo systemctl restart kubelet`. From f874533830e19924458b8c111b8ba0ef270f8bf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Sat, 4 Dec 2021 10:00:21 +0100 Subject: [PATCH 010/129] Dockershim removal was postponed until 1.24 --- pkg/minikube/cruntime/cruntime.go | 4 ++-- pkg/minikube/cruntime/cruntime_test.go | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go index 1c1b424015..d6a1ec1d43 100644 --- a/pkg/minikube/cruntime/cruntime.go +++ b/pkg/minikube/cruntime/cruntime.go @@ -195,8 +195,8 @@ func New(c Config) (Manager, error) { case "", "docker": sp := c.Socket cs := "" - // There is no more dockershim socket, in Kubernetes version 1.23 and beyond - if sp == "" && c.KubernetesVersion.GTE(semver.MustParse("1.23.0-alpha.0")) { + // There is no more dockershim socket, in Kubernetes version 1.24 and beyond + if sp == "" && c.KubernetesVersion.GTE(semver.MustParse("1.24.0-alpha.0")) { sp = ExternalDockerCRISocket cs = "cri-docker.socket" } diff --git a/pkg/minikube/cruntime/cruntime_test.go b/pkg/minikube/cruntime/cruntime_test.go index 1e1e324f9e..d7d8c5bb3a 100644 --- a/pkg/minikube/cruntime/cruntime_test.go +++ b/pkg/minikube/cruntime/cruntime_test.go @@ -64,9 +64,9 @@ func TestDefaultDockerSocketPath(t *testing.T) { }{ {"1.20.0", InternalDockerCRISocket}, {"1.21.3", InternalDockerCRISocket}, - {"1.23.0-alpha.0", ExternalDockerCRISocket}, - {"1.23.0-beta.0", ExternalDockerCRISocket}, - {"1.23.0", ExternalDockerCRISocket}, + {"1.23.0", InternalDockerCRISocket}, + {"1.24.0-alpha.0", ExternalDockerCRISocket}, + {"1.24.0-beta.0", ExternalDockerCRISocket}, {"1.24.6", ExternalDockerCRISocket}, } for _, tc := range tests { From bb7a81fbcda2af281db61e386e9fb2cafcb48a34 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Thu, 16 Dec 2021 16:58:01 -0800 Subject: [PATCH 011/129] add longer default kubelet housekeeping intervals --- pkg/minikube/driver/driver.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/driver/driver.go b/pkg/minikube/driver/driver.go index 34e277009a..6808c862ce 100644 --- a/pkg/minikube/driver/driver.go +++ b/pkg/minikube/driver/driver.go @@ -235,7 +235,7 @@ type FlagHints struct { // FlagDefaults returns suggested defaults based on a driver func FlagDefaults(name string) FlagHints { - fh := FlagHints{} + fh := FlagHints{ExtraOptions: []string{"kubelet.global-housekeeping-interval=60m", "kubelet.housekeeping-interval=5m"}} if name != None { fh.CacheImages = true return fh From f90ddace461ebf5f9317c15e50e2316ee1a3207c Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Thu, 16 Dec 2021 17:53:20 -0800 Subject: [PATCH 012/129] updated ExtraOption tests --- pkg/minikube/driver/driver_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/minikube/driver/driver_test.go b/pkg/minikube/driver/driver_test.go index 021f78c74c..67855fb50e 100644 --- a/pkg/minikube/driver/driver_test.go +++ b/pkg/minikube/driver/driver_test.go @@ -85,7 +85,7 @@ func TestMachineType(t *testing.T) { } func TestFlagDefaults(t *testing.T) { - expected := FlagHints{CacheImages: true} + expected := FlagHints{CacheImages: true, ExtraOptions: []string{"kubelet.global-housekeeping-interval=60m", "kubelet.housekeeping-interval=5m"}} if diff := cmp.Diff(FlagDefaults(VirtualBox), expected); diff != "" { t.Errorf("defaults mismatch (-want +got):\n%s", diff) } @@ -98,7 +98,7 @@ func TestFlagDefaults(t *testing.T) { expected = FlagHints{ CacheImages: false, - ExtraOptions: []string{fmt.Sprintf("kubelet.resolv-conf=%s", tf.Name())}, + ExtraOptions: []string{"kubelet.global-housekeeping-interval=60m", "kubelet.housekeeping-interval=5m", fmt.Sprintf("kubelet.resolv-conf=%s", tf.Name())}, } systemdResolvConf = tf.Name() if diff := cmp.Diff(FlagDefaults(None), expected); diff != "" { From 1a4ca8a416c4c47293fe2da3b8ce688bec14ec19 Mon Sep 17 00:00:00 2001 From: Akira Yoshiyama Date: Sun, 19 Dec 2021 15:01:10 +0900 Subject: [PATCH 013/129] Update Japanese translation (LINE 351-401) --- translations/ja.json | 85 +++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 44 deletions(-) diff --git a/translations/ja.json b/translations/ja.json index 57a1a0dfc5..cc2d885031 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -348,57 +348,54 @@ "Ignoring unknown custom image {{.name}}": "", "Ignoring unknown custom registry {{.name}}": "", "Images Commands:": "イメージ用コマンド:", - "Images used by this addon. Separated by commas.": "", - "In order to use the fall back image, you need to log in to the github packages registry": "", - "Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "", - "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 port": "", - "Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "", - "Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "", - "It seems that you are running in GCE, which means authentication should work without the GCP Auth addon. If you would still like to authenticate using a credentials file, use the --force flag.": "", - "Kill the mount process spawned by minikube start": "", - "Kubelet network plug-in to use (default: auto)": "", - "Kubernetes requires at least 2 CPU's to start": "", - "Kubernetes {{.new}} is now available. If you would like to upgrade, specify: --kubernetes-version={{.prefix}}{{.new}}": "", - "Kubernetes {{.version}} is not supported by this release of minikube": "", - "Kubernetes: Stopping ...": "", + "Images used by this addon. Separated by commas.": "このアドオンで使用するイメージ。複数の場合、カンマで区切ります。", + "In order to use the fall back image, you need to log in to the github packages registry": "予備イメージを使用するために、GitHub のパッケージレジストリーにログインする必要があります", + "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": "VritualBox をインストールして、VirtualBox がパス中にあることを確認するか、--driver に別の値を指定してください", + "Install the latest hyperkit binary, and run 'minikube delete'": "最新の hyperkit バイナリーをインストールして、'minikube delete' を実行してください", + "Invalid port": "無効なポート", + "Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "Istio は {{.minCPUs}} 個の CPU を必要とします -- あなたの設定では {{.cpus}} 個の CPU しか割り当てていません", + "Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "Istio は {{.minMem}}MB のメモリーを必要とします -- あなたの設定では、{{.memory}}MB しか割り当てていません", + "It seems that you are running in GCE, which means authentication should work without the GCP Auth addon. If you would still like to authenticate using a credentials file, use the --force flag.": "GCE 上で実行しているようですが、これは GCP Auth アドオンなしに認証が機能すべきであることになります。それでもクレデンシャルファイルを使用した認証を希望するのであれば、--force フラグを使用してください。", + "Kill the mount process spawned by minikube start": "minikube start によって実行されたマウントプロセスを強制停止します", + "Kubelet network plug-in to use (default: auto)": "使用する Kubelet ネットワークプラグイン (既定値: auto)", + "Kubernetes requires at least 2 CPU's to start": "Kubernetes は起動に少なくとも 2 個の CPU が必要です", + "Kubernetes {{.new}} is now available. If you would like to upgrade, specify: --kubernetes-version={{.prefix}}{{.new}}": "Kubernetes {{.new}} が利用可能です。アップグレードしたい場合、--kubernetes-version={{.prefix}}{{.new}} を指定してください", + "Kubernetes {{.version}} is not supported by this release of minikube": "この minikube リリースは Kubernetes {{.version}} をサポートしていません", + "Kubernetes: Stopping ...": "Kubernetes: 停止しています...", "Kubernetes: {{.status}}": "", "Launching Kubernetes ...": "Kubernetes を起動しています...", - "Launching proxy ...": "プロキシを起動しています...", - "List all available images from the local cache.": "", - "List existing minikube nodes.": "", - "List image names the addon w/ADDON_NAME used. For a list of available addons use: minikube addons list": "", - "List images": "", - "List nodes.": "", - "List of guest VSock ports that should be exposed as sockets on the host (hyperkit driver only)": "ホストでソケットとして公開する必要のあるゲスト VSock ポートのリスト(hyperkit ドライバのみ)", - "List of ports that should be exposed (docker and podman driver only)": "", - "Listening to 0.0.0.0 on external docker host {{.host}}. Please be advised": "", - "Listening to {{.listenAddr}}. This is not recommended and can cause a security vulnerability. Use at your own risk": "", - "Lists all available minikube addons as well as their current statuses (enabled/disabled)": "", - "Lists all minikube profiles.": "すべてのminikubeのプロフィールを一覧で表示します", - "Lists all valid default values for PROPERTY_NAME": "", - "Lists all valid minikube profiles and detects all possible invalid profiles.": "", - "Lists the URLs for the services in your local cluster": "", - "Load a image into minikube": "", - "Local folders to share with Guest via NFS mounts (hyperkit driver only)": "NFS マウントを介してゲストと共有するローカル フォルダ(hyperkit ドライバのみ)", - "Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "", - "Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "ネットワーキングに使用する VPNKit ソケットのロケーション。空の場合、Hyperkit VPNKitSock が無効になり、「auto」の場合、Mac VPNKit 接続に Docker が使用され、それ以外の場合、指定された VSock が使用されます(hyperkit ドライバのみ)", - "Location of the minikube iso": "minikube iso のロケーション", - "Locations to fetch the minikube ISO from.": "", - "Log into or run a command on a machine with SSH; similar to 'docker-machine ssh'.": "", + "Launching proxy ...": "プロキシーを起動しています...", + "List all available images from the local cache.": "ローカルキャッシュから利用可能な全イメージを一覧表示します。", + "List existing minikube nodes.": "既存の minikube ノードを一覧表示します。", + "List image names the addon w/ADDON_NAME used. For a list of available addons use: minikube addons list": "ADDON_NAME アドオンが使用しているイメージ名を一覧表示します。利用可能なアドオンの一覧表示は、次のコマンドを実行してください: minikube addons list", + "List images": "イメージを一覧表示します", + "List nodes.": "ノードを一覧表示します。", + "List of guest VSock ports that should be exposed as sockets on the host (hyperkit driver only)": "ホスト上でソケットとして公開する必要のあるゲスト VSock ポートの一覧 (hyperkit ドライバーのみ)", + "List of ports that should be exposed (docker and podman driver only)": "公開する必要のあるポートの一覧 (docker、podman ドライバーのみ)", + "Listening to 0.0.0.0 on external docker host {{.host}}. Please be advised": "外部 Docker ホスト {{.host}} 上で 0.0.0.0 をリッスンしています。ご承知おきください", + "Listening to {{.listenAddr}}. This is not recommended and can cause a security vulnerability. Use at your own risk": "{{.listenAddr}} をリッスンしています。これは推奨されず、セキュリティー脆弱性になる可能性があります。自己責任で使用してください", + "Lists all available minikube addons as well as their current statuses (enabled/disabled)": "利用可能な minikube アドオンとその現在の状態 (有効 / 無効) を一覧表示します。", + "Lists all minikube profiles.": "minikube プロファイルを一覧表示します。", + "Lists all valid default values for PROPERTY_NAME": "PROPERTY_NAME 用の有効な minikube プロファイルを一覧表示します", + "Lists all valid minikube profiles and detects all possible invalid profiles.": "有効な minikube プロファイルを一覧表示し、無効の可能性のあるプロファイルを全て検知します", + "Lists the URLs for the services in your local cluster": "ローカルクラスターのサービス用 URL を一覧表示します", + "Load a image into minikube": "minikube にイメージを読み込ませます", + "Local folders to share with Guest via NFS mounts (hyperkit driver only)": "NFS マウントを介してゲストと共有するローカルフォルダー (hyperkit ドライバーのみ)", + "Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "ローカルプロキシーは無視されました: docker env に {{.name}}={{.value}} は渡されません。", + "Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "ネットワーキングに使用する VPNKit ソケットのロケーション。空の場合、Hyperkit VPNKitSock が無効になり、'auto' の場合、Mac VPNKit 接続に Docker が使用され、それ以外の場合、指定された VSock が使用されます (hyperkit ドライバーのみ)", + "Location of the minikube iso": "minikube iso の場所", + "Locations to fetch the minikube ISO from.": "minikube ISO の取得元", + "Log into or run a command on a machine with SSH; similar to 'docker-machine ssh'.": "SSH を使ってマシンにログインしたりコマンドを実行します ('docker-machine ssh' と同様です)。", "Log into the minikube environment (for debugging)": "minikube の環境にログインします(デバッグ用)", - "Manage images": "", + "Manage images": "イメージを管理します", "Message Size: {{.size}}": "メッセージのサイズ: {{.size}}", - "Modify minikube config": "minikube の設定を修正しています", - "Modify minikube's kubernetes addons": "minikube の Kubernetes アドオンを修正しています", "Modify persistent configuration values": "永続的な設定値を変更します", - "More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "", - "Most users should use the newer 'docker' driver instead, which does not require root!": "", + "More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "追加情報: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities", + "Most users should use the newer 'docker' driver instead, which does not require root!": "多くのユーザーはより新しい 'docker' ドライバーを代わりに使用すべきです (root 権限が必要ありません!)", "Mount type: {{.name}}": "マウントタイプ: {{.name}}", "Mounting host path {{.sourcePath}} into VM as {{.destinationPath}} ...": "", - "Mounts the specified directory into minikube": "minikube に指定されたディレクトリをマウントします", + "Mounts the specified directory into minikube": "minikube に指定されたディレクトリーをマウントします", "Mounts the specified directory into minikube.": "", "Multiple errors deleting profiles": "プロフィールを削除中に複数のエラーが発生しました", "Multiple minikube profiles were found -": "複数の minikube のプロフィールが見つかりました", From 87e19156917b7ddf0a22c59d98d6ddc4c261e86c Mon Sep 17 00:00:00 2001 From: Akira Yoshiyama Date: Sun, 5 Dec 2021 17:30:54 +0900 Subject: [PATCH 014/129] Update Japanese translation (LINE 457-507) --- translations/ja.json | 94 ++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/translations/ja.json b/translations/ja.json index 57a1a0dfc5..dfe8bf2cc3 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -454,57 +454,57 @@ "Please enter a value:": "", "Please free up disk or prune images.": "", "Please increse Desktop's disk size.": "", - "Please install the minikube hyperkit VM driver, or select an alternative --driver": "", - "Please install the minikube kvm2 VM driver, or select an alternative --driver": "", - "Please make sure the service you are looking for is deployed or is in the correct namespace.": "", - "Please provide a path or url to build": "", - "Please provide an image in the container runtime to save from 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": "", - "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\")": "", - "Please try purging minikube using `minikube delete --all --purge`": "", - "Please upgrade the '{{.driver_executable}}'. {{.documentation_url}}": "「{{.driver_executable}}」をアップグレードしてください。{{.documentation_url}}", - "Please visit the following link for documentation around this: \n\thttps://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages\n": "", - "Populates the specified folder with documentation in markdown about minikube": "", - "PowerShell is running in constrained mode, which is incompatible with Hyper-V scripting.": "", + "Please install the minikube hyperkit VM driver, or select an alternative --driver": "minikube hyperkit VM ドライバーをインストールするか、--driver で別のドライバーを選択してください", + "Please install the minikube kvm2 VM driver, or select an alternative --driver": "minikube kvm2 VM ドライバーをインストールするか、--driver で別のドライバーを選択してください", + "Please make sure the service you are looking for is deployed or is in the correct namespace.": "探しているサービスがデプロイされている、あるいは正しいネームスペース中にあることを確認してください。", + "Please provide a path or url to build": "ビルドするパスまたは URL を指定してください", + "Please provide an image in the container runtime to save from minikube via \u003cminikube image save IMAGE_NAME\u003e": "\u003cminikube image save IMAGE_NAME\u003e で minikube からセーブする、コンテナーランタイム中のイメージを指定してください", + "Please provide an image in your local daemon to load into minikube via \u003cminikube image load IMAGE_NAME\u003e": "\u003cminikube image load IMAGE_NAME\u003e で minikube 中にロードする、ローカルデーモンが入ったイメージを指定してください", + "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": "環境変数が更新されたポート番号を持つことを確実にするために docker-env を再評価してください:\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": "環境変数が更新されたポート番号を持つことを確実にするために podman-env を再評価してください:\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.": "`minikube logs --file=logs.txt` を実行して、GitHub イシューに logs.txt を添付してください。", + "Please see {{.documentation_url}} for more details": "詳細は {{.documentation_url}} を参照してください", + "Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "マウントするディレクトリーを指定してください: \n\tminikube mount \u003cソースディレクトリー\u003e:\u003cターゲットディレクトリー\u003e (例:「/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\")": "コピーするパスを指定してください: \n\tminikube cp \u003cソースファイルのパス\u003e \u003cターゲットファイルの絶対パス\u003e (例:「minikube cp a/b.txt /copied.txt」)", + "Please try purging minikube using `minikube delete --all --purge`": "`minikube delete --all --purge` を使用して minikube の削除を試してください", + "Please upgrade the '{{.driver_executable}}'. {{.documentation_url}}": "'{{.driver_executable}}' をアップグレードしてください。{{.documentation_url}}", + "Please visit the following link for documentation around this: \n\thttps://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages\n": "関連するドキュメントへの次のリンクを参照してください: \n\thttps://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages\n", + "Populates the specified folder with documentation in markdown about minikube": "指定されたフォルダーに、minikube に関するマークダウンのドキュメントを生成します", + "PowerShell is running in constrained mode, which is incompatible with Hyper-V scripting.": "PowerShell は制約付きモードで実行されています (Hyper-V スクリプティングと互換性がありません)。", "Powering off \"{{.profile_name}}\" via SSH ...": "SSH 経由で「{{.profile_name}}」の電源をオフにしています...", "Preparing Kubernetes {{.k8sVersion}} on {{.runtime}} {{.runtimeVersion}} ...": "{{.runtime}} {{.runtimeVersion}} で Kubernetes {{.k8sVersion}} を準備しています...", "Print current and latest version number": "使用中および最新の minikube バージョン番号を表示します", - "Print just the version number.": "", - "Print the version of minikube": "使用中の minikube バージョン番号を表示します", - "Print the version of minikube.": "", - "Problems detected in {{.entry}}:": "", - "Problems detected in {{.name}}:": "", - "Profile \"{{.cluster}}\" not found. Run \"minikube profile list\" to view all profiles.": "", - "Profile name \"{{.profilename}}\" is reserved keyword. To delete this profile, run: \"{{.cmd}}\"": "", - "Profile name '{{.name}}' is duplicated with machine name '{{.machine}}' in profile '{{.profile}}'": "", - "Profile name '{{.name}}' is not valid": "", - "Profile name '{{.profilename}}' is not valid": "", - "Profile name should be unique": "", - "Provide VM UUID to restore MAC address (hyperkit driver only)": "MAC アドレスを復元するための VM UUID を指定します(hyperkit ドライバのみ)", - "Pull images": "", - "Pull the remote image (no caching)": "", - "Pulling base image ...": "イメージを Pull しています...", - "Push images": "", - "Push the new image (requires tag)": "", - "Reboot to complete VirtualBox installation, verify that VirtualBox is not blocked by your system, and/or use another hypervisor": "", - "Rebuild libvirt with virt-network support": "", - "Received {{.name}} signal": "", - "Recreate the cluster by running:\n\t\tminikube delete {{.profileArg}}\n\t\tminikube start {{.profileArg}}": "", - "Registries used by this addon. Separated by commas.": "", - "Registry addon with {{.driver}} driver uses port {{.port}} please use that instead of default port 5000": "", - "Registry mirrors to pass to the Docker daemon": "Docker デーモンに渡すレジストリ ミラー", - "Reinstall VirtualBox and reboot. Alternatively, try the kvm2 driver: https://minikube.sigs.k8s.io/docs/reference/drivers/kvm2/": "", - "Reinstall VirtualBox and verify that it is not blocked: System Preferences -\u003e Security \u0026 Privacy -\u003e General -\u003e Some system software was blocked from loading": "", - "Related issue: {{.url}}": "", - "Related issues:": "", + "Print just the version number.": "バージョン番号だけ表示します。", + "Print the version of minikube": "minikube バージョンを表示します", + "Print the version of minikube.": "minikube のバージョンを表示します。", + "Problems detected in {{.entry}}:": "{{.entry}} で問題を検出しました:", + "Problems detected in {{.name}}:": "{{.name}} で問題を検出しました:", + "Profile \"{{.cluster}}\" not found. Run \"minikube profile list\" to view all profiles.": "「{{.cluster}}」プロファイルが見つかりません。全プロファイルを表示するために「minikube profile list」を実行してください。", + "Profile name \"{{.profilename}}\" is reserved keyword. To delete this profile, run: \"{{.cmd}}\"": "プロファイル名「{{.profilename}}」は予約語です。このプロファイルを削除するためには、「{{.cmd}}」を実行します", + "Profile name '{{.name}}' is duplicated with machine name '{{.machine}}' in profile '{{.profile}}'": "プロファイル名 '{{.name}}' は '{{.profile}}' プロファイル中のマシン名 '{{.machine}}' と重複しています", + "Profile name '{{.name}}' is not valid": "プロファイル名 '{{.name}}' は無効です", + "Profile name '{{.profilename}}' is not valid": "プロファイル名 '{{.profilename}}' は無効です", + "Profile name should be unique": "プロファイル名は単一でなければなりません", + "Provide VM UUID to restore MAC address (hyperkit driver only)": "MAC アドレスを復元するための VM UUID を指定します (hyperkit ドライバーのみ)", + "Pull images": "イメージを取得します", + "Pull the remote image (no caching)": "リモートイメージを取得します (キャッシュなし)", + "Pulling base image ...": "イメージを取得しています...", + "Push images": "イメージを登録します", + "Push the new image (requires tag)": "新イメージを登録します (タグが必要)", + "Reboot to complete VirtualBox installation, verify that VirtualBox is not blocked by your system, and/or use another hypervisor": "VirtualBox インストールを完了させるために再起動し、VirtualBox がシステムや別のハイパーバイザーにブロックされていないことを検証してください", + "Rebuild libvirt with virt-network support": "virt-network サポート付きで libvirt を再構築してください", + "Received {{.name}} signal": "{{.name}} シグナルを受信しました。", + "Recreate the cluster by running:\n\t\tminikube delete {{.profileArg}}\n\t\tminikube start {{.profileArg}}": "次のコマンドを実行してクラスターを再作成してください:\n\t\tminikube delete {{.profileArg}}\n\t\tminikube start {{.profileArg}}", + "Registries used by this addon. Separated by commas.": "このアドオンで使用するレジストリー。コンマで区切ります。", + "Registry addon with {{.driver}} driver uses port {{.port}} please use that instead of default port 5000": "{{.driver}} ドライバーを使うレジストリーアドオンは {{.port}} 番ポートを使用します。デフォルトの 5000 番ポートの代わりにこちらのポートを使用してください", + "Registry mirrors to pass to the Docker daemon": "Docker デーモンに渡すミラーレジストリー", + "Reinstall VirtualBox and reboot. Alternatively, try the kvm2 driver: https://minikube.sigs.k8s.io/docs/reference/drivers/kvm2/": "VirtualBox を再インストールして再起動してください。あるいは、kvm2 ドライバーを試してください: https://minikube.sigs.k8s.io/docs/reference/drivers/kvm2/", + "Reinstall VirtualBox and verify that it is not blocked: System Preferences -\u003e Security \u0026 Privacy -\u003e General -\u003e Some system software was blocked from loading": "VirtualBox を再インストールして、ブロックされていないことを検証してください: システム環境設定 -\u003e セキュリティーとプライバシー -\u003e 一般 -\u003e いくつかのシステムソフトウェアの読み込みがブロックされました", + "Related issue: {{.url}}": "関連イシュー: {{.url}}", + "Related issues:": "関連イシュー:", "Relaunching Kubernetes using {{.bootstrapper}} ...": "{{.bootstrapper}} を使用して Kubernetes を再起動しています...", - "Remove one or more images": "", + "Remove one or more images": "1 つまたは複数のイメージを削除します", "Remove the invalid --docker-opt or --insecure-registry flag if one was provided": "", "Removed all traces of the \"{{.name}}\" cluster.": "クラスタ \"{{.name}}\" の全てのトレースを削除しました。", "Removing {{.directory}} ...": "{{.directory}} を削除しています...", From bc7cfdcf357dda7438eadef65bf61d139121c4ae Mon Sep 17 00:00:00 2001 From: Akira YOSHIYAMA Date: Mon, 20 Dec 2021 20:22:40 +0900 Subject: [PATCH 015/129] Apply suggestions from code review Co-authored-by: atoato88 --- translations/ja.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translations/ja.json b/translations/ja.json index dfe8bf2cc3..9b172cbf6b 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -459,10 +459,10 @@ "Please make sure the service you are looking for is deployed or is in the correct namespace.": "探しているサービスがデプロイされている、あるいは正しいネームスペース中にあることを確認してください。", "Please provide a path or url to build": "ビルドするパスまたは URL を指定してください", "Please provide an image in the container runtime to save from minikube via \u003cminikube image save IMAGE_NAME\u003e": "\u003cminikube image save IMAGE_NAME\u003e で minikube からセーブする、コンテナーランタイム中のイメージを指定してください", - "Please provide an image in your local daemon to load into minikube via \u003cminikube image load IMAGE_NAME\u003e": "\u003cminikube image load IMAGE_NAME\u003e で minikube 中にロードする、ローカルデーモンが入ったイメージを指定してください", + "Please provide an image in your local daemon to load into minikube via \u003cminikube image load IMAGE_NAME\u003e": "\u003cminikube image load IMAGE_NAME\u003e で minikube 中にロードする、ローカルデーモンの中のイメージを指定してください", "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": "環境変数が更新されたポート番号を持つことを確実にするために docker-env を再評価してください:\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": "環境変数が更新されたポート番号を持つことを確実にするために podman-env を再評価してください:\n\n\t'minikube -p {{.profile_name}} podman-env'\n\n\t", + "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": "環境変数が更新されたポート番号を持つことを確実にするために docker-env を再適用してください:\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": "環境変数が更新されたポート番号を持つことを確実にするために podman-env を再適用してください:\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.": "`minikube logs --file=logs.txt` を実行して、GitHub イシューに logs.txt を添付してください。", "Please see {{.documentation_url}} for more details": "詳細は {{.documentation_url}} を参照してください", "Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "マウントするディレクトリーを指定してください: \n\tminikube mount \u003cソースディレクトリー\u003e:\u003cターゲットディレクトリー\u003e (例:「/host-home:/vm-home」)", @@ -489,7 +489,7 @@ "Provide VM UUID to restore MAC address (hyperkit driver only)": "MAC アドレスを復元するための VM UUID を指定します (hyperkit ドライバーのみ)", "Pull images": "イメージを取得します", "Pull the remote image (no caching)": "リモートイメージを取得します (キャッシュなし)", - "Pulling base image ...": "イメージを取得しています...", + "Pulling base image ...": "ベースイメージを取得しています...", "Push images": "イメージを登録します", "Push the new image (requires tag)": "新イメージを登録します (タグが必要)", "Reboot to complete VirtualBox installation, verify that VirtualBox is not blocked by your system, and/or use another hypervisor": "VirtualBox インストールを完了させるために再起動し、VirtualBox がシステムや別のハイパーバイザーにブロックされていないことを検証してください", From 24c29d35ee1c90c685054ae0558b5c76f79d1706 Mon Sep 17 00:00:00 2001 From: Akira YOSHIYAMA Date: Thu, 23 Dec 2021 23:04:05 +0900 Subject: [PATCH 016/129] Apply suggestions from code review Co-authored-by: Toshiaki Inukai <82919057+t-inu@users.noreply.github.com> Co-authored-by: atoato88 --- translations/ja.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/translations/ja.json b/translations/ja.json index cc2d885031..abe8baaf04 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -350,7 +350,7 @@ "Images Commands:": "イメージ用コマンド:", "Images used by this addon. Separated by commas.": "このアドオンで使用するイメージ。複数の場合、カンマで区切ります。", "In order to use the fall back image, you need to log in to the github packages registry": "予備イメージを使用するために、GitHub のパッケージレジストリーにログインする必要があります", - "Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "Docker デーモンに渡す安全でない Docker レジストリー。デフォルトのサービス CIDR 範囲が自動的に追加されます", + "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": "VritualBox をインストールして、VirtualBox がパス中にあることを確認するか、--driver に別の値を指定してください", "Install the latest hyperkit binary, and run 'minikube delete'": "最新の hyperkit バイナリーをインストールして、'minikube delete' を実行してください", "Invalid port": "無効なポート", @@ -383,18 +383,18 @@ "Load a image into minikube": "minikube にイメージを読み込ませます", "Local folders to share with Guest via NFS mounts (hyperkit driver only)": "NFS マウントを介してゲストと共有するローカルフォルダー (hyperkit ドライバーのみ)", "Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "ローカルプロキシーは無視されました: docker env に {{.name}}={{.value}} は渡されません。", - "Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "ネットワーキングに使用する VPNKit ソケットのロケーション。空の場合、Hyperkit VPNKitSock が無効になり、'auto' の場合、Mac VPNKit 接続に Docker が使用され、それ以外の場合、指定された VSock が使用されます (hyperkit ドライバーのみ)", + "Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "ネットワーキングに使用する VPNKit ソケットのロケーション。空の場合、Hyperkit VPNKitSock が無効になり、'auto' の場合、Docker for Mac のVPNKit 接続が使用され、それ以外の場合、指定された VSock が使用されます (hyperkit ドライバーのみ)", "Location of the minikube iso": "minikube iso の場所", "Locations to fetch the minikube ISO from.": "minikube ISO の取得元", "Log into or run a command on a machine with SSH; similar to 'docker-machine ssh'.": "SSH を使ってマシンにログインしたりコマンドを実行します ('docker-machine ssh' と同様です)。", - "Log into the minikube environment (for debugging)": "minikube の環境にログインします(デバッグ用)", + "Log into the minikube environment (for debugging)": "minikube の環境にログインします (デバッグ用)", "Manage images": "イメージを管理します", "Message Size: {{.size}}": "メッセージのサイズ: {{.size}}", "Modify persistent configuration values": "永続的な設定値を変更します", "More information: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities": "追加情報: https://docs.docker.com/engine/install/linux-postinstall/#your-kernel-does-not-support-cgroup-swap-limit-capabilities", "Most users should use the newer 'docker' driver instead, which does not require root!": "多くのユーザーはより新しい 'docker' ドライバーを代わりに使用すべきです (root 権限が必要ありません!)", "Mount type: {{.name}}": "マウントタイプ: {{.name}}", - "Mounting host path {{.sourcePath}} into VM as {{.destinationPath}} ...": "", + "Mounting host path {{.sourcePath}} into VM as {{.destinationPath}} ...": "ホストパス {{.sourcePath}} を {{.destinationPath}} として VM 中にマウントしています ...", "Mounts the specified directory into minikube": "minikube に指定されたディレクトリーをマウントします", "Mounts the specified directory into minikube.": "", "Multiple errors deleting profiles": "プロフィールを削除中に複数のエラーが発生しました", From 34361e0320860e1961f6884f7f9e55763768aa7d Mon Sep 17 00:00:00 2001 From: Akira YOSHIYAMA Date: Mon, 27 Dec 2021 22:18:48 +0900 Subject: [PATCH 017/129] Update translations/ja.json Co-authored-by: Toshiaki Inukai <82919057+t-inu@users.noreply.github.com> --- translations/ja.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/ja.json b/translations/ja.json index abe8baaf04..4ae6f9352a 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -383,7 +383,7 @@ "Load a image into minikube": "minikube にイメージを読み込ませます", "Local folders to share with Guest via NFS mounts (hyperkit driver only)": "NFS マウントを介してゲストと共有するローカルフォルダー (hyperkit ドライバーのみ)", "Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "ローカルプロキシーは無視されました: docker env に {{.name}}={{.value}} は渡されません。", - "Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "ネットワーキングに使用する VPNKit ソケットのロケーション。空の場合、Hyperkit VPNKitSock が無効になり、'auto' の場合、Docker for Mac のVPNKit 接続が使用され、それ以外の場合、指定された VSock が使用されます (hyperkit ドライバーのみ)", + "Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock (hyperkit driver only)": "ネットワーキングに使用する VPNKit ソケットのロケーション。空の場合、Hyperkit VPNKitSock が無効になり、'auto' の場合、Docker for Mac の VPNKit 接続が使用され、それ以外の場合、指定された VSock が使用されます (hyperkit ドライバーのみ)", "Location of the minikube iso": "minikube iso の場所", "Locations to fetch the minikube ISO from.": "minikube ISO の取得元", "Log into or run a command on a machine with SSH; similar to 'docker-machine ssh'.": "SSH を使ってマシンにログインしたりコマンドを実行します ('docker-machine ssh' と同様です)。", From b599aa95c8b3c605c98b4b3e7b923c3324736ddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Tue, 28 Dec 2021 22:18:03 +0100 Subject: [PATCH 018/129] Make the Docker API endpoint docs more generic There might not be any local docker daemon to push from, and there might not be any remote docker daemon to push to. But user can still load container images from cache tarballs, and build new container images from a local build context... --- site/content/en/docs/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/_index.md b/site/content/en/docs/_index.md index 4ae470f8b6..3dd054611e 100644 --- a/site/content/en/docs/_index.md +++ b/site/content/en/docs/_index.md @@ -19,7 +19,7 @@ minikube quickly sets up a local Kubernetes cluster on macOS, Linux, and Windows * Cross-platform (Linux, macOS, Windows) * Deploy as a VM, a container, or on bare-metal * Multiple container runtimes (CRI-O, containerd, docker) -* Docker API endpoint for blazing fast [image pushes]({{< ref "/docs/handbook/pushing.md#pushing-directly-to-the-in-cluster-docker-daemon" >}}) +* Direct API endpoint for blazing fast [image load and build]({{< ref "/docs/handbook/pushing.md" >}}) * Advanced features such as [LoadBalancer]({{< ref "/docs/handbook/accessing.md#loadbalancer-access" >}}), filesystem mounts, and FeatureGates * [Addons]({{< ref "/docs/handbook/deploying.md#addons" >}}) for easily installed Kubernetes applications * Supports common [CI environments](https://github.com/minikube-ci/examples) From e495a8527d579e6604ba43f1377983c918dc3260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20F=20Bj=C3=B6rklund?= Date: Tue, 28 Dec 2021 22:30:13 +0100 Subject: [PATCH 019/129] Need to use docker runtime for docker daemon --- site/content/en/docs/faq/_index.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index ce4d74d491..016e3c9373 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -30,19 +30,23 @@ minikube profile list minikube profiles are meant to be isolated from one another, with their own settings and drivers. If you want to create a single cluster with multiple nodes, try the [multi-node feature]({{< ref "/docs/tutorials/multi_node" >}}) instead. ## Can I use minikube as a Docker Desktop replacement? + minikube's VM includes a Docker daemon running inside Linux for free, so you can use `minikube docker-env` to point your terminal's Docker CLI to the Docker inside minikube. +Note: this only works with the "docker" container runtime, not with e.g. "containerd" + You would need to start minikube with a VM driver, instead of docker, such as hyperkit on macOS and Hyper-V on Windows. ``` -minikube start --driver=hyperv +minikube start --container-runtime=docker --vm=true ``` Alternatively, you can use `minikube image build` instead of `minikube docker-env` and `docker build`. ## Can I start minikube without Kubernetes running? + Yes! If you want to use minikube only as a Docker Desktop replacement without starting Kubernetes itself, try: ``` -minikube start --no-kubernetes +minikube start --container-runtime=docker --no-kubernetes ``` Alternatively, if you want to temporarily turn off Kubernetes, you can pause and later unpause Kubernetes From 96802bd02ee4a9f716780d3bf707dd82d8b47776 Mon Sep 17 00:00:00 2001 From: Steven Powell Date: Wed, 29 Dec 2021 17:16:28 -0800 Subject: [PATCH 020/129] allow toggling between all-time and last 90 day flake charts --- .../jenkins/test-flake-chart/flake_chart.html | 3 +- hack/jenkins/test-flake-chart/flake_chart.js | 24 ++-- .../test-flake-chart/process_last_90.go | 104 ++++++++++++++++++ .../test-flake-chart/process_last_90.sh | 33 ++++++ hack/jenkins/test-flake-chart/sync_tests.sh | 1 + .../content/en/docs/contrib/test_flakes.en.md | 30 ++--- 6 files changed, 172 insertions(+), 23 deletions(-) create mode 100644 hack/jenkins/test-flake-chart/process_last_90.go create mode 100755 hack/jenkins/test-flake-chart/process_last_90.sh diff --git a/hack/jenkins/test-flake-chart/flake_chart.html b/hack/jenkins/test-flake-chart/flake_chart.html index 6f4e8a083f..7ba7f7eb05 100644 --- a/hack/jenkins/test-flake-chart/flake_chart.html +++ b/hack/jenkins/test-flake-chart/flake_chart.html @@ -23,6 +23,7 @@ +