diff --git a/.github/workflows/sync-minikube.yml b/.github/workflows/sync-minikube.yml new file mode 100644 index 000000000000..edfc87df88bc --- /dev/null +++ b/.github/workflows/sync-minikube.yml @@ -0,0 +1,36 @@ +name: Sync docker images of minikube to Alibaba Cloud + +on: + workflow_dispatch: + schedule: + # every day at 7am & 7pm pacific + - cron: "0 2,14 * * *" + +jobs: + sync-images: + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./image-syncer + steps: + - uses: actions/checkout@v2 + with: + repository: denverdino/image-syncer + path: ./image-syncer + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.17 + + - name: Build + run: make + + - name: Synchronize images to Alibaba Cloud Container Registry Service + env: + ACR_USER: ${{ secrets.ALIBABA_CLOUD_ACR_USER }} + ACR_PASSWORD: ${{ secrets.ALIBABA_CLOUD_ACR_PASSWORD }} + DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} + DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }} + + run: ./image-syncer --auth=auth.json --images=images.json --days=2 --proc=2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 81407e951eee..5f6aa6653ae2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,131 @@ # Release Notes +## Version 1.24.0 - 2021-11-04 + +Features: +* Add --no-kubernetes flag to start minikube without kubernetes [#12848](https://github.com/kubernetes/minikube/pull/12848) +* `minikube addons list` shows addons if cluster does not exist [#12837](https://github.com/kubernetes/minikube/pull/12837) + +Bug fixes: +* virtualbox: change default `host-only-cidr` [#12811](https://github.com/kubernetes/minikube/pull/12811) +* fix zsh completion [#12841](https://github.com/kubernetes/minikube/pull/12841) +* Fix starting on Windows with VMware driver on non `C:` drive [#12819](https://github.com/kubernetes/minikube/pull/12819) + +For a more detailed changelog, including changes occuring in pre-release versions, see [CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md). + +Thank you to our contributors for this release! + +- Akira Yoshiyama +- Keyhoh +- Medya Ghazizadeh +- Nicolas Busseneau +- Sharif Elgamal +- Steven Powell +- Toshiaki Inukai + +Thank you to our PR reviewers for this release! + +- spowelljr (11 comments) +- sharifelgamal (10 comments) +- afbjorklund (6 comments) +- atoato88 (5 comments) +- medyagh (3 comments) +- yosshy (1 comments) + +Thank you to our triage members for this release! + +- sharifelgamal (13 comments) +- afbjorklund (9 comments) +- spowelljr (6 comments) +- medyagh (3 comments) +- Sarathgiggso (2 comments) + +## Version 1.24.0-beta.0 - 2021-10-28 + +Features: +* Allow running podman as experimental driver in Windows & macOS [#12579](https://github.com/kubernetes/minikube/pull/12579) +* Add Aliyun (China) mirror for preload images and K8s release binaries [#12578](https://github.com/kubernetes/minikube/pull/12578) + +Minor Improvements: +* certs: Renew minikube certs if expired [#12534](https://github.com/kubernetes/minikube/pull/12534) +* mount: Persist mount settings after stop start [#12719](https://github.com/kubernetes/minikube/pull/12719) +* cri-o: Implement --force-systemd into cri-o [#12553](https://github.com/kubernetes/minikube/pull/12553) +* tunnel: Use new bridge interface name on OSX Monterey [#12799](https://github.com/kubernetes/minikube/pull/12799) +* Added port validation [#12233](https://github.com/kubernetes/minikube/pull/12233) +* buildkit: Start the daemon on demand (socket-activated) [#12081](https://github.com/kubernetes/minikube/pull/12081) + +Bug Fixes: +* ingress: Restore ingress & ingress-dns backwards compatibility for k8s < v1.19 [#12794](https://github.com/kubernetes/minikube/pull/12794) +* gcp-auth: Fix disabling addon [#12779](https://github.com/kubernetes/minikube/pull/12779) +* podman: Fix network inspect index check [#12756](https://github.com/kubernetes/minikube/pull/12756) +* cilium: Fix Ipv4 cidr [#12587](https://github.com/kubernetes/minikube/pull/12587) +* mount: Fix mounting on non-default profile [#12711](https://github.com/kubernetes/minikube/pull/12711) +* podman: Match the lower case of the podman error message [#12685](https://github.com/kubernetes/minikube/pull/12685) +* ssh: Fix using tilde in ssh-key path [#12672](https://github.com/kubernetes/minikube/pull/12672) +* podman: Fix network not getting deleted [#12627](https://github.com/kubernetes/minikube/pull/12627) +* zsh: Fix completion [#12420](https://github.com/kubernetes/minikube/pull/12420) +* windows wsl2: Fix invoking kubeadm failing when spaces in PATH for none driver [#12617](https://github.com/kubernetes/minikube/pull/12617) +* image build: Only build on control plane by default [#12149](https://github.com/kubernetes/minikube/pull/12149) +* mount: Fix `minikube stop` on Windows VMs taking 9 minutes when mounted [#12716](https://github.com/kubernetes/minikube/pull/12716) + +Version Upgrades: +* ingres controller: Update to v1/1.0.4 and v1beta1/0.49.3 [#12702](https://github.com/kubernetes/minikube/pull/12702) +* minikube-ingress-dns: Update image to 0.0.2 [#12730](https://github.com/kubernetes/minikube/pull/12730) +* helm-tiller: Update image to v2.17.0 [#12641](https://github.com/kubernetes/minikube/pull/12641) + +For a more detailed changelog, including changes occuring in pre-release versions, see [CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md). + +Thank you to our contributors for this release! + +- Akira Yoshiyama +- Alexandre Garnier +- Anders F Björklund +- Aniruddha Amit Dutta +- Avinash Upadhyaya +- Cameron Brunner +- Carlos Santana +- Claudiu Belu +- Gio Gutierrez +- Jeff MAURY +- KallyDev +- Keyhoh +- Kumar Shivendu +- Li Yi +- Marc Velasco +- Marcus Watkins +- Medya Ghazizadeh +- Michael Cade +- Pablo Caderno +- Peixuan Ding +- Piotr Resztak +- Predrag Rogic +- RA489 +- Sharif Elgamal +- Steven Powell +- Taylor Steil +- Wei Luo +- phbits +- yxxhero + +Thank you to our PR reviewers for this release! + +- spowelljr (27 comments) +- medyagh (22 comments) +- t-inu (20 comments) +- sharifelgamal (9 comments) +- atoato88 (6 comments) +- rikatz (5 comments) +- YuikoTakada (1 comments) +- tstromberg (1 comments) + +Thank you to our triage members for this release! + +- spowelljr (37 comments) +- afbjorklund (34 comments) +- RA489 (30 comments) +- medyagh (29 comments) +- sharifelgamal (29 comments) + ## Version 1.23.2 - 2021-09-21 Fix crio regression: diff --git a/Makefile b/Makefile index a021cfb2f28e..84ad75da2243 100644 --- a/Makefile +++ b/Makefile @@ -14,8 +14,8 @@ # Bump these on release - and please check ISO_VERSION for correctness. VERSION_MAJOR ?= 1 -VERSION_MINOR ?= 23 -VERSION_BUILD ?= 2 +VERSION_MINOR ?= 24 +VERSION_BUILD ?= 0 RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD) VERSION ?= v$(RAW_VERSION) @@ -23,7 +23,7 @@ KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/co KIC_VERSION ?= $(shell egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2) # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions -ISO_VERSION ?= v1.23.1-1633115168-12081 +ISO_VERSION ?= v1.24.0 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta DEB_VERSION ?= $(subst -,~,$(RAW_VERSION)) DEB_REVISION ?= 0 diff --git a/cmd/minikube/cmd/completion.go b/cmd/minikube/cmd/completion.go index a92bc91fe41a..d15c60d79ac2 100644 --- a/cmd/minikube/cmd/completion.go +++ b/cmd/minikube/cmd/completion.go @@ -273,6 +273,7 @@ __minikube_convert_bash_to_zsh() { -e "s/${LWORD}compopt${RWORD}/__minikube_compopt/g" \ -e "s/${LWORD}declare${RWORD}/__minikube_declare/g" \ -e "s/\\\$(type${RWORD}/\$(__minikube_type/g" \ + -e "s/aliashash\[\"\([a-z]*\)\"\]/aliashash[\1]/g" \ <<'BASH_COMPLETION_EOF' ` @@ -292,7 +293,7 @@ __minikube_convert_bash_to_zsh() { } buf := new(bytes.Buffer) - err = cmd.GenZshCompletion(buf) + err = cmd.GenBashCompletion(buf) if err != nil { return errors.Wrap(err, "Error generating zsh completion") } diff --git a/cmd/minikube/cmd/config/addons_list.go b/cmd/minikube/cmd/config/addons_list.go index 4ee0a19a7576..a76b9768c8c1 100644 --- a/cmd/minikube/cmd/config/addons_list.go +++ b/cmd/minikube/cmd/config/addons_list.go @@ -52,7 +52,10 @@ var addonsListCmd = &cobra.Command{ exit.Message(reason.Usage, "usage: minikube addons list") } - _, cc := mustload.Partial(ClusterFlagValue()) + var cc *config.ClusterConfig + if config.ProfileExists(ClusterFlagValue()) { + _, cc = mustload.Partial(ClusterFlagValue()) + } switch strings.ToLower(addonListOutput) { case "list": printAddonsList(cc) @@ -98,18 +101,26 @@ var printAddonsList = func(cc *config.ClusterConfig) { var tData [][]string table := tablewriter.NewWriter(os.Stdout) - table.SetHeader([]string{"Addon Name", "Profile", "Status", "Maintainer"}) table.SetAutoFormatHeaders(true) table.SetBorders(tablewriter.Border{Left: true, Top: true, Right: true, Bottom: true}) table.SetCenterSeparator("|") + if cc == nil { + table.SetHeader([]string{"Addon Name", "Maintainer"}) + } else { + table.SetHeader([]string{"Addon Name", "Profile", "Status", "Maintainer"}) + } for _, addonName := range addonNames { addonBundle := assets.Addons[addonName] - enabled := addonBundle.IsEnabled(cc) maintainer := addonBundle.Maintainer if maintainer == "" { maintainer = "unknown (third-party)" } + if cc == nil { + tData = append(tData, []string{addonName, maintainer}) + continue + } + enabled := addonBundle.IsEnabled(cc) tData = append(tData, []string{addonName, cc.Name, fmt.Sprintf("%s %s", stringFromStatus(enabled), iconFromStatus(enabled)), maintainer}) } @@ -135,6 +146,11 @@ var printAddonsJSON = func(cc *config.ClusterConfig) { addonsMap := map[string]map[string]interface{}{} for _, addonName := range addonNames { + if cc == nil { + addonsMap[addonName] = map[string]interface{}{} + continue + } + addonBundle := assets.Addons[addonName] enabled := addonBundle.IsEnabled(cc) diff --git a/cmd/minikube/cmd/config/addons_list_test.go b/cmd/minikube/cmd/config/addons_list_test.go new file mode 100644 index 000000000000..381295d392a7 --- /dev/null +++ b/cmd/minikube/cmd/config/addons_list_test.go @@ -0,0 +1,85 @@ +/* +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 config + +import ( + "encoding/json" + "os" + "testing" + + "k8s.io/minikube/pkg/minikube/out" +) + +func TestAddonsList(t *testing.T) { + t.Run("NonExistingClusterTable", func(t *testing.T) { + b := make([]byte, 167) + r, w, err := os.Pipe() + if err != nil { + t.Fatalf("failed to create pipe: %v", err) + } + old := os.Stdout + defer func() { os.Stdout = old }() + os.Stdout = w + printAddonsList(nil) + if err := w.Close(); err != nil { + t.Fatalf("failed to close pipe: %v", err) + } + if _, err := r.Read(b); err != nil { + t.Fatalf("failed to read bytes: %v", err) + } + got := string(b) + expected := `|-----------------------------|-----------------------| +| ADDON NAME | MAINTAINER | +|-----------------------------|-----------------------|` + if got != expected { + t.Errorf("Expected header to be: %q; got = %q", expected, got) + } + }) + + t.Run("NonExistingClusterJSON", func(t *testing.T) { + type addons struct { + Ambassador *interface{} `json:"ambassador"` + } + + b := make([]byte, 534) + r, w, err := os.Pipe() + if err != nil { + t.Fatalf("failed to create pipe: %v", err) + } + old := os.Stdout + defer func() { + os.Stdout = old + out.SetOutFile(os.Stdout) + }() + os.Stdout = w + out.SetOutFile(os.Stdout) + printAddonsJSON(nil) + if err := w.Close(); err != nil { + t.Fatalf("failed to close pipe: %v", err) + } + if _, err := r.Read(b); err != nil { + t.Fatalf("failed to read bytes: %v", err) + } + got := addons{} + if err := json.Unmarshal(b, &got); err != nil { + t.Fatalf("failed to unmarshal output; output: %q; err: %v", string(b), err) + } + if got.Ambassador == nil { + t.Errorf("expected `ambassador` field to not be nil, but was") + } + }) +} diff --git a/cmd/minikube/cmd/config/profile_list.go b/cmd/minikube/cmd/config/profile_list.go index a1c86449473a..d03def8718a9 100644 --- a/cmd/minikube/cmd/config/profile_list.go +++ b/cmd/minikube/cmd/config/profile_list.go @@ -25,6 +25,7 @@ import ( "k8s.io/minikube/pkg/minikube/bootstrapper/bsutil/kverify" "k8s.io/minikube/pkg/minikube/config" + "k8s.io/minikube/pkg/minikube/constants" "k8s.io/minikube/pkg/minikube/driver" "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/machine" @@ -164,7 +165,11 @@ func profilesToTableData(profiles []*config.Profile) [][]string { exit.Error(reason.GuestCpConfig, "error getting primary control plane", err) } - data = append(data, []string{p.Name, p.Config.Driver, p.Config.KubernetesConfig.ContainerRuntime, cp.IP, strconv.Itoa(cp.Port), p.Config.KubernetesConfig.KubernetesVersion, p.Status, strconv.Itoa(len(p.Config.Nodes))}) + k8sVersion := p.Config.KubernetesConfig.KubernetesVersion + if k8sVersion == constants.NoKubernetesVersion { // for --no-kubernetes flag + k8sVersion = "N/A" + } + data = append(data, []string{p.Name, p.Config.Driver, p.Config.KubernetesConfig.ContainerRuntime, cp.IP, strconv.Itoa(cp.Port), k8sVersion, p.Status, strconv.Itoa(len(p.Config.Nodes))}) } return data } diff --git a/cmd/minikube/cmd/delete.go b/cmd/minikube/cmd/delete.go index 74764207dd65..87ffd48ae0ce 100644 --- a/cmd/minikube/cmd/delete.go +++ b/cmd/minikube/cmd/delete.go @@ -40,6 +40,7 @@ import ( "k8s.io/minikube/pkg/minikube/constants" "k8s.io/minikube/pkg/minikube/cruntime" "k8s.io/minikube/pkg/minikube/delete" + "k8s.io/minikube/pkg/minikube/download" "k8s.io/minikube/pkg/minikube/driver" "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/kubeconfig" @@ -151,7 +152,7 @@ func runDelete(cmd *cobra.Command, args []string) { } // register.SetEventLogPath(localpath.EventLog(ClusterFlagValue())) register.Reg.SetStep(register.Deleting) - + download.CleanUpOlderPreloads() validProfiles, invalidProfiles, err := config.ListProfiles() if err != nil { klog.Warningf("'error loading profiles in minikube home %q: %v", localpath.MiniPath(), err) diff --git a/cmd/minikube/cmd/node_add.go b/cmd/minikube/cmd/node_add.go index 622a2d3d018d..5f281ab04f4d 100644 --- a/cmd/minikube/cmd/node_add.go +++ b/cmd/minikube/cmd/node_add.go @@ -26,6 +26,7 @@ import ( "k8s.io/minikube/pkg/minikube/mustload" "k8s.io/minikube/pkg/minikube/node" "k8s.io/minikube/pkg/minikube/out" + "k8s.io/minikube/pkg/minikube/out/register" "k8s.io/minikube/pkg/minikube/reason" "k8s.io/minikube/pkg/minikube/style" ) @@ -70,6 +71,7 @@ var nodeAddCmd = &cobra.Command{ } } + register.Reg.SetStep(register.InitialSetup) if err := node.Add(cc, n, false); err != nil { _, err := maybeDeleteAndRetry(cmd, *cc, n, nil, err) if err != nil { diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 042b0611c18a..4e6783a151b0 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -32,6 +32,7 @@ import ( "strconv" "strings" + "github.com/Delta456/box-cli-maker/v2" "github.com/blang/semver/v4" "github.com/docker/machine/libmachine/ssh" "github.com/google/go-containerregistry/pkg/authn" @@ -142,6 +143,7 @@ func runStart(cmd *cobra.Command, args []string) { } defer pkgtrace.Cleanup() displayVersion(version.GetVersion()) + go download.CleanUpOlderPreloads() // No need to do the update check if no one is going to see it if !viper.GetBool(interactive) || !viper.GetBool(dryRun) { @@ -431,6 +433,15 @@ func displayEnviron(env []string) { } func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName string) error { + if k8sVersion == constants.NoKubernetesVersion { + register.Reg.SetStep(register.Done) + out.Step(style.Ready, "Done! minikube is ready without Kubernetes!") + out.BoxedWithConfig(box.Config{Py: 1, Px: 4, Type: "Round", Color: "Green"}, style.Tip, "Things to try without Kubernetes ...", `- "minikube ssh" to SSH into minikube's node. +- "minikube docker-env" to point your docker-cli to the docker inside minikube. +- "minikube image" to build images without docker.`) + return nil + } + // To be shown at the end, regardless of exit path defer func() { register.Reg.SetStep(register.Done) @@ -1462,16 +1473,14 @@ func autoSetDriverOptions(cmd *cobra.Command, drvName string) (err error) { // validateKubernetesVersion ensures that the requested version is reasonable func validateKubernetesVersion(old *config.ClusterConfig) { nvs, _ := semver.Make(strings.TrimPrefix(getKubernetesVersion(old), version.VersionPrefix)) + oldestVersion := semver.MustParse(strings.TrimPrefix(constants.OldestKubernetesVersion, version.VersionPrefix)) + defaultVersion := semver.MustParse(strings.TrimPrefix(constants.DefaultKubernetesVersion, version.VersionPrefix)) + zeroVersion := semver.MustParse(strings.TrimPrefix(constants.NoKubernetesVersion, version.VersionPrefix)) - oldestVersion, err := semver.Make(strings.TrimPrefix(constants.OldestKubernetesVersion, version.VersionPrefix)) - if err != nil { - exit.Message(reason.InternalSemverParse, "Unable to parse oldest Kubernetes version from constants: {{.error}}", out.V{"error": err}) - } - defaultVersion, err := semver.Make(strings.TrimPrefix(constants.DefaultKubernetesVersion, version.VersionPrefix)) - if err != nil { - exit.Message(reason.InternalSemverParse, "Unable to parse default Kubernetes version from constants: {{.error}}", out.V{"error": err}) + if nvs.Equals(zeroVersion) { + klog.Infof("No Kuberentes version set for minikube, setting Kubernetes version to %s", constants.NoKubernetesVersion) + return } - if nvs.LT(oldestVersion) { out.WarningT("Specified Kubernetes version {{.specified}} is less than the oldest supported version: {{.oldest}}", out.V{"specified": nvs, "oldest": constants.OldestKubernetesVersion}) if !viper.GetBool(force) { @@ -1518,6 +1527,13 @@ func isBaseImageApplicable(drv string) bool { } func getKubernetesVersion(old *config.ClusterConfig) string { + if viper.GetBool(noKubernetes) { + klog.Infof("No Kubernetes flag is set, setting Kubernetes version to %s", constants.NoKubernetesVersion) + if old != nil { + old.KubernetesConfig.KubernetesVersion = constants.NoKubernetesVersion + } + } + paramVersion := viper.GetString(kubernetesVersion) // try to load the old version first if the user didn't specify anything diff --git a/cmd/minikube/cmd/start_flags.go b/cmd/minikube/cmd/start_flags.go index e3b94f550bbe..2b9289bc22a7 100644 --- a/cmd/minikube/cmd/start_flags.go +++ b/cmd/minikube/cmd/start_flags.go @@ -55,6 +55,7 @@ const ( nfsSharesRoot = "nfs-shares-root" nfsShare = "nfs-share" kubernetesVersion = "kubernetes-version" + noKubernetes = "no-kubernetes" hostOnlyCIDR = "host-only-cidr" containerRuntime = "container-runtime" criSocket = "cri-socket" @@ -164,6 +165,7 @@ func initMinikubeFlags() { startCmd.Flags().Bool(installAddons, true, "If set, install addons. Defaults to true.") startCmd.Flags().IntP(nodes, "n", 1, "The number of nodes to spin up. Defaults to 1.") startCmd.Flags().Bool(preload, true, "If set, download tarball of preloaded images if available to improve start time. Defaults to true.") + startCmd.Flags().Bool(noKubernetes, false, "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)") startCmd.Flags().Bool(deleteOnFailure, false, "If set, delete the current cluster if start fails and try again. Defaults to false.") startCmd.Flags().Bool(forceSystemd, false, "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.") startCmd.Flags().StringP(network, "", "", "network to run minikube with. Now it is used by docker/podman and KVM drivers. If left empty, minikube will create a new network.") @@ -205,7 +207,7 @@ func initDriverFlags() { startCmd.Flags().Int(kvmNUMACount, 1, "Simulate numa node count in minikube, supported numa node count range is 1-8 (kvm2 driver only)") // virtualbox - startCmd.Flags().String(hostOnlyCIDR, "192.168.99.1/24", "The CIDR to be used for the minikube VM (virtualbox driver only)") + startCmd.Flags().String(hostOnlyCIDR, "192.168.59.1/24", "The CIDR to be used for the minikube VM (virtualbox driver only)") startCmd.Flags().Bool(dnsProxy, false, "Enable proxy for NAT DNS requests (virtualbox driver only)") startCmd.Flags().Bool(hostDNSResolver, true, "Enable host resolver for NAT DNS requests (virtualbox driver only)") startCmd.Flags().Bool(noVTXCheck, false, "Disable checking for the availability of hardware virtualization before the vm is started (virtualbox driver only)") @@ -379,6 +381,10 @@ func getRepository(cmd *cobra.Command, k8sVersion string) string { repository = autoSelectedRepository } + if repository == "registry.cn-hangzhou.aliyuncs.com/google_containers" { + download.SetAliyunMirror() + } + if cmd.Flags().Changed(imageRepository) || cmd.Flags().Changed(imageMirrorCountry) { out.Styled(style.Success, "Using image repository {{.name}}", out.V{"name": repository}) } diff --git a/deploy/addons/aliyun_mirror.json b/deploy/addons/aliyun_mirror.json new file mode 100644 index 000000000000..b0d3a0b13539 --- /dev/null +++ b/deploy/addons/aliyun_mirror.json @@ -0,0 +1,102 @@ +{ + "kubernetesui/dashboard": "registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard", + "kubernetesui/metrics-scraper": "registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper", + "gcr.io/k8s-minikube/auto-pause-hook": "registry.cn-hangzhou.aliyuncs.com/google_containers/auto-pause-hook", + "quay.io/operator-framework/olm": "registry.cn-hangzhou.aliyuncs.com/google_containers/olm", + "quay.io/operator-framework/upstream-community-operators": "registry.cn-hangzhou.aliyuncs.com/google_containers/upstream-community-operators", + "k8s.gcr.io/kube-registry-proxy": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-registry-proxy", + "upmcenterprises/registry-creds": "registry.cn-hangzhou.aliyuncs.com/google_containers/registry-creds", + "quay.io/rhdevelopers/core-dns-patcher": "registry.cn-hangzhou.aliyuncs.com/google_containers/core-dns-patcher", + "nvidia/k8s-device-plugin": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-device-plugin", + "ivans3/minikube-log-viewer": "registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-log-viewer", + "cryptexlabs/minikube-ingress-dns": "registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-ingress-dns", + "quay.io/datawire/ambassador-operator": "registry.cn-hangzhou.aliyuncs.com/google_containers/ambassador-operator", + "jettech/kube-webhook-certgen": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen", + "gcr.io/k8s-minikube/gcp-auth-webhook": "registry.cn-hangzhou.aliyuncs.com/google_containers/gcp-auth-webhook", + "k8s.gcr.io/sig-storage/snapshot-controller": "registry.cn-hangzhou.aliyuncs.com/google_containers/snapshot-controller", + "k8s.gcr.io/sig-storage/csi-attacher": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-attacher", + "k8s.gcr.io/sig-storage/csi-external-health-monitor-agent": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-external-health-monitor-agent", + "k8s.gcr.io/sig-storage/csi-external-health-monitor-controller": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-external-health-monitor-controller", + "k8s.gcr.io/sig-storage/csi-node-driver-registrar": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-node-driver-registrar", + "k8s.gcr.io/sig-storage/hostpathplugin": "registry.cn-hangzhou.aliyuncs.com/google_containers/hostpathplugin", + "k8s.gcr.io/sig-storage/livenessprobe": "registry.cn-hangzhou.aliyuncs.com/google_containers/livenessprobe", + "k8s.gcr.io/sig-storage/csi-resizer": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-resizer", + "k8s.gcr.io/sig-storage/csi-snapshotter": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-snapshotter", + "k8s.gcr.io/sig-storage/csi-provisioner": "registry.cn-hangzhou.aliyuncs.com/google_containers/csi-provisioner", + "registry": "registry.cn-hangzhou.aliyuncs.com/google_containers/registry", + "quay.io/nixpanic/glusterfs-server": "registry.cn-hangzhou.aliyuncs.com/google_containers/glusterfs-server", + "heketi/heketi": "registry.cn-hangzhou.aliyuncs.com/google_containers/heketi", + "coredns/coredns": "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns", + "kindest/kindnetd": "registry.cn-hangzhou.aliyuncs.com/google_containers/kindnetd", + "k8s.gcr.io/ingress-nginx/controller": "registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller", + "gcr.io/cloud-builders/gcs-fetcher": "registry.cn-hangzhou.aliyuncs.com/cloud-builders/gcs-fetcher", + "gcr.io/google-samples/freshpod": "registry.cn-hangzhou.aliyuncs.com/google_containers/freshpod", + "gcr.io/k8s-minikube/gvisor-addon": "registry.cn-hangzhou.aliyuncs.com/google_containers/gvisor-addon", + "gcr.io/k8s-minikube/kicbase": "registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase", + "gcr.io/k8s-minikube/storage-provisioner": "registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner", + "gcr.io/kubernetes-helm/tiller": "registry.cn-hangzhou.aliyuncs.com/google_containers/tiller", + "k8s.gcr.io/addon-resizer": "registry.cn-hangzhou.aliyuncs.com/google_containers/addon-resizer", + "k8s.gcr.io/busybox": "registry.cn-hangzhou.aliyuncs.com/google_containers/busybox", + "k8s.gcr.io/cluster-autoscaler": "registry.cn-hangzhou.aliyuncs.com/google_containers/cluster-autoscaler", + "k8s.gcr.io/coredns/coredns": "registry.cn-hangzhou.aliyuncs.com/google_containers/coredns", + "k8s.gcr.io/defaultbackend": "registry.cn-hangzhou.aliyuncs.com/google_containers/defaultbackend", + "k8s.gcr.io/echoserver": "registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver", + "k8s.gcr.io/elasticsearch": "registry.cn-hangzhou.aliyuncs.com/google_containers/elasticsearch", + "k8s.gcr.io/etcd": "registry.cn-hangzhou.aliyuncs.com/google_containers/etcd", + "k8s.gcr.io/etcd-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64", + "k8s.gcr.io/exechealthz-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/exechealthz-amd64", + "k8s.gcr.io/flannel-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/flannel-amd64", + "k8s.gcr.io/fluentd-elasticsearch": "registry.cn-hangzhou.aliyuncs.com/google_containers/fluentd-elasticsearch", + "k8s.gcr.io/heapster": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster", + "k8s.gcr.io/heapster_grafana": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster_grafana", + "k8s.gcr.io/heapster_influxdb": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster_influxdb", + "k8s.gcr.io/heapster-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-amd64", + "k8s.gcr.io/heapster-grafana-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-grafana-amd64", + "k8s.gcr.io/heapster-influxdb-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/heapster-influxdb-amd64", + "k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-dnsmasq-nanny-amd64", + "k8s.gcr.io/k8s-dns-kube-dns-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-kube-dns-amd64", + "k8s.gcr.io/k8s-dns-node-cache": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-node-cache", + "k8s.gcr.io/k8s-dns-sidecar-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-dns-sidecar-amd64", + "k8s.gcr.io/kube-addon-manager": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-addon-manager", + "k8s.gcr.io/kube-addon-manager-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-addon-manager-amd64", + "k8s.gcr.io/kube-apiserver": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver", + "k8s.gcr.io/kube-apiserver-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64", + "k8s.gcr.io/kube-controller-manager": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager", + "k8s.gcr.io/kube-controller-manager-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager-amd64", + "k8s.gcr.io/kube-cross": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-cross", + "k8s.gcr.io/kube-dnsmasq-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-dnsmasq-amd64", + "k8s.gcr.io/kube-proxy": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy", + "k8s.gcr.io/kube-proxy-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64", + "k8s.gcr.io/kube-scheduler": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler", + "k8s.gcr.io/kube-scheduler-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler-amd64", + "k8s.gcr.io/kube-state-metrics": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-state-metrics", + "k8s.gcr.io/kubedns-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kubedns-amd64", + "k8s.gcr.io/kubernetes-dashboard-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64", + "k8s.gcr.io/metrics-server-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64", + "k8s.gcr.io/minikube-nvidia-driver-installer": "registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-nvidia-driver-installer", + "k8s.gcr.io/mongodb-install": "registry.cn-hangzhou.aliyuncs.com/google_containers/mongodb-install", + "k8s.gcr.io/nginx-slim": "registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-slim", + "k8s.gcr.io/nvidia-gpu-device-plugin": "registry.cn-hangzhou.aliyuncs.com/google_containers/nvidia-gpu-device-plugin", + "k8s.gcr.io/pause": "registry.cn-hangzhou.aliyuncs.com/google_containers/pause", + "k8s.gcr.io/pause-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64", + "k8s.gcr.io/spark": "registry.cn-hangzhou.aliyuncs.com/google_containers/spark", + "k8s.gcr.io/spartakus-amd64": "registry.cn-hangzhou.aliyuncs.com/google_containers/spartakus-amd64", + "k8s.gcr.io/zeppelin": "registry.cn-hangzhou.aliyuncs.com/google_containers/zeppelin", + "quay.io/coreos/configmap-reload": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/configmap-reload", + "quay.io/coreos/grafana-watcher": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/grafana-watcher", + "quay.io/coreos/hyperkube": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/hyperkube", + "quay.io/coreos/kube-rbac-proxy": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/kube-rbac-proxy", + "quay.io/coreos/kube-state-metrics": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/kube-state-metrics", + "quay.io/coreos/monitoring-grafana": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/monitoring-grafana", + "quay.io/coreos/prometheus-config-reloader": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/prometheus-config-reloader", + "quay.io/coreos/prometheus-operator": "registry.cn-hangzhou.aliyuncs.com/coreos_containers/prometheus-operator", + "quay.io/kubernetes-ingress-controller/nginx-ingress-controller": "registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller", + "quay.io/kubernetes-service-catalog/service-catalog": "registry.cn-hangzhou.aliyuncs.com/kubernetes-service-catalog/service-catalog", + "quay.io/prometheus/alertmanager": "registry.cn-hangzhou.aliyuncs.com/google_containers/alertmanager", + "quay.io/prometheus/prometheus": "registry.cn-hangzhou.aliyuncs.com/google_containers/prometheus", + "k8s.gcr.io/ingress-nginx/kube-webhook-certgen": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen", + "gcr.io/k8s-minikube/minikube-ingress-dns": "registry.cn-hangzhou.aliyuncs.com/google_containers/minikube-ingress-dns", + "gcr.io/google_containers/pause": "registry.cn-hangzhou.aliyuncs.com/google_containers/pause", + "k8s.gcr.io/metrics-server/metrics-server": "registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server", + "gcr.io/google_containers/kube-registry-proxy": "registry.cn-hangzhou.aliyuncs.com/google_containers/kube-registry-proxy" +} \ No newline at end of file diff --git a/deploy/addons/assets.go b/deploy/addons/assets.go index 3fa5c6ced362..39a95f3cdcab 100644 --- a/deploy/addons/assets.go +++ b/deploy/addons/assets.go @@ -135,4 +135,8 @@ var ( // PortainerAssets assets for portainer addon //go:embed portainer/portainer.yaml.tmpl PortainerAssets embed.FS + + // AliyunMirror assets for aliyun_mirror.json + //go:embed aliyun_mirror.json + AliyunMirror embed.FS ) diff --git a/deploy/addons/gcp-auth/gcp-auth-webhook.yaml.tmpl b/deploy/addons/gcp-auth/gcp-auth-webhook.yaml.tmpl index d3e585591485..dbac1650b7b4 100644 --- a/deploy/addons/gcp-auth/gcp-auth-webhook.yaml.tmpl +++ b/deploy/addons/gcp-auth/gcp-auth-webhook.yaml.tmpl @@ -1,4 +1,4 @@ -# Copyright 2017 The Kubernetes Authors. +# Copyright 2021 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. ---- apiVersion: v1 kind: ServiceAccount metadata: diff --git a/deploy/addons/ingress/ingress-deploy.yaml.tmpl b/deploy/addons/ingress/ingress-deploy.yaml.tmpl index 264973405245..784100cc1ad1 100644 --- a/deploy/addons/ingress/ingress-deploy.yaml.tmpl +++ b/deploy/addons/ingress/ingress-deploy.yaml.tmpl @@ -46,6 +46,8 @@ metadata: data: # see https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md for all possible options and their description hsts: "false" +# see https://github.com/kubernetes/minikube/pull/12702#discussion_r727519180: 'allow-snippet-annotations' should be used only if strictly required by another part of the deployment +# allow-snippet-annotations: 'true' --- apiVersion: v1 kind: ConfigMap @@ -102,8 +104,10 @@ rules: - list - watch - apiGroups: + {{- if eq .IngressAPIVersion "v1beta1"}} - extensions - - networking.k8s.io # k8s 1.14+ + {{- end}} + - networking.k8s.io resources: - ingresses verbs: @@ -118,14 +122,16 @@ rules: - create - patch - apiGroups: + {{- if eq .IngressAPIVersion "v1beta1"}} - extensions - - networking.k8s.io # k8s 1.14+ + {{- end}} + - networking.k8s.io resources: - ingresses/status verbs: - update - apiGroups: - - networking.k8s.io # k8s 1.14+ + - networking.k8s.io resources: - ingressclasses verbs: @@ -187,8 +193,10 @@ rules: - list - watch - apiGroups: + {{- if eq .IngressAPIVersion "v1beta1"}} - extensions - - networking.k8s.io # k8s 1.14+ + {{- end}} + - networking.k8s.io resources: - ingresses verbs: @@ -196,14 +204,16 @@ rules: - list - watch - apiGroups: + {{- if eq .IngressAPIVersion "v1beta1"}} - extensions - - networking.k8s.io # k8s 1.14+ + {{- end}} + - networking.k8s.io resources: - ingresses/status verbs: - update - apiGroups: - - networking.k8s.io # k8s 1.14+ + - networking.k8s.io resources: - ingressclasses verbs: @@ -225,7 +235,6 @@ rules: - configmaps verbs: - create - - update - apiGroups: - '' resources: @@ -253,17 +262,6 @@ subjects: name: ingress-nginx namespace: ingress-nginx --- -apiVersion: networking.k8s.io/v1 -kind: IngressClass -metadata: - labels: - app.kubernetes.io/component: controller - name: nginx - annotations: - ingressclass.kubernetes.io/is-default-class: "true" -spec: - controller: k8s.io/ingress-nginx ---- # Source: ingress-nginx/templates/controller-service-webhook.yaml apiVersion: v1 kind: Service @@ -280,6 +278,9 @@ spec: - name: https-webhook port: 443 targetPort: webhook + {{- if eq .IngressAPIVersion "v1"}} + appProtocol: https + {{- end}} selector: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/instance: ingress-nginx @@ -298,15 +299,26 @@ metadata: namespace: ingress-nginx spec: type: NodePort + {{- if eq .IngressAPIVersion "v1"}} + ipFamilyPolicy: SingleStack + ipFamilies: + - IPv4 + {{- end}} ports: - name: http port: 80 protocol: TCP targetPort: http + {{- if eq .IngressAPIVersion "v1"}} + appProtocol: http + {{- end}} - name: https port: 443 protocol: TCP targetPort: https + {{- if eq .IngressAPIVersion "v1"}} + appProtocol: https + {{- end}} selector: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/instance: ingress-nginx @@ -329,10 +341,6 @@ spec: app.kubernetes.io/instance: ingress-nginx app.kubernetes.io/component: controller revisionHistoryLimit: 10 - strategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate minReadySeconds: 0 template: metadata: @@ -355,7 +363,14 @@ spec: args: - /nginx-ingress-controller - --election-id=ingress-controller-leader + {{- if eq .IngressAPIVersion "v1"}} + - --controller-class=k8s.io/ingress-nginx + - --watch-ingress-without-class=true + {{- end}} + {{- if eq .IngressAPIVersion "v1beta1"}} - --ingress-class=nginx + {{- end}} + - --publish-status-address=localhost - --configmap=$(POD_NAMESPACE)/ingress-nginx-controller - --report-node-internal-ip-address - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services @@ -431,12 +446,28 @@ spec: secret: secretName: ingress-nginx-admission --- +{{- if eq .IngressAPIVersion "v1"}} +# Source: ingress-nginx/templates/controller-ingressclass.yaml +# We don't support namespaced ingressClass yet +# So a ClusterRole and a ClusterRoleBinding is required +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + labels: + app.kubernetes.io/name: ingress-nginx + app.kubernetes.io/instance: ingress-nginx + app.kubernetes.io/component: controller + name: nginx + namespace: ingress-nginx + annotations: + ingressclass.kubernetes.io/is-default-class: "true" +spec: + controller: k8s.io/ingress-nginx +--- +{{- end}} # Source: ingress-nginx/templates/admission-webhooks/validating-webhook.yaml # before changing this value, check the required kubernetes version # https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#prerequisites -# Currently(v0.49.0), ValidatingWebhookConfiguration of this validates v1beta1 request -# TODO(govargo): check this after upstream ingress-nginx can validate v1 version -# https://github.com/kubernetes/ingress-nginx/blob/controller-v0.49.0/internal/admission/controller/main.go#L46-L52 apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: @@ -461,10 +492,10 @@ webhooks: failurePolicy: Fail sideEffects: None admissionReviewVersions: - {{- if eq .IngressAPIVersion "v1beta1"}} - v1 - {{- end}} - - {{.IngressAPIVersion}} + {{- if eq .IngressAPIVersion "v1beta1"}} + - v1beta1 + {{- end}} clientConfig: service: namespace: ingress-nginx diff --git a/deploy/minikube/releases-beta.json b/deploy/minikube/releases-beta.json index 98c98af88b6f..3a372d48d0d5 100644 --- a/deploy/minikube/releases-beta.json +++ b/deploy/minikube/releases-beta.json @@ -1,5 +1,13 @@ [ { + "name": "v1.24.0-beta.0", + "checksums": { + "darwin": "f8b0a2d0ca7435e98fff553702ed4977e33b301d0316ee4512d28b485701613e", + "linux": "8cd17a9fb5c73f9cab97754bd6ed725cb2b1fe9faa02f7f75a9cf5566b6f8716", + "windows": "ba87d2ef329db940890f8970afce1a6654814e0e427f91b9d5347496d4e7d1a3" + } + }, + { "name": "v1.22.0-beta.0", "checksums": { "darwin": "1ec06c37be5c6c79a7255da09ff83490a44d1e8cd2b2f45e4b489edfdeacde94", diff --git a/deploy/minikube/releases.json b/deploy/minikube/releases.json index 6f0ab784ce90..3a1281673a27 100644 --- a/deploy/minikube/releases.json +++ b/deploy/minikube/releases.json @@ -1,4 +1,12 @@ [ + { + "name": "v1.24.0", + "checksums": { + "darwin": "55f14e4f411370da18d7b9432ae4edd128f4f047bbc87a278e08ba256ff6f669", + "linux": "3bc218476cf205acf11b078d45210a4882e136d24a3cbb7d8d645408e423b8fe", + "windows": "bb729590e111652d5f444fa66b66196491fa21c0713e4ff29f6e5360ab13a02c" + } + }, { "name": "v1.23.2", "checksums": { diff --git a/go.mod b/go.mod index b84da6723ab5..8cdbafb1a2cf 100644 --- a/go.mod +++ b/go.mod @@ -3,8 +3,8 @@ module k8s.io/minikube go 1.17 require ( - cloud.google.com/go/storage v1.18.0 - contrib.go.opencensus.io/exporter/stackdriver v0.12.1 + cloud.google.com/go/storage v1.18.2 + contrib.go.opencensus.io/exporter/stackdriver v0.13.10 github.com/Delta456/box-cli-maker/v2 v2.2.2 github.com/GoogleCloudPlatform/docker-credential-gcr v0.0.0-20210713212222-faed5e8b8ca2 github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v0.16.0 @@ -16,10 +16,10 @@ require ( github.com/c4milo/gotoolkit v0.0.0-20190525173301-67483a18c17a // indirect github.com/cenkalti/backoff/v4 v4.1.1 github.com/cheggaaa/pb/v3 v3.0.8 - github.com/cloudevents/sdk-go/v2 v2.5.0 + github.com/cloudevents/sdk-go/v2 v2.6.1 github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 // indirect - github.com/docker/docker v20.10.9+incompatible + github.com/docker/docker v20.10.10+incompatible github.com/docker/go-units v0.4.0 github.com/docker/machine v0.16.2 github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e @@ -49,7 +49,7 @@ require ( github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 github.com/klauspost/cpuid v1.2.0 github.com/libvirt/libvirt-go v3.9.0+incompatible - github.com/machine-drivers/docker-machine-driver-vmware v0.1.3 + github.com/machine-drivers/docker-machine-driver-vmware v0.1.5 github.com/mattbaird/jsonpatch v0.0.0-20200820163806-098863c1fc24 github.com/mattn/go-isatty v0.0.14 github.com/mitchellh/go-ps v1.0.0 @@ -66,7 +66,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 github.com/russross/blackfriday v1.5.3-0.20200218234912-41c5fccfd6f6 // indirect github.com/samalba/dockerclient v0.0.0-20160414174713-91d7393ff859 // indirect - github.com/shirou/gopsutil/v3 v3.21.9 + github.com/shirou/gopsutil/v3 v3.21.10 github.com/spf13/cobra v1.2.1 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.9.0 @@ -80,19 +80,19 @@ require ( golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 golang.org/x/exp v0.0.0-20210220032938-85be41e4509f golang.org/x/mod v0.5.1 - golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f + golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 + golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359 golang.org/x/term v0.0.0-20210406210042-72f3dc4e9b72 golang.org/x/text v0.3.7 gonum.org/v1/plot v0.10.0 - google.golang.org/api v0.58.0 + google.golang.org/api v0.60.0 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.22.2 k8s.io/apimachinery v0.22.2 k8s.io/client-go v0.22.2 - k8s.io/klog/v2 v2.20.0 + k8s.io/klog/v2 v2.30.0 k8s.io/kubectl v0.22.2 k8s.io/kubernetes v1.21.3 sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0 @@ -100,20 +100,22 @@ require ( require ( cloud.google.com/go v0.97.0 // indirect - cloud.google.com/go/container v0.1.0 // indirect - cloud.google.com/go/monitoring v0.1.0 // indirect - cloud.google.com/go/trace v0.1.0 // indirect + cloud.google.com/go/monitoring v1.1.0 // indirect + cloud.google.com/go/trace v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd // indirect github.com/Microsoft/go-winio v0.5.0 // indirect github.com/StackExchange/wmi v1.2.1 // indirect github.com/VividCortex/ewma v1.1.1 // indirect github.com/ajstarks/svgo v0.0.0-20210923152817-c3b6e2f0c527 // indirect - github.com/aws/aws-sdk-go v1.35.24 // indirect + github.com/aws/aws-sdk-go v1.37.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect - github.com/census-instrumentation/opencensus-proto v0.2.1 // indirect + github.com/census-instrumentation/opencensus-proto v0.3.0 // indirect + github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 // indirect + github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed // indirect github.com/containerd/cgroups v1.0.1 // indirect github.com/containerd/containerd v1.5.2 // indirect github.com/containerd/stargz-snapshotter/estargz v0.7.0 // indirect @@ -123,14 +125,16 @@ require ( github.com/docker/distribution v2.7.1+incompatible // indirect github.com/docker/docker-credential-helpers v0.6.3 // indirect github.com/docker/go-connections v0.4.0 // indirect + github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0 // indirect + github.com/envoyproxy/protoc-gen-validate v0.1.0 // indirect github.com/evanphx/json-patch v4.9.0+incompatible // indirect github.com/fatih/color v1.10.0 // indirect github.com/fogleman/gg v1.3.0 // indirect github.com/fsnotify/fsnotify v1.5.1 // indirect github.com/go-fonts/liberation v0.2.0 // indirect github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81 // indirect - github.com/go-logr/logr v1.0.0 // indirect - github.com/go-ole/go-ole v1.2.5 // indirect + github.com/go-logr/logr v1.2.0 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-pdf/fpdf v0.5.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect @@ -151,6 +155,7 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.11 // indirect github.com/klauspost/compress v1.13.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.5 // indirect github.com/mattn/go-colorable v0.1.8 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect @@ -194,7 +199,7 @@ require ( golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0 // indirect + google.golang.org/genproto v0.0.0-20211021150943-2b146023228c // indirect google.golang.org/grpc v1.40.0 // indirect google.golang.org/protobuf v1.27.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect diff --git a/go.sum b/go.sum index f6a77723a3bf..ba5fa58bc8e0 100644 --- a/go.sum +++ b/go.sum @@ -26,9 +26,6 @@ cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAV cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= -cloud.google.com/go v0.92.1/go.mod h1:cMc7asehN84LBi1JGTHo4n8wuaGuNAZ7lR7b1YNJBrE= -cloud.google.com/go v0.92.2/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= -cloud.google.com/go v0.92.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= cloud.google.com/go v0.97.0 h1:3DXvAyifywvq64LfkKaMOmkWPS1CikIQdMe2lY9vxU8= @@ -39,14 +36,12 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/container v0.1.0 h1:TcvimswG10seya10bbp4Ai4aGJuzUnhSuoOcaPu9UNI= -cloud.google.com/go/container v0.1.0/go.mod h1:1rrp90HFUViXnpvafHiTaaAxNscrHiFgfUCEiEHBlEk= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= -cloud.google.com/go/monitoring v0.1.0 h1:vssDZ792skH6AWCDH1OogKfs/FzgEVTB/yUAzfgBR24= -cloud.google.com/go/monitoring v0.1.0/go.mod h1:Hpm3XfzJv+UTiXzCG5Ffp0wijzHTC7Cv4eR7o3x/fEE= +cloud.google.com/go/monitoring v1.1.0 h1:ZnyNdf/XRcynMmKzRSNTOdOyYPs6G7do1l2D2hIvIKo= +cloud.google.com/go/monitoring v1.1.0/go.mod h1:L81pzz7HKn14QCMaCs6NTQkdBnE87TElyanS95vIcl4= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -56,13 +51,12 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.18.0 h1:HM5Hu/BqgmWbo7pT9KFYGUccwzA8ZWDICJww9m5t9UA= -cloud.google.com/go/storage v1.18.0/go.mod h1:h0NImijCz/2WHwLh03BvmWdrNe4I/pzUdvUHoxIUroU= -cloud.google.com/go/trace v0.1.0 h1:nUGUK79FOkN0UGUXhBmVBkbu1PYsHe0YyFSPLOD9Npg= -cloud.google.com/go/trace v0.1.0/go.mod h1:wxEwsoeRVPbeSkt7ZC9nWCgmoKQRAoySN7XHW2AmI7g= -contrib.go.opencensus.io/exporter/stackdriver v0.12.1 h1:Dll2uFfOVI3fa8UzsHyP6z0M6fEc9ZTAMo+Y3z282Xg= -contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= -contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= +cloud.google.com/go/storage v1.18.2 h1:5NQw6tOn3eMm0oE8vTkfjau18kjL79FlMjy/CHTpmoY= +cloud.google.com/go/storage v1.18.2/go.mod h1:AiIj7BWXyhO5gGVmYJ+S8tbkCx3yb0IMjua8Aw4naVM= +cloud.google.com/go/trace v1.0.0 h1:laKx2y7IWMjguCe5zZx6n7qLtREk4kyE69SXVC0VSN8= +cloud.google.com/go/trace v1.0.0/go.mod h1:4iErSByzxkyHWzzlAj63/Gmjz0NH1ASqhJguHpGcr6A= +contrib.go.opencensus.io/exporter/stackdriver v0.13.10 h1:a9+GZPUe+ONKUwULjlEOucMMG0qfSCCenlji0Nhqbys= +contrib.go.opencensus.io/exporter/stackdriver v0.13.10/go.mod h1:I5htMbyta491eUxufwwZPQdcKvvgzMB4O9ni41YnIM8= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20201218220906-28db891af037/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= @@ -117,6 +111,7 @@ github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5 github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= +github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/Parallels/docker-machine-parallels/v2 v2.0.1 h1:3Rj+4tcm/UqMU5g2bLJmpxD0ssn1BB5am4Cd6yUDbVI= github.com/Parallels/docker-machine-parallels/v2 v2.0.1/go.mod h1:NKwI5KryEmEHMZVj80t9JQcfXWZp4/ZYNBuw4C5sQ9E= @@ -154,9 +149,9 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= -github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.35.24 h1:U3GNTg8+7xSM6OAJ8zksiSM4bRqxBWmVwwehvOSNG3A= github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= +github.com/aws/aws-sdk-go v1.37.0 h1:GzFnhOIsrGyQ69s7VgqtrG2BG8v7X7vwB3Xpbd/DBBk= +github.com/aws/aws-sdk-go v1.37.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -193,9 +188,9 @@ github.com/cenkalti/backoff v2.1.1+incompatible h1:tKJnvO2kl0zmb/jA5UKAt4VoEVw1q github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v4 v4.1.1 h1:G2HAfAmvm/GcKan2oOQpBXOd2tT2G57ZnZGWa1PxPBQ= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= -github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/census-instrumentation/opencensus-proto v0.2.1 h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0 h1:t/LhUZLVitR1Ow2YOnduCsavhwFUklBMoGVYUCqmCqk= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= @@ -217,8 +212,8 @@ github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/cilium/ebpf v0.5.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudevents/sdk-go/v2 v2.5.0 h1:Ts6aLHbBUJfcNcZ4ouAfJ4+Np7SE1Yf2w4ADKRCd7Fo= -github.com/cloudevents/sdk-go/v2 v2.5.0/go.mod h1:nlXhgFkf0uTopxmRXalyMwS2LG70cRGPrxzmjJgSG0U= +github.com/cloudevents/sdk-go/v2 v2.6.1 h1:yHtzgmeBvc0TZx1nrnvYXov1CSvkQyvhEhNMs8Z5Mmk= +github.com/cloudevents/sdk-go/v2 v2.6.1/go.mod h1:nlXhgFkf0uTopxmRXalyMwS2LG70cRGPrxzmjJgSG0U= github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 h1:Yg2hDs4b13Evkpj42FU2idX2cVXVFqQSheXYKM86Qsk= github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21/go.mod h1:MgJyK38wkzZbiZSKeIeFankxxSA8gayko/nr5x5bgBA= github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 h1:tuijfIjZyjZaHq9xDUh0tNitwXshJpbLkqMOJv4H3do= @@ -226,7 +221,9 @@ github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21/go.mod github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 h1:cqQfy1jclcSy/FwLjemeg3SR1yaINm74aQyupQ0Bl8M= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed h1:OZmjad4L3H8ncOIR8rnb5MREYqG8ixi5+WbeUsquF0c= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/container-storage-interface/spec v1.3.0/go.mod h1:6URME8mwIBbpVyZV93Ce5St17xBiQJQY67NDsuohiy4= @@ -368,8 +365,8 @@ github.com/docker/docker v17.12.0-ce-rc1.0.20181225093023-5ddb1d410a8b+incompati github.com/docker/docker v17.12.0-ce-rc1.0.20190115220918-5ec31380a5d3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.9+incompatible h1:JlsVnETOjM2RLQa0Cc1XCIspUdXW3Zenq9P54uXBm6k= -github.com/docker/docker v20.10.9+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.10+incompatible h1:GKkP0T7U4ks6X3lmmHKC2QDprnpRJor2Z5a8m62R9ZM= +github.com/docker/docker v20.10.10+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= @@ -398,7 +395,9 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0 h1:dulLQAYQFYtG5MTplgNGHWuV2D+OBD+Z8lmDBmbLg+s= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= @@ -452,10 +451,11 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.0.0 h1:kH951GinvFVaQgy/ki/B3YYmQtRpExGigSJg6O8z5jo= -github.com/go-logr/logr v1.0.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY= +github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= @@ -604,7 +604,6 @@ github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210804190019-f964ff605595/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/slowjam v1.0.0 h1:dA9flW4oGTJcSy8FpEvdq8JKwPFVgqYwMmjhqlb2L+s= @@ -716,7 +715,6 @@ github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0 github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -795,8 +793,10 @@ github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH github.com/lucas-clemente/quic-clients v0.1.0/go.mod h1:y5xVIEoObKqULIKivu+gD/LU90pL73bTdtQjPBvtCBk= github.com/lucas-clemente/quic-go v0.10.2/go.mod h1:hvaRS9IHjFLMq76puFJeWNfmn+H70QZ/CXoxqw9bzao= github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced/go.mod h1:NCcRLrOTZbzhZvixZLlERbJtDtYsmMw8Jc4vS8Z0g58= -github.com/machine-drivers/docker-machine-driver-vmware v0.1.3 h1:CIdHhp5vSr+7i3DYmXyJHjVOeo27AGWtvq5SfmjyMVs= -github.com/machine-drivers/docker-machine-driver-vmware v0.1.3/go.mod h1:p2hY99UqqG4FNLvAotM0K5kPlShyQ486ymrkNqv1NiA= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/machine-drivers/docker-machine-driver-vmware v0.1.5 h1:51GqJ84u9EBATnn8rWsHNavcuRPlCLnDmvjzZVuliwY= +github.com/machine-drivers/docker-machine-driver-vmware v0.1.5/go.mod h1:dTnTzUH3uzhMo0ddV1zRjGYWcVhQWwqiHPxz5l+HPd0= github.com/machine-drivers/machine v0.7.1-0.20210719174735-6eca26732baa h1:RDn5zVjqpQP8yElV/30YUNiDsjksDSqq30JVQfo1wzY= github.com/machine-drivers/machine v0.7.1-0.20210719174735-6eca26732baa/go.mod h1:79Uwa2hGd5S39LDJt58s8JZcIhGEK6pkq9bsuTbFWbk= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -1055,8 +1055,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shirou/gopsutil/v3 v3.21.9 h1:Vn4MUz2uXhqLSiCbGFRc0DILbMVLAY92DSkT8bsYrHg= -github.com/shirou/gopsutil/v3 v3.21.9/go.mod h1:YWp/H8Qs5fVmf17v7JNZzA0mPJ+mS2e9JdiUF9LlKzQ= +github.com/shirou/gopsutil/v3 v3.21.10 h1:flTg1DrnV/UVrBqjLgVgDJzx6lf+91rC64/dBHmO2IA= +github.com/shirou/gopsutil/v3 v3.21.10/go.mod h1:t75NhzCZ/dYyPQjyQmrAYP6c8+LCdFANeBMdLPCNnew= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= @@ -1072,6 +1072,7 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1 github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= @@ -1377,8 +1378,9 @@ golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1 h1:B333XXssMuKQeBwiNODx4TupZy7bf4sxFZnN2ZOcvUE= +golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1399,7 +1401,6 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190115152922-a457fd036447/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190124100055-b90733256f2e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1495,8 +1496,11 @@ golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210917161153-d61c044b1678 h1:J27LZFQBFoihqXoegpscI10HpjZ7B5WQLLKL2FZXQKw= golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359 h1:2B5p2L5IfGiD7+b9BOoRMC6DgObAVZV+Fsp050NqXik= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -1608,7 +1612,6 @@ gonum.org/v1/plot v0.10.0 h1:ymLukg4XJlQnYUJCp+coQq5M7BsUJFk6XQE4HPflwdw= gonum.org/v1/plot v0.10.0/go.mod h1:JWIHJ7U20drSQb/aDpTetJzfC1KlAPldJLpkSy88dvQ= google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -1639,8 +1642,10 @@ google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6 google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= -google.golang.org/api v0.58.0 h1:MDkAbYIB1JpSgCTOCYYoIec/coMlKK4oVbpnBLLcyT0= google.golang.org/api v0.58.0/go.mod h1:cAbP2FsxoGVNwtgNAmmn3y5G1TWAiVYRmg4yku3lv+E= +google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= +google.golang.org/api v0.60.0 h1:eq/zs5WPH4J9undYM9IP1O7dSr7Yh8Y0GtSCpzGzIUk= +google.golang.org/api v0.60.0/go.mod h1:d7rl65NZAkEQ90JFzqBjcRq1TVeG5ZoGV3sSpEnnVb4= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1712,8 +1717,13 @@ google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= -google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0 h1:5Tbluzus3QxoAJx4IefGt1W0HQZW4nuMrVk684jI74Q= +google.golang.org/genproto v0.0.0-20210921142501-181ce0d877f6/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211016002631-37fc39342514/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211018162055-cf77aa76bad2/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211021150943-2b146023228c h1:FqrtZMB5Wr+/RecOM3uPJNPfWR8Upb5hAPnt7PU6i4k= +google.golang.org/genproto v0.0.0-20211021150943-2b146023228c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1846,8 +1856,8 @@ k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.3.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.20.0 h1:tlyxlSvd63k7axjhuchckaRJm+a92z5GSOrTOQY5sHw= -k8s.io/klog/v2 v2.20.0/go.mod h1:Gm8eSIfQN6457haJuPaMxZw4wyP5k+ykPFlrhQDvhvw= +k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw= +k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-aggregator v0.21.2/go.mod h1:7NgmUXJziySAJ7GxMRBBwcJay7MLUoxms31fw/ICpYk= k8s.io/kube-controller-manager v0.21.2/go.mod h1:gu0rV2UWy1k05E3kZxJFQE1F7RR1PZlq83+9J+lWlno= k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7 h1:vEx13qjvaZ4yfObSSXW7BrMc/KQBBT/Jyee8XtLf4x0= diff --git a/hack/conformance_tests.sh b/hack/conformance_tests.sh index 34b3801090e9..2b5f409078da 100755 --- a/hack/conformance_tests.sh +++ b/hack/conformance_tests.sh @@ -51,6 +51,8 @@ tar -xzf $tarball outdir="$(mktemp -d)" ./sonobuoy retrieve "${outdir}" +"${MINIKUBE}" delete -p "${PROFILE_NAME}" + cwd=$(pwd) cd "${outdir}" @@ -74,7 +76,30 @@ description: minikube runs a local Kubernetes cluster on macOS, Linux, and Windo EOF cat <README.md -./hack/conformance_tests.sh $MINIKUBE $START_ARGS +# Reproducing the test results + +## Run minikube with docker driver + +Install [docker](https://docs.docker.com/engine/install/) +Install [kubectl](https://v1-18.docs.kubernetes.io/docs/tasks/tools/install-kubectl/) +Clone the [minikube repo](https://github.com/kubernetes/minikube) + +## Compile the latest minikube binary +```console +% cd +% make +``` + +## Trigger the tests and get back the results + +We follow the [official instructions](https://github.com/cncf/k8s-conformance/blob/master/instructions.md): + +```console +% cd +./hack/conformance_tests.sh ${MINIKUBE} ${START_ARGS} +``` + +This script will run sonobuoy against a minikube cluster with two nodes and the provided parameters. EOF cp -r ../results/plugins/e2e/results/global/* . diff --git a/hack/jenkins/cloud_shell_functional_tests_docker.sh b/hack/jenkins/cloud_shell_functional_tests_docker.sh index 6a229375c666..c6b8968b133a 100755 --- a/hack/jenkins/cloud_shell_functional_tests_docker.sh +++ b/hack/jenkins/cloud_shell_functional_tests_docker.sh @@ -37,6 +37,7 @@ gcloud cloud-shell ssh --authorize-session << EOF COMMIT=$COMMIT EXTRA_BUILD_ARGS=$EXTRA_BUILD_ARGS access_token=$access_token + ROOT_JOB_ID=$ROOT_JOB_ID # Prevent cloud-shell is ephemeral warnings on apt-get touch ~/.cloudshell/no-apt-get-warning diff --git a/hack/jenkins/installers/check_install_golang.sh b/hack/jenkins/installers/check_install_golang.sh index b341ea77b484..c7dd9a8eba99 100755 --- a/hack/jenkins/installers/check_install_golang.sh +++ b/hack/jenkins/installers/check_install_golang.sh @@ -50,6 +50,8 @@ function check_and_install_golang() { return fi + sudo chown -R jenkins:jenkins "$INSTALL_PATH"/go + # golang has been installed and check its version if [[ $(go version | cut -d' ' -f 3) =~ go(([0-9]+)\.([0-9]+).([0-9]+)*) ]]; then HOST_VERSION=${BASH_REMATCH[1]} @@ -86,6 +88,7 @@ function install_golang() { sudo rm -rf "$GO_DIR" sudo mkdir -p "$GO_DIR" sudo tar -C "$GO_DIR" --strip-components=1 -xzf "$GO_TGZ" + sudo chown -R jenkins:jenkins "$GO_DIR" popd >/dev/null echo "installed in $GO_DIR: $($GO_DIR/bin/go version)" diff --git a/hack/jenkins/installers/check_install_gotestsum.sh b/hack/jenkins/installers/check_install_gotestsum.sh index 9c7ee25872d7..4a99d7ca1c44 100644 --- a/hack/jenkins/installers/check_install_gotestsum.sh +++ b/hack/jenkins/installers/check_install_gotestsum.sh @@ -17,8 +17,8 @@ set -eux -o pipefail function install_gotestsum() { - sudo rm -f $(which gotestsum) - sudo PATH="$PATH" GOBIN="$GOROOT/bin" go install gotest.tools/gotestsum@v1.6.4 + rm -f $(which gotestsum) + GOBIN="$GOROOT/bin" go install gotest.tools/gotestsum@v1.6.4 } -which gotestsum || install_gotestsum \ No newline at end of file +which gotestsum || install_gotestsum diff --git a/hack/jenkins/kicbase_auto_build.sh b/hack/jenkins/kicbase_auto_build.sh index 57536132a109..73fdf274f9af 100755 --- a/hack/jenkins/kicbase_auto_build.sh +++ b/hack/jenkins/kicbase_auto_build.sh @@ -27,12 +27,16 @@ docker login -u ${DOCKERHUB_USER} -p ${DOCKERHUB_PASS} # Make sure golang is installed and configured ./hack/jenkins/installers/check_install_golang.sh "/usr/local" || true +export GOBIN=/usr/local/go/bin +export PATH=$PATH:$GOBIN + # Let's make sure we have the newest kicbase reference curl -L https://github.com/kubernetes/minikube/raw/master/pkg/drivers/kic/types.go --output types-head.go # kicbase tags are of the form VERSION-TIMESTAMP-PR, so this grep finds that TIMESTAMP in the middle # if it doesn't exist, it will just return VERSION, which is covered in the if statement below HEAD_KIC_TIMESTAMP=$(egrep "Version =" types-head.go | cut -d \" -f 2 | cut -d "-" -f 2) -CURRENT_KIC_TS=$(egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f 2 | cut -d "-" -f 2) +CURRENT_KIC_VERSION=$(egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f 2) +CURRENT_KIC_TS=$(echo $CURRENT_KIC_VERSION | cut -d "-" -f 2) if [[ $HEAD_KIC_TIMESTAMP != v* ]]; then diff=$((CURRENT_KIC_TS-HEAD_KIC_TIMESTAMP)) if [[ $CURRENT_KIC_TS == v* ]] || [ $diff -lt 0 ]; then @@ -62,19 +66,33 @@ GCR_IMG=${GCR_REPO}:${KIC_VERSION} DH_IMG=${DH_REPO}:${KIC_VERSION} export KICBASE_IMAGE_REGISTRIES="${GCR_IMG} ${DH_IMG}" +if [ "$release" = false ]; then + # Build a new kicbase image + CIBUILD=yes make push-kic-base-image | tee kic-logs.txt + + # Abort with error message if above command failed + ec=$? + if [ $ec -gt 0 ]; then + if [ "$release" = false ]; then + gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new kicbase image failed. + See the logs at: https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit::7}/kic_image_build.txt + " + fi + exit $ec + fi +else + # Install crane, it does exactly what we want it to do + go install github.com/google/go-containerregistry/cmd/crane@latest + + CURRENT_GCR_REPO=$(grep "gcrRepo =" pkg/drivers/kic/types.go | cut -d \" -f 2) + CURRENT_DH_REPO=$(grep "dockerhubRepo =" pkg/drivers/kic/types.go | cut -d \" -f 2) -# Build a new kicbase image -CIBUILD=yes make push-kic-base-image | tee kic-logs.txt + CURRENT_GCR_IMG=$CURRENT_GCR_REPO:$CURRENT_KIC_VERSION + CURRENT_DH_IMG=$CURRENT_DH_REPO:$CURRENT_KIC_VERSION + + crane copy $CURRENT_GCR_IMG $GCR_IMG + crane copy $CURRENT_DH_IMG $DH_IMG -# Abort with error message if above command failed -ec=$? -if [ $ec -gt 0 ]; then - if [ "$release" = false ]; then - gh pr comment ${ghprbPullId} --body "Hi ${ghprbPullAuthorLoginMention}, building a new kicbase image failed. - See the logs at: https://storage.cloud.google.com/minikube-builds/logs/${ghprbPullId}/${ghprbActualCommit::7}/kic_image_build.txt - " - fi - exit $ec fi # Retrieve the sha from the new image diff --git a/hack/preload-images/upload.go b/hack/preload-images/upload.go index 89bbd8004b45..0a0e41ab50f2 100644 --- a/hack/preload-images/upload.go +++ b/hack/preload-images/upload.go @@ -34,19 +34,5 @@ func uploadTarball(tarballFilename string) error { if output, err := cmd.CombinedOutput(); err != nil { return errors.Wrapf(err, "uploading %s to GCS bucket: %v\n%s", hostPath, err, string(output)) } - // Make tarball public to all users - gcsPath := fmt.Sprintf("%s/%s", gcsDest, tarballFilename) - cmd = exec.Command("gsutil", "acl", "ch", "-u", "AllUsers:R", gcsPath) - fmt.Printf("Running: %v\n", cmd.Args) - if output, err := cmd.CombinedOutput(); err != nil { - fmt.Printf(`Failed to update ACLs on this tarball in GCS. Please run - -gsutil acl ch -u AllUsers:R %s - -manually to make this link public, or rerun this script to rebuild and reupload the tarball. - - `, gcsPath) - return errors.Wrapf(err, "uploading %s to GCS bucket: %v\n%s", hostPath, err, string(output)) - } return nil } diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index 748a42ae0ffe..80779a6cdcb0 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -179,12 +179,23 @@ func EnableOrDisableAddon(cc *config.ClusterConfig, name string, val string) err exit.Error(reason.GuestCpConfig, "Error getting primary control plane", err) } + // maintain backwards compatibility for ingress and ingress-dns addons with k8s < v1.19 + if strings.HasPrefix(name, "ingress") && enable { + if err := supportLegacyIngress(addon, *cc); err != nil { + return err + } + } + // Persist images even if the machine is running so starting gets the correct images. images, customRegistries, err := assets.SelectAndPersistImages(addon, cc) if err != nil { exit.Error(reason.HostSaveProfile, "Failed to persist images", err) } + if cc.KubernetesConfig.ImageRepository == "registry.cn-hangzhou.aliyuncs.com/google_containers" { + images, customRegistries = assets.FixAddonImagesAndRegistries(addon, images, customRegistries) + } + mName := config.MachineName(*cc, cp) host, err := machine.LoadHost(api, mName) if err != nil || !machine.IsRunning(api, mName) { @@ -225,9 +236,6 @@ func addonSpecificChecks(cc *config.ClusterConfig, name string, enable bool, run out.Styled(style.Tip, `After the addon is enabled, please run "minikube tunnel" and your ingress resources would be available at "127.0.0.1"`) } } - if err := supportLegacyIngress(cc); err != nil { - return false, err - } } if strings.HasPrefix(name, "istio") && enable { @@ -263,7 +271,7 @@ func addonSpecificChecks(cc *config.ClusterConfig, name string, enable bool, run } // If the gcp-auth credentials haven't been mounted in, don't start the pods - if name == "gcp-auth" { + if name == "gcp-auth" && enable { rr, err := runner.RunCmd(exec.Command("cat", credentialsPath)) if err != nil || rr.Stdout.String() == "" { return true, nil @@ -286,30 +294,36 @@ func isAddonAlreadySet(cc *config.ClusterConfig, addon *assets.Addon, enable boo return false } -// maintain backwards compatibility with k8s < v1.19 -// by replacing images with old versions if custom ones are not already provided -func supportLegacyIngress(cc *config.ClusterConfig) error { +// maintain backwards compatibility for ingress and ingress-dns addons with k8s < v1.19 by replacing default addons' images with compatible versions +func supportLegacyIngress(addon *assets.Addon, cc config.ClusterConfig) error { v, err := util.ParseKubernetesVersion(cc.KubernetesConfig.KubernetesVersion) if err != nil { return errors.Wrap(err, "parsing Kubernetes version") } if semver.MustParseRange("<1.19.0")(v) { - imgs := map[string]string{ - // https://github.com/kubernetes/ingress-nginx/blob/f3c50698d98299b1a61f83cb6c4bb7de0b71fb4b/deploy/static/provider/kind/deploy.yaml#L327 - "IngressController": "ingress-nginx/controller:v0.49.0@sha256:e9707504ad0d4c119036b6d41ace4a33596139d3feb9ccb6617813ce48c3eeef", - // issues: https://github.com/kubernetes/ingress-nginx/issues/7418 and https://github.com/jet/kube-webhook-certgen/issues/30 - "KubeWebhookCertgenCreate": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", - "KubeWebhookCertgenPatch": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", - } - if cc.CustomAddonImages == nil { - cc.CustomAddonImages = map[string]string{} + if addon.Name() == "ingress" { + addon.Images = map[string]string{ + // https://github.com/kubernetes/ingress-nginx/blob/0a2ec01eb4ec0e1b29c4b96eb838a2e7bfe0e9f6/deploy/static/provider/kind/deploy.yaml#L328 + "IngressController": "ingress-nginx/controller:v0.49.3@sha256:35fe394c82164efa8f47f3ed0be981b3f23da77175bbb8268a9ae438851c8324", + // issues: https://github.com/kubernetes/ingress-nginx/issues/7418 and https://github.com/jet/kube-webhook-certgen/issues/30 + "KubeWebhookCertgenCreate": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", + "KubeWebhookCertgenPatch": "docker.io/jettech/kube-webhook-certgen:v1.5.1@sha256:950833e19ade18cd389d647efb88992a7cc077abedef343fa59e012d376d79b7", + } + addon.Registries = map[string]string{ + "IngressController": "k8s.gcr.io", + } + return nil } - for name, path := range imgs { - if _, exists := cc.CustomAddonImages[name]; !exists { - cc.CustomAddonImages[name] = path + if addon.Name() == "ingress-dns" { + addon.Images = map[string]string{ + "IngressDNS": "cryptexlabs/minikube-ingress-dns:0.3.0@sha256:e252d2a4c704027342b303cc563e95d2e71d2a0f1404f55d676390e28d5093ab", } + addon.Registries = nil + return nil } + return fmt.Errorf("supportLegacyIngress called for unexpected addon %q - nothing to do here", addon.Name()) } + return nil } diff --git a/pkg/addons/kubectl.go b/pkg/addons/kubectl.go index 6f4003ab128a..60ccc2c23969 100644 --- a/pkg/addons/kubectl.go +++ b/pkg/addons/kubectl.go @@ -41,6 +41,11 @@ func kubectlCommand(cc *config.ClusterConfig, files []string, enable bool) *exec } args := []string{fmt.Sprintf("KUBECONFIG=%s", path.Join(vmpath.GuestPersistentDir, "kubeconfig")), kubectlBinary, kubectlAction} + if !enable { + // --ignore-not-found just ignores when we try to delete a resource that is already gone, + // like a completed job with a ttlSecondsAfterFinished + args = append(args, "--ignore-not-found") + } for _, f := range files { args = append(args, []string{"-f", f}...) } diff --git a/pkg/addons/kubectl_test.go b/pkg/addons/kubectl_test.go index b377c278c8d9..69eddce13317 100644 --- a/pkg/addons/kubectl_test.go +++ b/pkg/addons/kubectl_test.go @@ -39,7 +39,7 @@ func TestKubectlCommand(t *testing.T) { description: "disable an addon", files: []string{"a", "b"}, enable: false, - expected: "sudo KUBECONFIG=/var/lib/minikube/kubeconfig /var/lib/minikube/binaries/v1.17.0/kubectl delete -f a -f b", + expected: "sudo KUBECONFIG=/var/lib/minikube/kubeconfig /var/lib/minikube/binaries/v1.17.0/kubectl delete --ignore-not-found -f a -f b", }, } diff --git a/pkg/drivers/kic/oci/network_create.go b/pkg/drivers/kic/oci/network_create.go index 27dd083ef5ad..b928c9a131d8 100644 --- a/pkg/drivers/kic/oci/network_create.go +++ b/pkg/drivers/kic/oci/network_create.go @@ -212,10 +212,14 @@ func dockerNetworkInspect(name string) (netInfo, error) { return info, nil } +var podmanInspectGetter = func(name string) (*RunResult, error) { + cmd := exec.Command(Podman, "network", "inspect", name, "--format", `{{range .plugins}}{{if eq .type "bridge"}}{{(index (index .ipam.ranges 0) 0).subnet}},{{(index (index .ipam.ranges 0) 0).gateway}}{{end}}{{end}}`) + return runCmd(cmd) +} + func podmanNetworkInspect(name string) (netInfo, error) { var info = netInfo{name: name} - cmd := exec.Command(Podman, "network", "inspect", name, "--format", `{{range .plugins}}{{if eq .type "bridge"}}{{(index (index .ipam.ranges 0) 0).subnet}},{{(index (index .ipam.ranges 0) 0).gateway}}{{end}}{{end}}`) - rr, err := runCmd(cmd) + rr, err := podmanInspectGetter(name) if err != nil { logDockerNetworkInspect(Podman, name) if strings.Contains(rr.Output(), "no such network") { @@ -225,18 +229,15 @@ func podmanNetworkInspect(name string) (netInfo, error) { return info, err } - output := rr.Stdout.String() + output := strings.TrimSpace(rr.Stdout.String()) if output == "" { return info, fmt.Errorf("no bridge network found for %s", name) } // results looks like 172.17.0.0/16,172.17.0.1,1500 - vals := strings.Split(strings.TrimSpace(output), ",") - if len(vals) == 0 { - return info, fmt.Errorf("empty list network inspect: %q", rr.Output()) - } + vals := strings.Split(output, ",") - if len(vals) > 0 { + if len(vals) >= 2 { info.gateway = net.ParseIP(vals[1]) } diff --git a/pkg/drivers/kic/oci/network_create_test.go b/pkg/drivers/kic/oci/network_create_test.go index ee0f8504d328..a4d25bf28883 100644 --- a/pkg/drivers/kic/oci/network_create_test.go +++ b/pkg/drivers/kic/oci/network_create_test.go @@ -69,15 +69,76 @@ func TestDockerInspect(t *testing.T) { } if netInfo.mtu != tc.mtu { - t.Errorf("Expected not to have MTU as %v but got %v", tc.mtu, netInfo.mtu) + t.Errorf("Expected MTU to be %v but got %v", tc.mtu, netInfo.mtu) } if !netInfo.gateway.Equal(net.ParseIP(tc.gateway)) { - t.Errorf("Expected not to have gateway as %v but got %v", tc.gateway, netInfo.gateway) + t.Errorf("Expected gateway to be %v but got %v", tc.gateway, netInfo.gateway) } if !netInfo.subnet.IP.Equal(net.ParseIP(tc.subnetIP)) { - t.Errorf("Expected not to have subnet as %v but got %v", tc.subnetIP, netInfo.gateway) + t.Errorf("Expected subnet to be %v but got %v", tc.subnetIP, netInfo.subnet.IP) + } + }) + } +} + +var podmanResponse string +var podmanInspectGetterMock = func(name string) (*RunResult, error) { + var responseInBytes bytes.Buffer + responseInBytes.WriteString(podmanResponse) + response := &RunResult{Stdout: responseInBytes} + + return response, nil +} + +func TestPodmanInspect(t *testing.T) { + var emptyGateway net.IP + gateway := net.ParseIP("172.17.0.1") + _, subnetIP, err := net.ParseCIDR("172.17.0.0/16") + if err != nil { + t.Fatalf("failed to parse CIDR: %v", err) + } + + var tests = []struct { + name string + podmanInspectResponse string + gateway net.IP + subnetIP string + }{ + { + name: "WithGateway", + podmanInspectResponse: "172.17.0.0/16,172.17.0.1", + gateway: gateway, + subnetIP: subnetIP.String(), + }, + { + name: "WithoutGateway", + podmanInspectResponse: "172.17.0.0/16", + gateway: emptyGateway, + subnetIP: subnetIP.String(), + }, + } + + for _, tc := range tests { + t.Run(tc.name, func(t *testing.T) { + podmanInspectResponse := tc.podmanInspectResponse + + // setting up mock funcs + podmanResponse = podmanInspectResponse + podmanInspectGetter = podmanInspectGetterMock + + netInfo, err := podmanNetworkInspect("m2") + if err != nil { + t.Errorf("Expected not to have error but got %v", err) + } + + if !netInfo.gateway.Equal(tc.gateway) { + t.Errorf("Expected gateway to be %v but got %v", tc.gateway, netInfo.gateway) + } + + if netInfo.subnet.String() != tc.subnetIP { + t.Errorf("Expected subnet to be %v but got %v", tc.subnetIP, netInfo.subnet) } }) } diff --git a/pkg/drivers/kic/types.go b/pkg/drivers/kic/types.go index e397e7375c3b..6554fdfb3001 100644 --- a/pkg/drivers/kic/types.go +++ b/pkg/drivers/kic/types.go @@ -24,13 +24,13 @@ import ( const ( // Version is the current version of kic - Version = "v0.0.27-1633027942-12081" + Version = "v0.0.28" // SHA of the kic base image baseImageSHA = "4780f1897569d2bf77aafb3d133a08d42b4fe61127f06fcfc90c2c5d902d893c" // The name of the GCR kicbase repository - gcrRepo = "gcr.io/k8s-minikube/kicbase-builds" + gcrRepo = "gcr.io/k8s-minikube/kicbase" // The name of the Dockerhub kicbase repository - dockerhubRepo = "docker.io/kicbase/build" + dockerhubRepo = "docker.io/kicbase/stable" ) var ( diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go index b6b6d11311c3..4c0fe3fae3ab 100755 --- a/pkg/minikube/assets/addons.go +++ b/pkg/minikube/assets/addons.go @@ -238,12 +238,12 @@ var Addons = map[string]*Addon{ "ingress-deploy.yaml", "0640"), }, false, "ingress", "", map[string]string{ - // https://github.com/kubernetes/ingress-nginx/blob/557604f4ef526f7755d36089b617bc7686c389f9/deploy/static/provider/kind/deploy.yaml#L323 - "IngressController": "ingress-nginx/controller:v1.0.0-beta.3@sha256:44a7a06b71187a4529b0a9edee5cc22bdf71b414470eff696c3869ea8d90a695", - // https://github.com/kubernetes/ingress-nginx/blob/557604f4ef526f7755d36089b617bc7686c389f9/deploy/static/provider/kind/deploy.yaml#L612 - "KubeWebhookCertgenCreate": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0@sha256:f3b6b39a6062328c095337b4cadcefd1612348fdd5190b1dcbcb9b9e90bd8068", - // https://github.com/kubernetes/ingress-nginx/blob/557604f4ef526f7755d36089b617bc7686c389f9/deploy/static/provider/kind/deploy.yaml#L660 - "KubeWebhookCertgenPatch": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.0@sha256:f3b6b39a6062328c095337b4cadcefd1612348fdd5190b1dcbcb9b9e90bd8068", + // https://github.com/kubernetes/ingress-nginx/blob/14f6b32032b709d3e0f614ca85954c3583c5fe3d/deploy/static/provider/kind/deploy.yaml#L330 + "IngressController": "ingress-nginx/controller:v1.0.4@sha256:545cff00370f28363dad31e3b59a94ba377854d3a11f18988f5f9e56841ef9ef", + // https://github.com/kubernetes/ingress-nginx/blob/14f6b32032b709d3e0f614ca85954c3583c5fe3d/deploy/static/provider/kind/deploy.yaml#L620 + "KubeWebhookCertgenCreate": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660", + // https://github.com/kubernetes/ingress-nginx/blob/14f6b32032b709d3e0f614ca85954c3583c5fe3d/deploy/static/provider/kind/deploy.yaml#L670 + "KubeWebhookCertgenPatch": "k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1@sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660", }, map[string]string{ "IngressController": "k8s.gcr.io", }), @@ -480,7 +480,7 @@ var Addons = map[string]*Addon{ "ingress-dns-pod.yaml", "0640"), }, false, "ingress-dns", "", map[string]string{ - "IngressDNS": "k8s-minikube/minikube-ingress-dns:0.0.1@sha256:69dc3c878c2e49ad85b70fdf9e8e6e87a1f961f42c8029e0912bebfa828ade46", + "IngressDNS": "k8s-minikube/minikube-ingress-dns:0.0.2@sha256:4abe27f9fc03fedab1d655e2020e6b165faf3bf6de1088ce6cf215a75b78f05f", }, map[string]string{ "IngressDNS": "gcr.io", }), @@ -723,7 +723,7 @@ func overrideDefaults(defaultMap, overrideMap map[string]string) map[string]stri // SelectAndPersistImages selects which images to use based on addon default images, previously persisted images, and newly requested images - which are then persisted for future enables. func SelectAndPersistImages(addon *Addon, cc *config.ClusterConfig) (images, customRegistries map[string]string, err error) { - addonDefaultImages := fixAddonImages(cc.KubernetesConfig.ImageRepository, addon.Images) + addonDefaultImages := addon.Images if addonDefaultImages == nil { addonDefaultImages = make(map[string]string) } @@ -778,23 +778,6 @@ func SelectAndPersistImages(addon *Addon, cc *config.ClusterConfig) (images, cus return images, customRegistries, err } -// fixes addon image names according to image repository used -func fixAddonImages(repo string, images map[string]string) map[string]string { - if repo == "registry.cn-hangzhou.aliyuncs.com/google_containers" { - // for aliyun registry must strip namespace from image name, e.g. - // registry.cn-hangzhou.aliyuncs.com/google_containers/k8s-minikube/storage-provisioner:v5 will not work - // registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v5 does work - newImages := make(map[string]string) - for name, image := range images { - image = strings.TrimPrefix(image, "k8s-minikube/") - image = strings.TrimPrefix(image, "kubernetesui/") - newImages[name] = image - } - return newImages - } - return images -} - // GenerateTemplateData generates template data for template assets func GenerateTemplateData(addon *Addon, cfg config.KubernetesConfig, netInfo NetworkInfo, images, customRegistries map[string]string) interface{} { diff --git a/pkg/minikube/assets/aliyun_mirror.go b/pkg/minikube/assets/aliyun_mirror.go new file mode 100644 index 000000000000..c491cb7874ca --- /dev/null +++ b/pkg/minikube/assets/aliyun_mirror.go @@ -0,0 +1,80 @@ +/* +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 assets + +import ( + "encoding/json" + "fmt" + "strings" + + "k8s.io/minikube/deploy/addons" +) + +var AliyunMirror = loadAliyunMirror() + +func loadAliyunMirror() map[string]string { + data, err := addons.AliyunMirror.ReadFile("aliyun_mirror.json") + if err != nil { + panic(fmt.Sprintf("Failed to load aliyun_mirror.json: %v", err)) + } + var mirror map[string]string + err = json.Unmarshal(data, &mirror) + if err != nil { + panic(fmt.Sprintf("Failed to parse aliyun_mirror.json: %v", err)) + } + return mirror +} + +func FixAddonImagesAndRegistries(addon *Addon, images map[string]string, registries map[string]string) (customImages, customRegistries map[string]string) { + customImages = make(map[string]string) + customRegistries = make(map[string]string) + if images == nil { + images = addon.Images + } + if addon.Registries == nil { + addon.Registries = make(map[string]string) + } + if registries == nil { + registries = make(map[string]string) + } + for name, image := range images { + registry, found := registries[name] + if !found { + registry = addon.Registries[name] + } + img := image + + if registry != "" && registry != "docker.io" { + img = registry + "/" + image + } + parts := strings.SplitN(img, ":", 2) + imageName := parts[0] + tag := parts[1] + mirror, found := AliyunMirror[imageName] + if found { + parts := strings.SplitN(mirror, "/", 2) + mirrorRegistry := parts[0] + mirrorImage := parts[1] + ":" + tag + customImages[name] = mirrorImage + customRegistries[name] = mirrorRegistry + } else { + customImages[name] = image + customRegistries[name] = registry + } + } + return customImages, customRegistries +} diff --git a/pkg/minikube/config/profile_test.go b/pkg/minikube/config/profile_test.go index 4b7948722819..a31600337d88 100644 --- a/pkg/minikube/config/profile_test.go +++ b/pkg/minikube/config/profile_test.go @@ -280,7 +280,7 @@ func TestGetPrimaryControlPlane(t *testing.T) { expectedName string }{ {"old style", "p1", "192.168.64.75", 8443, "minikube"}, - {"new style", "p2_newformat", "192.168.99.136", 8443, "m01"}, + {"new style", "p2_newformat", "192.168.59.136", 8443, "m01"}, } for _, tc := range tests { diff --git a/pkg/minikube/config/testdata/.minikube/profiles/p1/config.json b/pkg/minikube/config/testdata/.minikube/profiles/p1/config.json index c4214bf44276..b563e38c3bc1 100644 --- a/pkg/minikube/config/testdata/.minikube/profiles/p1/config.json +++ b/pkg/minikube/config/testdata/.minikube/profiles/p1/config.json @@ -13,7 +13,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -47,4 +47,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/.minikube/profiles/p2_newformat/config.json b/pkg/minikube/config/testdata/.minikube/profiles/p2_newformat/config.json index 2c0e986c361c..5d9f13bc0759 100644 --- a/pkg/minikube/config/testdata/.minikube/profiles/p2_newformat/config.json +++ b/pkg/minikube/config/testdata/.minikube/profiles/p2_newformat/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,11 +46,11 @@ "Nodes": [ { "Name": "m01", - "IP": "192.168.99.136", + "IP": "192.168.59.136", "Port": 8443, "KubernetesVersion": "v1.15.0", "ControlPlane": true, "Worker": true } ] -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/.minikube/profiles/p5_partial_config/config.json b/pkg/minikube/config/testdata/.minikube/profiles/p5_partial_config/config.json index a99c56efe801..58b037cbaa03 100644 --- a/pkg/minikube/config/testdata/.minikube/profiles/p5_partial_config/config.json +++ b/pkg/minikube/config/testdata/.minikube/profiles/p5_partial_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -44,4 +44,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p1/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p1/config.json index 6c826ebfc680..fc8753225ce0 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p1/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p1/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p4_partial_profile_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p4_partial_profile_config/config.json index a99c56efe801..58b037cbaa03 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p4_partial_profile_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p4_partial_profile_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -44,4 +44,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p5_missing_machine_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p5_missing_machine_config/config.json index 6680e4b784fb..824a77dc75cb 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p5_missing_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p5_missing_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p6_empty_machine_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p6_empty_machine_config/config.json index 2bab758640c3..2f7228f63954 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p6_empty_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p6_empty_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p7_invalid_machine_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p7_invalid_machine_config/config.json index d56f53688d69..98f9f98f0ac1 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p7_invalid_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p7_invalid_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p8_partial_machine_config/config.json b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p8_partial_machine_config/config.json index 26324fc366d1..f371911c14cc 100644 --- a/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p8_partial_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-all/.minikube/profiles/p8_partial_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p1/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p1/config.json index 6c826ebfc680..fc8753225ce0 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p1/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p1/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p4_partial_profile_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p4_partial_profile_config/config.json index a99c56efe801..58b037cbaa03 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p4_partial_profile_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p4_partial_profile_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -44,4 +44,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p5_missing_machine_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p5_missing_machine_config/config.json index 6680e4b784fb..824a77dc75cb 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p5_missing_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p5_missing_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p6_empty_machine_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p6_empty_machine_config/config.json index 2bab758640c3..2f7228f63954 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p6_empty_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p6_empty_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p7_invalid_machine_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p7_invalid_machine_config/config.json index d56f53688d69..98f9f98f0ac1 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p7_invalid_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p7_invalid_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p8_partial_machine_config/config.json b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p8_partial_machine_config/config.json index 26324fc366d1..f371911c14cc 100644 --- a/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p8_partial_machine_config/config.json +++ b/pkg/minikube/config/testdata/delete-single/.minikube/profiles/p8_partial_machine_config/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", diff --git a/pkg/minikube/config/testdata/profile/.minikube/profiles/p1/config.json b/pkg/minikube/config/testdata/profile/.minikube/profiles/p1/config.json index a48578f8eee1..b190aeb44a61 100644 --- a/pkg/minikube/config/testdata/profile/.minikube/profiles/p1/config.json +++ b/pkg/minikube/config/testdata/profile/.minikube/profiles/p1/config.json @@ -13,7 +13,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -46,4 +46,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/profile/.minikube/profiles/p2_newformat/config.json b/pkg/minikube/config/testdata/profile/.minikube/profiles/p2_newformat/config.json index b29f9295d78e..8c96ffeabce5 100644 --- a/pkg/minikube/config/testdata/profile/.minikube/profiles/p2_newformat/config.json +++ b/pkg/minikube/config/testdata/profile/.minikube/profiles/p2_newformat/config.json @@ -12,7 +12,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -45,11 +45,11 @@ "Nodes": [ { "Name": "m01", - "IP": "192.168.99.136", + "IP": "192.168.59.136", "Port": 8443, "KubernetesVersion": "v1.15.0", "ControlPlane": true, "Worker": true } ] -} \ No newline at end of file +} diff --git a/pkg/minikube/config/testdata/profile/.minikube/profiles/p5_partial_config/config.json b/pkg/minikube/config/testdata/profile/.minikube/profiles/p5_partial_config/config.json index 1ad106caecc8..a51a82c0dc1b 100644 --- a/pkg/minikube/config/testdata/profile/.minikube/profiles/p5_partial_config/config.json +++ b/pkg/minikube/config/testdata/profile/.minikube/profiles/p5_partial_config/config.json @@ -11,7 +11,7 @@ "DockerEnv": null, "InsecureRegistry": null, "RegistryMirror": null, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HypervVirtualSwitch": "", "KVMNetwork": "default", "KVMQemuURI": "qemu:///system", @@ -42,4 +42,4 @@ "ShouldLoadCachedImages": true, "EnableDefaultCNI": false } -} \ No newline at end of file +} diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 2b5c44cd9378..583ad3cda17c 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -34,12 +34,15 @@ var ( const ( // DefaultKubernetesVersion is the default Kubernetes version // dont update till #10545 is solved - DefaultKubernetesVersion = "v1.22.2" + DefaultKubernetesVersion = "v1.22.3" // NewestKubernetesVersion is the newest Kubernetes version to test against // NOTE: You may need to update coreDNS & etcd versions in pkg/minikube/bootstrapper/images/images.go - NewestKubernetesVersion = "v1.22.3-rc.0" + NewestKubernetesVersion = "v1.22.4-rc.0" // OldestKubernetesVersion is the oldest Kubernetes version to test against OldestKubernetesVersion = "v1.14.0" + // NoKubernetesVersion is the version used when users does NOT want to install kubernetes + NoKubernetesVersion = "v0.0.0" + // DefaultClusterName is the default nane for the k8s cluster DefaultClusterName = "minikube" // DockerDaemonPort is the port Docker daemon listening inside a minikube node (vm or container). diff --git a/pkg/minikube/download/binary.go b/pkg/minikube/download/binary.go index dc9de3a14ef5..da7fd8603af0 100644 --- a/pkg/minikube/download/binary.go +++ b/pkg/minikube/download/binary.go @@ -32,7 +32,7 @@ import ( // binaryWithChecksumURL gets the location of a Kubernetes binary func binaryWithChecksumURL(binaryName, version, osName, archName string) (string, error) { - base := fmt.Sprintf("https://storage.googleapis.com/kubernetes-release/release/%s/bin/%s/%s/%s", version, osName, archName, binaryName) + base := fmt.Sprintf("https://%s/kubernetes-release/release/%s/bin/%s/%s/%s", downloadHost, version, osName, archName, binaryName) v, err := semver.Make(version[1:]) if err != nil { return "", err diff --git a/pkg/minikube/download/download.go b/pkg/minikube/download/download.go index dd64fe1de9a5..3b4ea62f5df0 100644 --- a/pkg/minikube/download/download.go +++ b/pkg/minikube/download/download.go @@ -37,8 +37,16 @@ var ( // DownloadMock is called instead of the download implementation if not nil. DownloadMock func(src, dst string) error checkCache = os.Stat + + aliyunMirror = "kubernetes.oss-cn-hangzhou.aliyuncs.com" + downloadHost = "storage.googleapis.com" ) +// SetAliyunMirror set the download host for Aliyun mirror +func SetAliyunMirror() { + downloadHost = aliyunMirror +} + // CreateDstDownloadMock is the default mock implementation of download. func CreateDstDownloadMock(src, dst string) error { if err := os.MkdirAll(filepath.Dir(dst), 0755); err != nil { diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go index 6370cf2e6d1d..08f4042ba102 100644 --- a/pkg/minikube/download/iso.go +++ b/pkg/minikube/download/iso.go @@ -40,7 +40,7 @@ const fileScheme = "file" // DefaultISOURLs returns a list of ISO URL's to consult by default, in priority order func DefaultISOURLs() []string { v := version.GetISOVersion() - isoBucket := "minikube-builds/iso/12081" + isoBucket := "minikube/iso" return []string{ fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s.iso", isoBucket, v), fmt.Sprintf("https://github.com/kubernetes/minikube/releases/download/%s/minikube-%s.iso", v, v), diff --git a/pkg/minikube/download/preload.go b/pkg/minikube/download/preload.go index 287e2b829e8d..c1b4112a44da 100644 --- a/pkg/minikube/download/preload.go +++ b/pkg/minikube/download/preload.go @@ -23,7 +23,9 @@ import ( "fmt" "net/http" "os" + "path" "path/filepath" + "strings" "cloud.google.com/go/storage" "google.golang.org/api/option" @@ -88,7 +90,7 @@ func TarballPath(k8sVersion, containerRuntime string) string { // remoteTarballURL returns the URL for the remote tarball in GCS func remoteTarballURL(k8sVersion, containerRuntime string) string { - return fmt.Sprintf("https://storage.googleapis.com/%s/%s", PreloadBucket, TarballName(k8sVersion, containerRuntime)) + return fmt.Sprintf("https://%s/%s/%s", downloadHost, PreloadBucket, TarballName(k8sVersion, containerRuntime)) } func setPreloadState(k8sVersion, containerRuntime string, value bool) { @@ -282,3 +284,29 @@ var ensureChecksumValid = func(k8sVersion, containerRuntime, targetPath string, return nil } + +// CleanUpOlderPreloads deletes preload files beloning to older minikube versions +// checks the current preload version and then if the saved tar file is belongs to older minikube it will delete it +// in case of failure only logs to the user +func CleanUpOlderPreloads() { + files, err := os.ReadDir(targetDir()) + if err != nil { + klog.Warningf("Failed to list preload files: %v", err) + } + + for _, file := range files { + splited := strings.Split(file.Name(), "-") + if len(splited) < 4 { + continue + } + ver := splited[3] + if ver != PreloadVersion { + fn := path.Join(targetDir(), file.Name()) + klog.Infof("deleting older generation preload %s", fn) + err := os.Remove(fn) + if err != nil { + klog.Warningf("Failed to clean up older preload files, consider running `minikube delete --all --purge`") + } + } + } +} diff --git a/pkg/minikube/image/image.go b/pkg/minikube/image/image.go index aea60c1a5240..7076f2ca462b 100644 --- a/pkg/minikube/image/image.go +++ b/pkg/minikube/image/image.go @@ -331,7 +331,6 @@ func fixRemoteImageName(ref name.Reference, imgName string) (name.Reference, str image = strings.TrimPrefix(image, "k8s-minikube/") image = strings.TrimPrefix(image, "kubernetesui/") image = strings.TrimPrefix(image, "coredns/") - image = strings.ReplaceAll(image, "coredns:v", "coredns:") remoteRef, err := name.ParseReference(aliyunMirror+image, name.WeakValidation) if err != nil { return nil, "", err diff --git a/pkg/minikube/kubeconfig/kubeconfig_test.go b/pkg/minikube/kubeconfig/kubeconfig_test.go index 0ee7095dd3f7..add06fd4f9fb 100644 --- a/pkg/minikube/kubeconfig/kubeconfig_test.go +++ b/pkg/minikube/kubeconfig/kubeconfig_test.go @@ -559,7 +559,7 @@ func minikubeConfig(config *api.Config) { // cluster clusterName := "minikube" cluster := api.NewCluster() - cluster.Server = "https://192.168.99.100:" + strconv.Itoa(constants.APIServerPort) + cluster.Server = "https://192.168.59.100:" + strconv.Itoa(constants.APIServerPort) cluster.CertificateAuthority = "/home/tux/.minikube/apiserver.crt" config.Clusters[clusterName] = cluster diff --git a/pkg/minikube/machine/client_test.go b/pkg/minikube/machine/client_test.go index cb9091fb5173..1d0d1d831b13 100644 --- a/pkg/minikube/machine/client_test.go +++ b/pkg/minikube/machine/client_test.go @@ -32,7 +32,7 @@ import ( const vboxConfig = ` { - "IPAddress": "192.168.99.101", + "IPAddress": "192.168.59.101", "MachineName": "minikube", "SSHUser": "docker", "SSHPort": 33627, @@ -50,7 +50,7 @@ const vboxConfig = ` "Boot2DockerURL": "file:///home/sundarp/.minikube/cache/iso/minikube-v1.0.6.iso", "Boot2DockerImportVM": "", "HostDNSResolver": false, - "HostOnlyCIDR": "192.168.99.1/24", + "HostOnlyCIDR": "192.168.59.1/24", "HostOnlyNicType": "82540EM", "HostOnlyPromiscMode": "deny", "UIType": "headless", diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index d13aadef1833..cc4e0bea0931 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -88,6 +88,10 @@ type Starter struct { // Start spins up a guest and starts the Kubernetes node. func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) { + var kcs *kubeconfig.Settings + if starter.Node.KubernetesVersion == constants.NoKubernetesVersion { // do not bootstrap cluster if --no-kubernetes + return kcs, config.Write(viper.GetString(config.ProfileName), starter.Cfg) + } // wait for preloaded tarball to finish downloading before configuring runtimes waitCacheRequiredImages(&cacheGroup) @@ -115,7 +119,6 @@ func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) { } var bs bootstrapper.Bootstrapper - var kcs *kubeconfig.Settings if apiServer { // Must be written before bootstrap, otherwise health checks may flake due to stale IP kcs = setupKubeconfig(starter.Host, starter.Cfg, starter.Node, starter.Cfg.Name) @@ -286,10 +289,17 @@ func joinCluster(starter Starter, cpBs bootstrapper.Bootstrapper, bs bootstrappe func Provision(cc *config.ClusterConfig, n *config.Node, apiServer bool, delOnFail bool) (command.Runner, bool, libmachine.API, *host.Host, error) { register.Reg.SetStep(register.StartingNode) name := config.MachineName(*cc, *n) - if apiServer { - out.Step(style.ThumbsUp, "Starting control plane node {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) + + // for sake of trasnlation process be easy we make the code a bit more verbose and the if statements may seem unnecessary + if cc.KubernetesConfig.KubernetesVersion == constants.NoKubernetesVersion { + out.Step(style.ThumbsUp, "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) } else { - out.Step(style.ThumbsUp, "Starting node {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) + if apiServer { + out.Step(style.ThumbsUp, "Starting control plane node {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) + } else { + out.Step(style.ThumbsUp, "Starting worker node {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) + } + } if driver.IsKIC(cc.Driver) { diff --git a/pkg/minikube/notify/constants.go b/pkg/minikube/notify/constants.go index e0ca54cff12c..c1af50e86079 100644 --- a/pkg/minikube/notify/constants.go +++ b/pkg/minikube/notify/constants.go @@ -21,4 +21,9 @@ const ( GithubMinikubeReleasesURL = "https://storage.googleapis.com/minikube/releases.json" // GithubMinikubeBetaReleasesURL is the URL of the minikube Github beta releases JSON file GithubMinikubeBetaReleasesURL = "https://storage.googleapis.com/minikube/releases-beta.json" + + // GithubMinikubeReleasesAliyunURL is the URL of the minikube github releases JSON file from Aliyun Mirror + GithubMinikubeReleasesAliyunURL = "https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases.json" + // GithubMinikubeBetaReleasesAliyunURL is the URL of the minikube Github beta releases JSON file + GithubMinikubeBetaReleasesAliyunURL = "https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases-beta.json" ) diff --git a/pkg/minikube/notify/notify.go b/pkg/minikube/notify/notify.go index 47858382594b..1643ea3fcde4 100644 --- a/pkg/minikube/notify/notify.go +++ b/pkg/minikube/notify/notify.go @@ -47,6 +47,11 @@ func MaybePrintUpdateTextFromGithub() { maybePrintUpdateText(GithubMinikubeReleasesURL, GithubMinikubeBetaReleasesURL, lastUpdateCheckFilePath) } +// MaybePrintUpdateTextFromGithub prints update text if needed, from Aliyun mirror +func MaybePrintUpdateTextFromAliyunMirror() { + maybePrintUpdateText(GithubMinikubeReleasesAliyunURL, GithubMinikubeBetaReleasesAliyunURL, lastUpdateCheckFilePath) +} + func maybePrintUpdateText(latestReleasesURL string, betaReleasesURL string, lastUpdatePath string) { latestVersion, err := latestVersionFromURL(latestReleasesURL) if err != nil { diff --git a/pkg/minikube/out/out.go b/pkg/minikube/out/out.go index 8c45898741bf..df5d29b64ccb 100644 --- a/pkg/minikube/out/out.go +++ b/pkg/minikube/out/out.go @@ -134,13 +134,13 @@ func BoxedErr(format string, a ...V) { } // BoxedWithConfig writes a templated message in a box with customized style config to stdout -func BoxedWithConfig(cfg box.Config, st style.Enum, title string, format string, a ...V) { +func BoxedWithConfig(cfg box.Config, st style.Enum, title string, text string, a ...V) { if st != style.None { title = Sprintf(st, title) } // need to make sure no newlines are in the title otherwise box-cli-maker panics title = strings.ReplaceAll(title, "\n", "") - boxedCommon(String, cfg, title, format, a...) + boxedCommon(String, cfg, title, text, a...) } // Sprintf is used for returning the string (doesn't write anything) diff --git a/pkg/minikube/reason/known_issues.go b/pkg/minikube/reason/known_issues.go index 4df8f740f7b8..aa708b29653e 100644 --- a/pkg/minikube/reason/known_issues.go +++ b/pkg/minikube/reason/known_issues.go @@ -334,8 +334,9 @@ var providerIssues = []match{ Kind: Kind{ ID: "PR_HYPERKIT_VMNET_FRAMEWORK", ExitCode: ExProviderError, - Advice: "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver", - Issues: []int{6028, 5594}, + Advice: `Hyperkit networking is broken. Try disabling Internet Sharing: System Preference > Sharing > Internet Sharing. +Alternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.`, + Issues: []int{6028, 5594}, }, Regexp: re(`error from vmnet.framework: -1`), GOOS: []string{"darwin"}, diff --git a/pkg/minikube/service/service_test.go b/pkg/minikube/service/service_test.go index 5f79facee1e3..cf6fa7d30c7b 100644 --- a/pkg/minikube/service/service_test.go +++ b/pkg/minikube/service/service_test.go @@ -364,9 +364,9 @@ func TestOptionallyHttpsFormattedUrlString(t *testing.T) { }{ { description: "no https for http schemed with no https option", - bareURLString: "http://192.168.99.100:30563", + bareURLString: "http://192.168.59.100:30563", https: false, - expectedHTTPSFormattedURLString: "http://192.168.99.100:30563", + expectedHTTPSFormattedURLString: "http://192.168.59.100:30563", expectedIsHTTPSchemedURL: true, }, { @@ -378,9 +378,9 @@ func TestOptionallyHttpsFormattedUrlString(t *testing.T) { }, { description: "https for http schemed with https option", - bareURLString: "http://192.168.99.100:30563", + bareURLString: "http://192.168.59.100:30563", https: true, - expectedHTTPSFormattedURLString: "https://192.168.99.100:30563", + expectedHTTPSFormattedURLString: "https://192.168.59.100:30563", expectedIsHTTPSchemedURL: true, }, { @@ -568,7 +568,7 @@ func TestGetCoreClient(t *testing.T) { mockK8sConfig := `apiVersion: v1 clusters: - cluster: - server: https://192.168.99.102:8443 + server: https://192.168.59.102:8443 name: minikube contexts: - context: diff --git a/pkg/minikube/tunnel/route_windows_test.go b/pkg/minikube/tunnel/route_windows_test.go index 10e99d5a71f8..89c9b11fa7e0 100644 --- a/pkg/minikube/tunnel/route_windows_test.go +++ b/pkg/minikube/tunnel/route_windows_test.go @@ -119,18 +119,18 @@ Network Destination Netmask Gateway Interface Metric 192.168.56.0 255.255.255.0 On-link 192.168.56.1 281 192.168.56.1 255.255.255.255 On-link 192.168.56.1 281 192.168.56.255 255.255.255.255 On-link 192.168.56.1 281 - 192.168.99.0 255.255.255.0 On-link 192.168.99.1 281 - 192.168.99.1 255.255.255.255 On-link 192.168.99.1 281 + 192.168.59.0 255.255.255.0 On-link 192.168.59.1 281 + 192.168.59.1 255.255.255.255 On-link 192.168.59.1 281 10.211.55.0 255.255.255.0 192.168.1.2 10.211.55.3 281 - 192.168.99.255 255.255.255.255 On-link 192.168.99.1 281 + 192.168.59.255 255.255.255.255 On-link 192.168.59.1 281 224.0.0.0 240.0.0.0 On-link 127.0.0.1 331 224.0.0.0 240.0.0.0 On-link 10.211.55.3 281 224.0.0.0 240.0.0.0 On-link 192.168.56.1 281 - 224.0.0.0 240.0.0.0 On-link 192.168.99.1 281 + 224.0.0.0 240.0.0.0 On-link 192.168.59.1 281 255.255.255.255 255.255.255.255 On-link 127.0.0.1 331 255.255.255.255 255.255.255.255 On-link 10.211.55.3 281 255.255.255.255 255.255.255.255 On-link 192.168.56.1 281 - 255.255.255.255 255.255.255.255 On-link 192.168.99.1 281 + 255.255.255.255 255.255.255.255 On-link 192.168.59.1 281 =========================================================================== Persistent Routes: None` diff --git a/pkg/minikube/tunnel/tunnel.go b/pkg/minikube/tunnel/tunnel.go index 21acd21509d3..a80a7aaaaea9 100644 --- a/pkg/minikube/tunnel/tunnel.go +++ b/pkg/minikube/tunnel/tunnel.go @@ -200,7 +200,7 @@ func setupBridge(t *tunnel) { return } iface := string(response) - pattern := regexp.MustCompile(`.*member: (en\d+) flags=.*`) + pattern := regexp.MustCompile(`.*member: ((?:vm)?en(?:et)?\d+) flags=.*`) submatch := pattern.FindStringSubmatch(iface) if len(submatch) != 2 { t.status.RouteError = fmt.Errorf("couldn't find member in bridge100 interface: %s", iface) diff --git a/pkg/util/crypto_test.go b/pkg/util/crypto_test.go index d8773778d3f4..e285bc8363e6 100644 --- a/pkg/util/crypto_test.go +++ b/pkg/util/crypto_test.go @@ -94,7 +94,7 @@ func TestGenerateSignedCert(t *testing.T) { certPath := filepath.Join(tmpDir, "cert") keyPath := filepath.Join(tmpDir, "key") - ips := []net.IP{net.ParseIP("192.168.99.100"), net.ParseIP("10.0.0.10")} + ips := []net.IP{net.ParseIP("192.168.59.100"), net.ParseIP("10.0.0.10")} alternateDNS := []string{"kubernetes.default.svc.cluster.local", "kubernetes.default"} var tests = []struct { diff --git a/site/.hugo_build.lock b/site/.hugo_build.lock new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/site/content/en/docs/_index.md b/site/content/en/docs/_index.md index d67c8933ce89..4ae470f8b69c 100644 --- a/site/content/en/docs/_index.md +++ b/site/content/en/docs/_index.md @@ -11,7 +11,7 @@ minikube quickly sets up a local Kubernetes cluster on macOS, Linux, and Windows ![Screenshot](/images/screenshot.png) -🎉 Latest Release: v1.23.2 - Sep 21, 2021 ([changelog](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md)) +🎉 Latest Release: v1.24.0 - Nov 05, 2021 ([changelog](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md)) ## Highlights diff --git a/site/content/en/docs/benchmarks/timeToK8s/v1.24.0.md b/site/content/en/docs/benchmarks/timeToK8s/v1.24.0.md new file mode 100644 index 000000000000..eb186a44f037 --- /dev/null +++ b/site/content/en/docs/benchmarks/timeToK8s/v1.24.0.md @@ -0,0 +1,7 @@ +--- +title: "v1.24.0 Benchmark" +linkTitle: "v1.24.0 Benchmark" +weight: -20211105 +--- + +![time-to-k8s](/images/benchmarks/timeToK8s/v1.24.0.png) diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index fdf64a0c61f7..65ccb672e922 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -26,7 +26,7 @@ minikube start [flags] --apiserver-names strings A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine --apiserver-port int The apiserver listening port (default 8443) --auto-update-drivers If set, automatically updates drivers to the latest version. Defaults to true. (default true) - --base-image string The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase-builds:v0.0.27-1633027942-12081@sha256:4780f1897569d2bf77aafb3d133a08d42b4fe61127f06fcfc90c2c5d902d893c") + --base-image string The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase:v0.0.28@sha256:4780f1897569d2bf77aafb3d133a08d42b4fe61127f06fcfc90c2c5d902d893c") --cache-images If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none. (default true) --cert-expiration duration Duration until minikube certificate expiration, defaults to three years (26280h). (default 26280h0m0s) --cni string CNI plug-in to use. Valid options: auto, bridge, calico, cilium, flannel, kindnet, or path to a CNI manifest (default: auto) @@ -54,7 +54,7 @@ minikube start [flags] --force Force minikube to perform possibly dangerous operations --force-systemd If set, force the container runtime to use systemd as cgroup manager. Defaults to false. --host-dns-resolver Enable host resolver for NAT DNS requests (virtualbox driver only) (default true) - --host-only-cidr string The CIDR to be used for the minikube VM (virtualbox driver only) (default "192.168.99.1/24") + --host-only-cidr string The CIDR to be used for the minikube VM (virtualbox driver only) (default "192.168.59.1/24") --host-only-nic-type string NIC Type used for host only network. One of Am79C970A, Am79C973, 82540EM, 82543GC, 82545EM, or virtio (virtualbox driver only) (default "virtio") --hyperkit-vpnkit-sock string 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) --hyperkit-vsock-ports strings List of guest VSock ports that should be exposed as sockets on the host (hyperkit driver only) @@ -66,9 +66,9 @@ minikube start [flags] --insecure-registry strings Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added. --install-addons If set, install addons. Defaults to true. (default true) --interactive Allow user prompts for more information (default true) - --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube-builds/iso/12081/minikube-v1.23.1-1633115168-12081.iso,https://github.com/kubernetes/minikube/releases/download/v1.23.1-1633115168-12081/minikube-v1.23.1-1633115168-12081.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.23.1-1633115168-12081.iso]) + --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube/iso/minikube-v1.24.0.iso,https://github.com/kubernetes/minikube/releases/download/v1.24.0/minikube-v1.24.0.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.24.0.iso]) --keep-context This will keep the existing kubectl context and will create a minikube context. - --kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.22.2, 'latest' for v1.22.3-rc.0). Defaults to 'stable'. + --kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.22.3, 'latest' for v1.22.4-rc.0). Defaults to 'stable'. --kvm-gpu Enable experimental NVIDIA GPU support in minikube --kvm-hidden Hide the hypervisor signature from the guest in minikube (kvm2 driver only) --kvm-network string The KVM default network name. (kvm2 driver only) (default "default") @@ -85,6 +85,7 @@ minikube start [flags] --network-plugin string Kubelet network plug-in to use (default: auto) --nfs-share strings Local folders to share with Guest via NFS mounts (hyperkit driver only) --nfs-shares-root string Where to root the NFS Shares, defaults to /nfsshares (hyperkit driver only) (default "/nfsshares") + --no-kubernetes If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters) --no-vtx-check Disable checking for the availability of hardware virtualization before the vm is started (virtualbox driver only) -n, --nodes int The number of nodes to spin up. Defaults to 1. (default 1) -o, --output string Format to print stdout in. Options include: [text,json] (default "text") diff --git a/site/content/en/docs/contrib/test_flakes.en.md b/site/content/en/docs/contrib/test_flakes.en.md index 6be126624c1b..d6b7f52b4983 100644 --- a/site/content/en/docs/contrib/test_flakes.en.md +++ b/site/content/en/docs/contrib/test_flakes.en.md @@ -21,3 +21,4 @@ description: > |MacOS|hyperkit|docker|[Hyperkit_macOS](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyperkit_macOS)| |Windows|docker|docker|[Docker_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Windows)| |Windows|hyperv|docker|[Hyper-V_Windows](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Hyper-V_Windows)| +|Cloud Shell|docker|docker|[Docker_Cloud_Shell](https://storage.googleapis.com/minikube-flake-rate/flake_chart.html?env=Docker_Cloud_Shell)| diff --git a/site/content/en/docs/contrib/testing.en.md b/site/content/en/docs/contrib/testing.en.md index 85bbc6fbcd5b..1ca15f32e7d2 100644 --- a/site/content/en/docs/contrib/testing.en.md +++ b/site/content/en/docs/contrib/testing.en.md @@ -81,26 +81,21 @@ Tests are typically read with a great air of skepticism, because chances are the These are Kubernetes tests that run against an arbitrary cluster and exercise a wide range of Kubernetes features. You can run these against minikube by following these steps: -* Clone the Kubernetes repo somewhere on your system. -* Run `make quick-release` in the k8s repo. -* Start up a minikube cluster with: `minikube start`. -* Set following two environment variables: - -```shell -export KUBECONFIG=$HOME/.kube/config -export KUBERNETES_CONFORMANCE_TEST=y +Install [docker](https://docs.docker.com/engine/install/) +Install [kubectl](https://v1-18.docs.kubernetes.io/docs/tasks/tools/install-kubectl/) +Clone the [minikube repo](https://github.com/kubernetes/minikube) + +## Compile the latest minikube binary +```console +% cd +% make ``` -* Run the tests (from the k8s repo): +## Trigger the tests and get back the results -```shell -go run hack/e2e.go -v --test --test_args="--ginkgo.focus=\[Conformance\]" --check-version-skew=false +```console +% cd +./hack/conformance_tests.sh out/minikube --driver=docker --container-runtimer=docker --kubernetes-version=stable ``` -To run a specific conformance test, you can use the `ginkgo.focus` flag to filter the set using a regular expression. -The `hack/e2e.go` wrapper and the `e2e.sh` wrappers have a little trouble with quoting spaces though, so use the `\s` regular expression character instead. -For example, to run the test `should update annotations on modification [Conformance]`, use following command: - -```shell -go run hack/e2e.go -v --test --test_args="--ginkgo.focus=should\supdate\sannotations\son\smodification" --check-version-skew=false -``` +This script will run the latest sonobuoy against a minikube cluster with two nodes and the provided parameters. diff --git a/site/content/en/docs/contrib/tests.en.md b/site/content/en/docs/contrib/tests.en.md index 1653d9c7ec6f..9395ac7a8407 100644 --- a/site/content/en/docs/contrib/tests.en.md +++ b/site/content/en/docs/contrib/tests.en.md @@ -403,6 +403,15 @@ verifies files and packges installed inside minikube ISO/Base image ## TestGvisorAddon tests the functionality of the gVisor addon +## TestIngressAddonLegacy +tests ingress and ingress-dns addons with legacy k8s version <1.19 + +#### validateIngressAddonActivation +tests ingress addon activation + +#### validateIngressDNSAddonActivation +tests ingress-dns addon activation + ## TestJSONOutput makes sure json output works properly for the start, pause, unpause, and stop commands @@ -496,6 +505,25 @@ makes sure the hairpinning (https://en.wikipedia.org/wiki/Hairpinning) is correc try to access deployment/netcat pod using external, obtained from 'netcat' service dns resolution, IP address should fail if hairpinMode is off +## TestNoKubernetes +tests starting minikube without Kubernetes, +for use cases where user only needs to use the container runtime (docker, containerd, crio) inside minikube + +#### validateStartNoK8S +starts a minikube cluster without kubernetes started/configured + +#### validateK8SNotRunning +validates that there is no kubernetes running inside minikube + +#### validateStopNoK8S +validates that minikube is stopped after a --no-kubernetes start + +#### validateProfileListNoK8S +validates that profile list works with --no-kubernetes + +#### validateStartNoArgs +valides that minikube start with no args works + ## TestChangeNoneUser tests to make sure the CHANGE_MINIKUBE_NONE_USER environemt variable is respected and changes the minikube file permissions from root to the correct user. diff --git a/site/content/en/docs/drivers/virtualbox.md b/site/content/en/docs/drivers/virtualbox.md index b9158788ad07..0e84f58c603e 100644 --- a/site/content/en/docs/drivers/virtualbox.md +++ b/site/content/en/docs/drivers/virtualbox.md @@ -15,7 +15,8 @@ VirtualBox is minikube's original driver. It may not provide the fastest start-u minikube start supports some VirtualBox specific flags: -* **`--host-only-cidr`**: The CIDR to be used for the minikube VM (default "192.168.99.1/24") +* **`--host-only-cidr`**: The CIDR to be used for the minikube VM (default "192.168.59.1/24") + * On Linux, Mac OS X and Oracle Solaris with VirtualBox >= 6.1.28, [only IP addresses in the 192.68.56.0/21 range are allowed for host-only networking by default](https://www.virtualbox.org/manual/ch06.html#network_hostonly). Passing a disallowed value to `--host-only-cidr` will result in a VirtualBox access denied error: `VBoxManage: error: Code E_ACCESSDENIED (0x80070005) - Access denied (extended info not available)`. * **`--no-vtx-check`**: Disable checking for the availability of hardware virtualization ## Issues diff --git a/site/content/en/docs/faq/_index.md b/site/content/en/docs/faq/_index.md index 13b318fd0748..2d563f17a145 100644 --- a/site/content/en/docs/faq/_index.md +++ b/site/content/en/docs/faq/_index.md @@ -29,6 +29,34 @@ 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. + +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 +``` +Alternatively, you can use `minikube image build` instead of `minikube docker-env` and `docker build`. + +## Can I start minikube without Kuberentes runninng? +Yes! If you want to use minikube only as a Docker Desktop replacement without starting Kubernetes itself, try: +``` +minikube start --no-kubernetes +``` + +Alternatively, if you want to temporarily turn off Kubernetes, you can pause and later unpause Kubernetes +``` +minikube pause +``` + +minikube also has an addon that automatically pauses Kubernetes after a certain amount of inactivity: + +``` +minikube addons enable auto-pause +``` + + ## Docker Driver: How can I set minikube's cgroup manager? diff --git a/site/content/en/docs/handbook/vpn_and_proxy.md b/site/content/en/docs/handbook/vpn_and_proxy.md index 5b9260185346..44e938c1677c 100644 --- a/site/content/en/docs/handbook/vpn_and_proxy.md +++ b/site/content/en/docs/handbook/vpn_and_proxy.md @@ -20,7 +20,7 @@ If a HTTP proxy is required to access the internet, you may need to pass the pro The NO_PROXY variable here is important: Without setting it, minikube may not be able to access resources within the VM. minikube uses two IP ranges, which should not go through the proxy: -* **192.168.99.0/24**: Used by the minikube VM. Configurable for some hypervisors via `--host-only-cidr` +* **192.168.59.0/24**: Used by the minikube VM. Configurable for some hypervisors via `--host-only-cidr` * **192.168.39.0/24**: Used by the minikube kvm2 driver. * **192.168.49.0/24**: Used by the minikube docker driver's first cluster. * **10.96.0.0/12**: Used by service cluster IP's. Configurable via `--service-cluster-ip-range` @@ -34,7 +34,7 @@ One important note: If NO_PROXY is required by non-Kubernetes applications, such ```shell export HTTP_PROXY=http:// export HTTPS_PROXY=https:// -export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.99.0/24,192.168.39.0/24 +export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.39.0/24 minikube start ``` @@ -46,7 +46,7 @@ To make the exported variables permanent, consider adding the declarations to ~/ ```shell set HTTP_PROXY=http:// set HTTPS_PROXY=https:// -set NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.99.0/24,192.168.39.0/24 +set NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.39.0/24 minikube start ``` @@ -107,7 +107,7 @@ The supplied value of `HTTPS_PROXY` is probably incorrect. Verify that this valu minikube requires access from the host to the following IP ranges: -* **192.168.99.0/24**: Used by the minikube VM. Configurable for some hypervisors via `--host-only-cidr` +* **192.168.59.0/24**: Used by the minikube VM. Configurable for some hypervisors via `--host-only-cidr` * **192.168.39.0/24**: Used by the minikube kvm2 driver. * **10.96.0.0/12**: Used by service cluster IP's. Configurable via `--service-cluster-ip-range` diff --git a/site/content/en/docs/presentations/_index.md b/site/content/en/docs/presentations/_index.md index bfde5340dae5..a4594acb4db6 100644 --- a/site/content/en/docs/presentations/_index.md +++ b/site/content/en/docs/presentations/_index.md @@ -105,6 +105,13 @@ Presentations about the minikube project, mostly from the Kubernetes blog and th * "Minikube and Three Different Local Kubernetes Learning Environments" * Anders Björklund & Predrag Rogic +### KubeCon NA 2021 (Los Angeles, California) + +* (47:47) + * "A Deep Dive Into 5 years of Minikube" + * Medya Ghazizadeh + + ## Other conferences ### Helm Summit EU 2019 (Amsterdam, The Netherlands) diff --git a/site/content/en/docs/start/_index.md b/site/content/en/docs/start/_index.md index f35f5398a4b7..5c0aa438a4f9 100644 --- a/site/content/en/docs/start/_index.md +++ b/site/content/en/docs/start/_index.md @@ -543,7 +543,9 @@ Alternatively, use kubectl to forward the port: kubectl port-forward service/hello-minikube 7080:8080 ``` -Tada! Your application is now available at [http://localhost:7080/](http://localhost:7080/) +Tada! Your application is now available at [http://localhost:7080/](http://localhost:7080/). + +You should be able to see the request metadata from nginx such as the `CLIENT VALUES`, `SERVER VALUES`, `HEADERS RECEIVED` and the `BODY` in the application output. Try changing the path of the request and observe the changes in the `CLIENT VALUES`. Similarly, you can do a POST request to the same and observe the body show up in `BODY` section of the output. ### LoadBalancer deployments diff --git a/site/static/images/benchmarks/timeToK8s/v1.24.0.png b/site/static/images/benchmarks/timeToK8s/v1.24.0.png new file mode 100644 index 000000000000..852e8914647d Binary files /dev/null and b/site/static/images/benchmarks/timeToK8s/v1.24.0.png differ diff --git a/test/integration/addons_test.go b/test/integration/addons_test.go index e8730ac07892..b3983ecb5d99 100644 --- a/test/integration/addons_test.go +++ b/test/integration/addons_test.go @@ -34,6 +34,7 @@ import ( "testing" "time" + "github.com/blang/semver/v4" retryablehttp "github.com/hashicorp/go-retryablehttp" "k8s.io/minikube/pkg/kapi" "k8s.io/minikube/pkg/minikube/detect" @@ -47,62 +48,36 @@ func TestAddons(t *testing.T) { defer Cleanup(t, profile, cancel) setupSucceeded := t.Run("Setup", func(t *testing.T) { - // We don't need a dummy file is we're on GCE - if !detect.IsOnGCE() || detect.IsCloudShell() { - // Set an env var to point to our dummy credentials file - err := os.Setenv("GOOGLE_APPLICATION_CREDENTIALS", filepath.Join(*testdataDir, "gcp-creds.json")) - t.Cleanup(func() { - os.Unsetenv("GOOGLE_APPLICATION_CREDENTIALS") - }) - if err != nil { - t.Fatalf("Failed setting GOOGLE_APPLICATION_CREDENTIALS env var: %v", err) - } + // Set an env var to point to our dummy credentials file + // don't use t.Setenv because we sometimes manually unset the env var later manually + err := os.Setenv("GOOGLE_APPLICATION_CREDENTIALS", filepath.Join(*testdataDir, "gcp-creds.json")) + t.Cleanup(func() { + os.Unsetenv("GOOGLE_APPLICATION_CREDENTIALS") + }) + if err != nil { + t.Fatalf("Failed setting GOOGLE_APPLICATION_CREDENTIALS env var: %v", err) + } - err = os.Setenv("GOOGLE_CLOUD_PROJECT", "this_is_fake") - t.Cleanup(func() { - os.Unsetenv("GOOGLE_CLOUD_PROJECT") - }) - if err != nil { - t.Fatalf("Failed setting GOOGLE_CLOUD_PROJECT env var: %v", err) - } + err = os.Setenv("GOOGLE_CLOUD_PROJECT", "this_is_fake") + t.Cleanup(func() { + os.Unsetenv("GOOGLE_CLOUD_PROJECT") + }) + if err != nil { + t.Fatalf("Failed setting GOOGLE_CLOUD_PROJECT env var: %v", err) } - 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()...) + args := append([]string{"start", "-p", profile, "--wait=true", "--memory=4000", "--alsologtostderr", "--addons=registry", "--addons=metrics-server", "--addons=olm", "--addons=volumesnapshots", "--addons=csi-hostpath-driver", "--addons=gcp-auth"}, StartArgs()...) if !NoneDriver() { // none driver does not support ingress args = append(args, "--addons=ingress", "--addons=ingress-dns") } if !arm64Platform() { args = append(args, "--addons=helm-tiller") } - if !detect.IsOnGCE() { - args = append(args, "--addons=gcp-auth") - } rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) if err != nil { t.Fatalf("%s failed: %v", rr.Command(), err) } - // If we're running the integration tests on GCE, which is frequently the case, first check to make sure we exit out properly, - // then use force to actually test using creds. - 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("%s failed: %v", rr.Command(), err) - } else { - 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 - // do not use --force unless absolutely necessary - args = append(args, "--force") - rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) - if err != nil { - t.Errorf("%s failed: %v", rr.Command(), err) - } - } - } - } }) if !setupSucceeded { @@ -189,10 +164,23 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) { t.Fatalf("failed waiting for ingress-nginx-controller : %v", err) } + // use nginx ingress yaml that corresponds to k8s version + // default: k8s >= v1.19, ingress api v1 + ingressYaml := "nginx-ingress-v1.yaml" + ingressDNSYaml := "ingress-dns-example-v1.yaml" + v, err := client.ServerVersion() + if err != nil { + t.Log("failed to get k8s version, assuming v1.19+ => ingress api v1") + } else if semver.MustParseRange("<1.19.0")(semver.MustParse(fmt.Sprintf("%s.%s.0", v.Major, v.Minor))) { + // legacy: k8s < v1.19 & ingress api v1beta1 + ingressYaml = "nginx-ingress-v1beta1.yaml" + ingressDNSYaml = "ingress-dns-example-v1beta1.yaml" + } + // create networking.k8s.io/v1 ingress createv1Ingress := func() error { // apply networking.k8s.io/v1 ingress - rr, err := Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "replace", "--force", "-f", filepath.Join(*testdataDir, "nginx-ingv1.yaml"))) + rr, err := Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "replace", "--force", "-f", filepath.Join(*testdataDir, ingressYaml))) if err != nil { return err } @@ -246,7 +234,7 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) { } // 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"))) + rr, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "replace", "--force", "-f", filepath.Join(*testdataDir, ingressDNSYaml))) if err != nil { t.Errorf("failed to kubectl replace ingress-dns-example. args %q. %v", rr.Command(), err) } @@ -669,15 +657,34 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { got = strings.TrimSpace(rr.Stdout.String()) expected = "this_is_fake" - if detect.IsOnGCE() && !detect.IsCloudShell() { - expected = "k8s-minikube" - } + if got != expected { t.Errorf("'printenv GOOGLE_CLOUD_PROJECT' returned %s, expected %s", got, expected) } + 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) + } + // If we're on GCE, we have proper credentials and can test the registry secrets with an artifact registry image if detect.IsOnGCE() && !detect.IsCloudShell() { + os.Unsetenv("GOOGLE_APPLICATION_CREDENTIALS") + os.Unsetenv("GOOGLE_CLOUD_PROJECT") + args := []string{"-p", profile, "addons", "enable", "gcp-auth"} + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + 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") { + t.Errorf("Unexpected error message: %v", rr.Output()) + } _, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "apply", "-f", filepath.Join(*testdataDir, "private-image.yaml"))) if err != nil { t.Fatalf("print env project: %v", err) @@ -696,23 +703,9 @@ func validateGCPAuthAddon(ctx context.Context, t *testing.T, profile string) { t.Fatalf("print env project: %v", err) } - // Make sure the pod is up and running, which means we successfully pulled the private image down - // 8 minutes, because 4 is not enough for images to pull in all cases. _, err = PodWait(ctx, t, profile, "default", "integration-test=private-image-eu", Minutes(8)) if err != nil { t.Fatalf("wait for private image: %v", 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 3ff990b98c22..a78ffc5f40de 100644 --- a/test/integration/cert_options_test.go +++ b/test/integration/cert_options_test.go @@ -25,6 +25,8 @@ import ( "strings" "testing" "time" + + "k8s.io/minikube/pkg/drivers/kic/oci" ) // TestCertOptions makes sure minikube certs respect the --apiserver-ips and --apiserver-names parameters @@ -70,13 +72,39 @@ func TestCertOptions(t *testing.T) { } // verify that the apiserver is serving on port 8555 + if NeedsPortForward() { // in case of docker/podman on non-linux the port will be a "random assigned port" in kubeconfig + bin := "docker" + if PodmanDriver() { + bin = "podman" + } + + port, err := oci.ForwardedPort(bin, profile, 8555) + if err != nil { + t.Errorf("failed to inspect container for the port %v", err) + } + if port == 0 { + t.Errorf("expected to get a non-zero forwarded port but got %d", port) + } + } else { + rr, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "config", "view")) + if err != nil { + t.Errorf("failed to get kubectl config. args %q : %v", rr.Command(), err) + } + if !strings.Contains(rr.Stdout.String(), "8555") { + t.Errorf("Kubeconfig apiserver server port incorrect. Output of \n 'kubectl config view' = %q", rr.Output()) + } + } - rr, err = Run(t, exec.CommandContext(ctx, "kubectl", "--context", profile, "config", "view")) + // Also check the kubeconfig inside minikube using SSH + // located at /etc/kubernetes/admin.conf + args = []string{"ssh", "-p", profile, "--", "sudo cat /etc/kubernetes/admin.conf"} + rr, err = Run(t, exec.CommandContext(ctx, Target(), args...)) if err != nil { - t.Errorf("failed to get kubectl config. args %q : %v", rr.Command(), err) + t.Errorf("failed to SSH to minikube with args: %q : %v", rr.Command(), err) } + if !strings.Contains(rr.Stdout.String(), "8555") { - t.Errorf("apiserver server port incorrect. Output of 'kubectl config view' = %q", rr.Output()) + t.Errorf("Internal minikube kubeconfig (admin.conf) does not containe the right api port. %s", rr.Output()) } } diff --git a/test/integration/functional_test_tunnel_test.go b/test/integration/functional_test_tunnel_test.go index 1f395731c352..d3e8fc3f8067 100644 --- a/test/integration/functional_test_tunnel_test.go +++ b/test/integration/functional_test_tunnel_test.go @@ -93,8 +93,8 @@ func checkRoutePassword(t *testing.T) { // checkDNSForward skips DNS forwarding test if runtime is not supported func checkDNSForward(t *testing.T) { // Not all platforms support DNS forwarding - if runtime.GOOS != "darwin" { - t.Skip("DNS forwarding is supported for darwin only now, skipping test DNS forwarding") + if runtime.GOOS != "darwin" || KicDriver() { + t.Skip("DNS forwarding is only supported for Hyperkit on Darwin, skipping test DNS forwarding") } } diff --git a/test/integration/ingress_addon_legacy_test.go b/test/integration/ingress_addon_legacy_test.go new file mode 100644 index 000000000000..ba8a15dcb7b1 --- /dev/null +++ b/test/integration/ingress_addon_legacy_test.go @@ -0,0 +1,83 @@ +//go:build integration +// +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" + "os/exec" + "testing" +) + +// TestIngressAddonLegacy tests ingress and ingress-dns addons with legacy k8s version <1.19 +func TestIngressAddonLegacy(t *testing.T) { + if NoneDriver() { + t.Skipf("skipping: none driver does not support ingress") + } + + profile := UniqueProfileName("ingress-addon-legacy") + ctx, cancel := context.WithTimeout(context.Background(), Minutes(10)) + defer Cleanup(t, profile, cancel) + + t.Run("StartLegacyK8sCluster", func(t *testing.T) { + args := append([]string{"start", "-p", profile, "--kubernetes-version=v1.18.20", "--memory=4096", "--wait=true", "--alsologtostderr", "-v=5"}, 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) + } + }) + + t.Run("serial", func(t *testing.T) { + tests := []struct { + name string + validator validateFunc + }{ + {"ValidateIngressAddonActivation", validateIngressAddonActivation}, + {"ValidateIngressDNSAddonActivation", validateIngressDNSAddonActivation}, + {"ValidateIngressAddons", validateIngressAddon}, + } + 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) + }) + } + }) +} + +// validateIngressAddonActivation tests ingress addon activation +func validateIngressAddonActivation(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + if _, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "enable", "ingress", "--alsologtostderr", "-v=5")); err != nil { + t.Errorf("failed to enable ingress addon: %v", err) + } +} + +// validateIngressDNSAddonActivation tests ingress-dns addon activation +func validateIngressDNSAddonActivation(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + if _, err := Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "addons", "enable", "ingress-dns", "--alsologtostderr", "-v=5")); err != nil { + t.Errorf("failed to enable ingress-dns addon: %v", err) + } +} diff --git a/test/integration/no_kubernetes_test.go b/test/integration/no_kubernetes_test.go new file mode 100644 index 000000000000..f88734b1f089 --- /dev/null +++ b/test/integration/no_kubernetes_test.go @@ -0,0 +1,138 @@ +//go:build integration +// +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" + "os/exec" + "strings" + "testing" +) + +// TestNoKubernetes tests starting minikube without Kubernetes, +// for use cases where user only needs to use the container runtime (docker, containerd, crio) inside minikube +func TestNoKubernetes(t *testing.T) { + MaybeParallel(t) + + if NoneDriver() { + t.Skip("None driver does not need --no-kubernetes test") + } + type validateFunc func(context.Context, *testing.T, string) + profile := UniqueProfileName("NoKubernetes") + ctx, cancel := context.WithTimeout(context.Background(), Minutes(5)) + defer Cleanup(t, profile, cancel) + + // Serial tests + t.Run("serial", func(t *testing.T) { + tests := []struct { + name string + validator validateFunc + }{ + {"Start", validateStartNoK8S}, + {"VerifyK8sNotRunning", validateK8SNotRunning}, + {"ProfileList", validateProfileListNoK8S}, + {"Stop", validateStopNoK8S}, + {"StartNoArgs", validateStartNoArgs}, + {"VerifyK8sNotRunningSecond", validateK8SNotRunning}, + } + + 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) + if t.Failed() && *postMortemLogs { + PostMortemLogs(t, profile) + } + }) + } + }) +} + +// validateStartNoK8S starts a minikube cluster without kubernetes started/configured +func validateStartNoK8S(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := append([]string{"start", "-p", profile, "--no-kubernetes"}, StartArgs()...) + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("failed to start minikube with args: %q : %v", rr.Command(), err) + } +} + +// validateK8SNotRunning validates that there is no kubernetes running inside minikube +func validateK8SNotRunning(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := []string{"ssh", "-p", profile, "sudo systemctl is-active --quiet service kubelet"} + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err == nil { + t.Fatalf("Expected Kubelet not to be running and but it is running : %q : %v", rr.Command(), err) + } +} + +// validateStopNoK8S validates that minikube is stopped after a --no-kubernetes start +func validateStopNoK8S(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := []string{"stop", "-p", profile} + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("Failed to stop minikube %q : %v", rr.Command(), err) + } +} + +// validateProfileListNoK8S validates that profile list works with --no-kubernetes +func validateProfileListNoK8S(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := []string{"profile", "list"} + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("Profile list failed : %q : %v", rr.Command(), err) + } + + if !strings.Contains(rr.Output(), "N/A") { + t.Fatalf("expected N/A in the profile list for kubernetes version but got : %q : %v", rr.Command(), rr.Output()) + } + + args = []string{"profile", "list", "--output=json"} + rr, err = Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("Profile list --output=json failed : %q : %v", rr.Command(), err) + } + +} + +// validateStartNoArgs valides that minikube start with no args works +func validateStartNoArgs(ctx context.Context, t *testing.T, profile string) { + defer PostMortemLogs(t, profile) + + args := append([]string{"start", "-p", profile}, StartArgs()...) + rr, err := Run(t, exec.CommandContext(ctx, Target(), args...)) + if err != nil { + t.Fatalf("failed to start minikube with args: %q : %v", rr.Command(), err) + } + +} diff --git a/test/integration/testdata/ingress-dns-example.yaml b/test/integration/testdata/ingress-dns-example-v1.yaml similarity index 100% rename from test/integration/testdata/ingress-dns-example.yaml rename to test/integration/testdata/ingress-dns-example-v1.yaml diff --git a/test/integration/testdata/ingress-dns-example-v1beta1.yaml b/test/integration/testdata/ingress-dns-example-v1beta1.yaml new file mode 100644 index 000000000000..09f2817df4a0 --- /dev/null +++ b/test/integration/testdata/ingress-dns-example-v1beta1.yaml @@ -0,0 +1,85 @@ +# 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/v1beta1 +kind: Ingress +metadata: + name: example-ingress + namespace: kube-system + annotations: + # needed for k8s < v1.18: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#deprecating-the-ingress-class-annotation + kubernetes.io/ingress.class: nginx +spec: + rules: + - host: hello-john.test + http: + paths: + - path: / + pathType: Prefix + backend: + serviceName: hello-world-app + servicePort: 80 + - host: hello-jane.test + http: + paths: + - path: / + pathType: Prefix + backend: + serviceName: hello-world-app + servicePort: 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/test/integration/testdata/nginx-ingv1.yaml b/test/integration/testdata/nginx-ingress-v1.yaml similarity index 78% rename from test/integration/testdata/nginx-ingv1.yaml rename to test/integration/testdata/nginx-ingress-v1.yaml index e95cf7fc029e..e5c6766b0518 100644 --- a/test/integration/testdata/nginx-ingv1.yaml +++ b/test/integration/testdata/nginx-ingress-v1.yaml @@ -2,9 +2,6 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-ingress - annotations: - # use the shared ingress-nginx - kubernetes.io/ingress.class: nginx labels: integration-test: ingress spec: diff --git a/test/integration/testdata/nginx-ingress-v1beta1.yaml b/test/integration/testdata/nginx-ingress-v1beta1.yaml new file mode 100644 index 000000000000..5e3fcc2350e4 --- /dev/null +++ b/test/integration/testdata/nginx-ingress-v1beta1.yaml @@ -0,0 +1,19 @@ +apiVersion: networking.k8s.io/v1beta1 +kind: Ingress +metadata: + name: nginx-ingress + annotations: + # needed for k8s < v1.18: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#deprecating-the-ingress-class-annotation + kubernetes.io/ingress.class: nginx + labels: + integration-test: ingress +spec: + rules: + - host: nginx.example.com + http: + paths: + - path: / + pathType: Prefix + backend: + serviceName: nginx + servicePort: 80 diff --git a/translations/de.json b/translations/de.json index 87220903b237..94cda0e4cd37 100644 --- a/translations/de.json +++ b/translations/de.json @@ -155,6 +155,7 @@ "Done! kubectl is now configured to use \"{{.name}}": "Fertig! kubectl ist jetzt fÃŒr die Verwendung von \"{{.name}} konfiguriert", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", "Done! kubectl is now configured to use \"{{.name}}__1": "Fertig! kubectl ist jetzt fÃŒr die Verwendung von \"{{.name}}\" konfiguriert", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "Download abgeschlossen!", "Downloading Kubernetes {{.version}} preload ...": "", "Downloading VM boot image ...": "", @@ -313,7 +314,7 @@ "Group ID: {{.groupID}}": "", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "Hypervisor-Signatur vor dem Gast in minikube verbergen (nur kvm2-Treiber)", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", @@ -322,6 +323,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -575,8 +577,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a local kubernetes cluster": "Startet einen lokalen Kubernetes-Cluster", "Starts a node.": "", @@ -691,6 +694,7 @@ "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "Es gibt eine neue Version fÃŒr '{{.driver_executable}}'. Bitte erwÀgen Sie ein Upgrade. {{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "Dies kann auch automatisch erfolgen, indem Sie die env var CHANGE_MINIKUBE_NONE_USER = true setzen", "This control plane is not running! (state={{.state}})": "", @@ -743,9 +747,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "\"{{.kubernetes_version}}\" kann nicht geparst werden: {{.error}}", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to pull images, which may be OK: {{.error}}": "Bilder können nicht abgerufen werden, was möglicherweise kein Problem darstellt: {{.error}}", "Unable to push cached images: {{.error}}": "", diff --git a/translations/es.json b/translations/es.json index f8752aeb8c77..dbaec07f9e37 100644 --- a/translations/es.json +++ b/translations/es.json @@ -157,6 +157,7 @@ "Done! kubectl is now configured to use \"{{.name}}\" by default": "¡Listo! Se ha configurado kubectl para que use \"{{.name}}\" por defecto", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", "Done! kubectl is now configured to use \"{{.name}}__1": "¡Listo! Se ha configurado kubectl para que use \"{{.name}}__1 \n", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "Se ha completado la descarga", "Downloading Kubernetes {{.version}} preload ...": "Descargando Kubernetes {{.version}} ...", "Downloading VM boot image ...": "Descargando la imagen de arranque de la VM", @@ -319,7 +320,7 @@ "Group ID: {{.groupID}}": "", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "Permite ocultar la firma del hipervisor al invitado en minikube (solo con el controlador de kvm2)", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", @@ -328,6 +329,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -581,8 +583,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a local kubernetes cluster": "Inicia un clúster de Kubernetes local", "Starts a node.": "", @@ -697,6 +700,7 @@ "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "Hay una nueva versión de \"{{.driver_executable}}\". Te recomendamos que realices la actualización. {{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "El proceso se puede automatizar si se define la variable de entorno CHANGE_MINIKUBE_NONE_USER=true", "This control plane is not running! (state={{.state}})": "", @@ -749,9 +753,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "No se ha podido analizar la versión \"{{.kubernetes_version}}\": {{.error}}", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to pull images, which may be OK: {{.error}}": "No se ha podido recuperar imágenes, que podrían estar en buen estado: {{.error}}", "Unable to push cached images: {{.error}}": "", diff --git a/translations/fr.json b/translations/fr.json index 719cc2c991ac..fb28a7c244eb 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -12,7 +12,6 @@ "- Docs https://docs.docker.com/docker-for-mac/#resources": "- Documentation https://docs.docker.com/docker-for-mac/#resources", "- Docs https://docs.docker.com/docker-for-windows/#resources": "- Docs https://docs.docker.com/docker-for-windows/#resources", "- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "- Assurez-vous que votre démon {{.driver_name}} a accÚs à suffisamment de ressources CPU/mémoire.", - "- Prune unused {{.driver_name}} images, volumes and abandoned containers.": "- Nettoyer les images {{.driver_name}} non utilisées, les volumes et les conteneurs abandonnés.", "- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "- Nettoyer les images {{.driver_name}} non utilisées, les volumes, les réseaux et les conteneurs abandonnées.\n\n\t\t\t\t{{.driver_name}} system prune --volumes", "- Restart your {{.driver_name}} service": "- Redémarrer votre service {{.driver_name}}", "- {{.logPath}}": "- {{.logPath}}", @@ -27,10 +26,7 @@ "A firewall is interfering with minikube's ability to make outgoing HTTPS requests. You may need to change the value of the HTTPS_PROXY environment variable.": "Un pare-feu interfÚre avec la capacité de minikube à executer des requêtes HTTPS sortantes. Vous devriez peut-être modifier la valeur de la variable d'environnement HTTPS_PROXY.", "A firewall is likely blocking minikube from reaching the internet. You may need to configure minikube to use a proxy.": "Un pare-feu empêche probablement minikube d'accéder à Internet. Vous devriez peut-être configurer minikube pour utiliser un proxy.", "A set of apiserver IP Addresses which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Ensemble d'adresses IP apiserver qui sont utilisées dans le certificat généré pour kubernetes. Cela peut être utilisé si vous souhaitez rendre l'apiserver disponible à l'extérieur de la machine", - "A set of apiserver IP Addresses which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Ensemble d'adresses IP apiserver qui sont utilisées dans le certificat généré pour kubernetes. Cela peut être utilisé si vous souhaitez rendre l'apiserver disponible à l'extérieur de la machine", "A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Ensemble de noms de serveur d'API utilisés dans le certificat généré pour Kubernetes. Vous pouvez les utiliser si vous souhaitez que le serveur d'API soit disponible en dehors de la machine.", - "A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine": "Ensemble de noms de serveur d'API utilisés dans le certificat généré pour Kubernetes. Vous pouvez les utiliser si vous souhaitez que le serveur d'API soit disponible en dehors de la machine.", - "A set of key=value pairs that describe configuration that may be passed to different components.\nThe key should be '.' separated, and the first part before the dot is the component to apply the configuration to.\nValid components are: kubelet, kubeadm, apiserver, controller-manager, etcd, proxy, scheduler\nValid kubeadm parameters:": "Ensemble de paires clé = valeur qui décrivent la configuration pouvant être transmise à différents composants.\nLa clé doit être séparée par le caractÚre \".\", la premiÚre partie placée avant le point étant le composant auquel la configuration est appliquée.\nVoici la liste des composants valides : apiserver, controller-manager, etcd, kubeadm, kubelet, proxy et scheduler.\nParamÚtres valides pour le composant kubeadm :", "A set of key=value pairs that describe feature gates for alpha/experimental features.": "Ensemble de paires clé = valeur qui décrivent l'entrée de configuration pour des fonctionnalités alpha ou expérimentales.", "Access the Kubernetes dashboard running within the minikube cluster": "Accéder au tableau de bord Kubernetes exécuté dans le cluster de minikube", "Access to ports below 1024 may fail on Windows with OpenSSH clients older than v8.1. For more information, see: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission": "Accéder aux ports inférieurs à 1024 peut échouer sur Windows avec les clients OpenSSH antérieurs à v8.1. Pour plus d'information, voir: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission", @@ -52,8 +48,6 @@ "All existing scheduled stops cancelled": "Tous les arrêts programmés existants annulés", "Allow user prompts for more information": "Autoriser les utilisateurs à saisir plus d'informations", "Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Autre dépÃŽt d'images d'où extraire des images Docker. Il peut être utilisé en cas d'accÚs limité à gcr.io. Définissez-le sur \\\"auto\\\" pour permettre à minikube de choisir la valeur à votre place. Pour les utilisateurs situés en Chine continentale, vous pouvez utiliser des miroirs gcr.io locaux tels que registry.cn-hangzhou.aliyuncs.com/google_containers.", - "Amount of RAM allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)": "Quantité de mémoire RAM allouée à la VM minikube (format : \u003cnombre\u003e[\u003cunité\u003e], où \"unité\" = b, k, m ou g).", - "Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "Quantité de mémoire RAM à allouer à Kubernetes (format: \u003cnombre\u003e[\u003cunité\u003e], où unité = b, k, m ou g).", "Amount of time to wait for a service in seconds": "Temps d'attente pour un service en secondes", "Amount of time to wait for service in seconds": "Temps d'attente pour un service en secondes", "Another hypervisor, such as VirtualBox, is conflicting with KVM. Please stop the other hypervisor, or use --driver to switch to it.": "Un autre hyperviseur, tel que VirtualBox, est en conflit avec KVM. Veuillez arrêter l'autre hyperviseur ou utiliser --driver pour y basculer.", @@ -99,7 +93,6 @@ "Configure environment to use minikube's Podman service": "Configurer l'environnement pour utiliser le service Podman de minikube", "Configures the addon w/ADDON_NAME within minikube (example: minikube addons configure registry-creds). For a list of available addons use: minikube addons list": "Configure le module w/ADDON_NAME dans minikube (exemple : minikube addons configure registry-creds). Pour une liste des modules disponibles, utilisez : minikube addons list", "Configuring RBAC rules ...": "Configuration des rÚgles RBAC ...", - "Configuring environment for Kubernetes {{.k8sVersion}} on {{.runtime}} {{.runtimeVersion}}": "Configuration de l'environment pour Kubernetes {{.k8sVersion}} sur {{.runtime}} {{.runtimeVersion}}", "Configuring local host environment ...": "Configuration de l'environnement de l'hÃŽte local...", "Configuring {{.name}} (Container Networking Interface) ...": "Configuration de {{.name}} (Container Networking Interface)...", "Confirm that you have a working internet connection and that your VM has not run out of resources by using: 'minikube logs'": "Confirmez que vous disposez d'une connexion Internet fonctionnelle et que votre VM n'est pas à court de ressources en utilisant : 'minikube logs'", @@ -129,7 +122,6 @@ "Delete an image from the local cache.": "Supprimez une image du cache local.", "Deletes a local Kubernetes cluster": "Supprime un cluster Kubernetes local", "Deletes a local Kubernetes cluster. This command deletes the VM, and removes all\nassociated files.": "Supprime le cluster Kubernetes local. Cette commande supprime la VM ainsi que tous les fichiers associés.", - "Deletes a local kubernetes cluster. This command deletes the VM, and removes all\nassociated files.": "Supprime le cluster Kubernetes local. Cette commande supprime la VM ainsi que tous les fichiers associés.", "Deletes a node from a cluster.": "Supprime un nœud d'un cluster.", "Deleting \"{{.profile_name}}\" in {{.driver_name}} ...": "Suppression de \"{{.profile_name}}\" dans {{.driver_name}}...", "Deleting container \"{{.name}}\" ...": "Suppression du conteneur \"{{.name}}\" ...", @@ -139,7 +131,6 @@ "Disable dynamic memory in your VM manager, or pass in a larger --memory value": "Désactivez la mémoire dynamique dans votre gestionnaire de machine virtuelle ou transmettez une valeur --memory plus grande", "Disables the addon w/ADDON_NAME within minikube (example: minikube addons disable dashboard). For a list of available addons use: minikube addons list ": "Désactive le module w/ADDON_NAME dans minikube (exemple : minikube addons disable dashboard). Pour une liste des addons disponibles, utilisez : minikube addons list", "Disables the filesystem mounts provided by the hypervisors": "Désactive les installations de systÚmes de fichiers fournies par les hyperviseurs.", - "Disk size allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g)": "Taille de disque allouée à la VM minikube (format : \u003cnombre\u003e[\u003cunité\u003e], où \"unité\" = b, k, m ou g)", "Disk size allocated to the minikube VM (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "Taille du disque alloué à la VM minikube (format : \u003cnombre\u003e[\u003cunité\u003e], où unité = b, k, m ou g).", "Display dashboard URL instead of opening a browser": "Afficher l'URL du tableau de bord au lieu d'ouvrir un navigateur", "Display the Kubernetes addons URL in the CLI instead of opening it in the default browser": "Afficher l'URL des modules Kubernetes dans la CLI au lieu de l'ouvrir dans le navigateur par défaut", @@ -155,14 +146,12 @@ "Docker inside the VM is unavailable. Try running 'minikube delete' to reset the VM.": "Docker à l'intérieur de la VM n'est pas disponible. Essayez d'exécuter « minikube delete » pour réinitialiser la machine virtuelle.", "Docs have been saved at - {{.path}}": "Les documents ont été enregistrés à - {{.path}}", "Documentation: {{.url}}": "Documentation: {{.url}}", - "Done! kubectl is now configured to use \"{{.name}}\"": "Terminé ! kubectl est maintenant configuré pour utiliser \"{{.name}}\".", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "Terminé ! kubectl est maintenant configuré pour utiliser \"{{.name}}\" cluster et espace de noms \"{{.ns}}\" par défaut.", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "Téléchargement terminé !", "Downloading Kubernetes {{.version}} preload ...": "Téléchargement du préchargement de Kubernetes {{.version}}...", "Downloading VM boot image ...": "Téléchargement de l'image de démarrage de la VM...", "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`", @@ -174,11 +163,9 @@ "Enable host resolver for NAT DNS requests (virtualbox driver only)": "Active le résolveur d'hÃŽte pour les requêtes DNS NAT (pilote VirtualBox uniquement).", "Enable or disable a minikube addon": "Activer ou désactiver un module minikube", "Enable proxy for NAT DNS requests (virtualbox driver only)": "Active le proxy pour les requêtes DNS NAT (pilote VirtualBox uniquement).", - "Enable the default CNI plugin (/etc/cni/net.d/k8s.conf). Used in conjunction with \\\"--network-plugin=cni\\": "Active le plug-in CNI par défaut (/etc/cni/net.d/k8s.conf). Utilisé en association avec \\\"--network-plugin=cni\\\".", "Enabled addons: {{.addons}}": "Modules activés: {{.addons}}", "Enables the addon w/ADDON_NAME within minikube. For a list of available addons use: minikube addons list ": "Active le module w/ADDON_NAME dans minikube. Pour une liste des modules disponibles, utilisez : minikube addons list", "Enabling '{{.name}}' returned an error: {{.error}}": "L'activation de '{{.name}}' a renvoyé une erreur : {{.error}}", - "Enabling addons: {{.addons}}": "Installation des modules: {{.addons}}", "Enabling dashboard ...": "Activation du tableau de bord...", "Ensure that CRI-O is installed and healthy: Run 'sudo systemctl start crio' and 'journalctl -u crio'. Alternatively, use --container-runtime=docker": "Assurez-vous que CRI-O est installé et en fonctionnement : exécutez 'sudo systemctl start crio' et 'journalctl -u crio'. Sinon, utilisez --container-runtime=docker", "Ensure that Docker is installed and healthy: Run 'sudo systemctl start docker' and 'journalctl -u docker'. Alternatively, select another value for --driver": "Assurez-vous que Docker est installé et en fonctionnement : exécutez 'sudo systemctl start docker' et 'journalctl -u docker'. Sinon, sélectionnez une autre valeur pour --driver", @@ -191,7 +178,6 @@ "Ensure your {{.driver_name}} is running and is healthy.": "Assurez-vous que votre {{.driver_name}} est en cours d'exécution et en fonctionnement.", "Environment variables to pass to the Docker daemon. (format: key=value)": "Variables d'environment à transmettre au daemon Docker (format : clé = valeur).", "Environment variables to pass to the build. (format: key=value)": "Variables d'environnement à transmettre au build. (format : clé=valeur)", - "Error checking driver version: {{.error}}": "Erreur lors de la vérification de la version du driver : {{.error}}", "Error code docs have been saved at - {{.path}}": "Les documents de code d'erreur ont été enregistrés à - {{.path}}", "Error creating minikube directory": "Erreur lors de la création du répertoire minikube", "Error creating view template": "Erreur lors de la création du modÚle de vue", @@ -210,9 +196,7 @@ "Error getting the host IP address to use from within the VM": "Erreur lors de l'obtention de l'adresse IP de l'hÃŽte à utiliser depuis la VM", "Error killing mount process": "Erreur lors de la suppression du processus de montage", "Error loading profile config: {{.error}}": "Erreur lors du chargement de la configuration du profil : {{.error}}", - "Error loading profile {{.name}}: {{.error}}": "Erreur lors du chargement du profil {{.name}} : {{.error}}", "Error opening service": "Erreur d'ouverture du service", - "Error parsing Driver version: {{.error}}": "Erreur lors de l'analyse de la version du pilote de la VM : {{.error}}", "Error parsing minikube version: {{.error}}": "Erreur lors de l'analyse de la version de minikube : {{.error}}", "Error parsing {{.name}}={{.value}}, {{.err}}": "Erreur lors de l'analyse de {{.name}}={{.value}}, {{.err}}", "Error reading {{.path}}: {{.error}}": "Erreur de lecture {{.path}} : {{.error}}", @@ -222,11 +206,9 @@ "Error while setting kubectl current context: {{.error}}": "Erreur lors de la définition du contexte actuel de kubectl : {{.error}}", "Error with ssh-add": "Erreur avec ssh-add", "Error writing mount pid": "Erreur lors de l'écriture du pid de montage", - "Error: You have selected Kubernetes v{{.new}}, but the existing cluster for your profile is running Kubernetes v{{.old}}. Non-destructive downgrades are not supported, but you can proceed by performing one of the following options:\n* Recreate the cluster using Kubernetes v{{.new}}: Run \"minikube delete {{.profile}}\", then \"minikube start {{.profile}} --kubernetes-version={{.new}}\"\n* Create a second cluster with Kubernetes v{{.new}}: Run \"minikube start -p \u003cnew name\u003e --kubernetes-version={{.new}}\"\n* Reuse the existing cluster with Kubernetes v{{.old}} or newer: Run \"minikube start {{.profile}} --kubernetes-version={{.old}}": "Erreur : Vous avez sélectionné Kubernetes v{{.new}}, mais le cluster existent pour votre profil exécute Kubernetes v{{.old}}. Les rétrogradations non-destructives ne sont pas compatibles. Toutefois, vous pouvez poursuivre le processus en réalisant l'une des trois actions suivantes :\n* Créer à nouveau le cluster en utilisant Kubernetes v{{.new}} – exécutez \"minikube delete {{.profile}}\", puis \"minikube start {{.profile}} --kubernetes-version={{.new}}\".\n* Créer un second cluster avec Kubernetes v{{.new}} – exécutez \"minikube start -p \u003cnew name\u003e --kubernetes-version={{.new}}\".\n* Réutiliser le cluster existent avec Kubernetes v{{.old}} ou version ultérieure – exécutez \"minikube start {{.profile}} --kubernetes-version={{.old}}\".", "Examples": "Exemples", "Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "L'exécution de \"{{.command}}\" a pris un temps inhabituellement long : {{.duration}}", "Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "Il manque de nouvelles fonctionnalités sur le disque existant ({{.error}}). Pour mettre à niveau, exécutez 'minikube delete'", - "Exiting": "Fermeture
", "Exiting due to {{.fatal_code}}: {{.fatal_msg}}": "Fermeture en raison de {{.fatal_code}} : {{.fatal_msg}}", "Exposed port of the proxyfied dashboard. Set to 0 to pick a random port.": "Port exposé du tableau de bord proxyfié. Réglez sur 0 pour choisir un port aléatoire.", "External Adapter on which external switch will be created if no external switch is found. (hyperv driver only)": "L'adaptateur externe sur lequel un commutateur externe sera créé si aucun commutateur externe n'est trouvé. (pilote hyperv uniquement)", @@ -246,7 +228,6 @@ "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "Échec de la suppression du cluster {{.name}}, réessayez quand même.", "Failed to delete cluster {{.name}}.": "Échec de la suppression du cluster {{.name}}.", "Failed to delete cluster: {{.error}}": "Échec de la suppression du cluster : {{.error}}", - "Failed to delete cluster: {{.error}}__1": "Échec de la suppression du cluster : {{.error}}", "Failed to delete images": "Échec de la suppression des images", "Failed to delete images from config": "Échec de la suppression des images de la configuration", "Failed to enable container runtime": "Échec de l'activation de l'environnement d'exécution du conteneur", @@ -271,7 +252,6 @@ "Failed to save dir": "Échec de l'enregistrement du répertoire", "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}}`.", "Failed to setup certs": "Échec de la configuration des certificats", "Failed to start container runtime": "Échec du démarrage de l'exécution du conteneur", @@ -280,17 +260,13 @@ "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 ...", "Failed unmount: {{.error}}": "Échec du démontage : {{.error}}", "File permissions used for the mount": "Autorisations de fichier utilisées pour le montage", "Filter to use only VM Drivers": "Filtrer pour n'utiliser que les pilotes VM", "Flags": "Indicateurs", "Follow": "Suivre", - "For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/": "Pour des résultats optimaux, installez kubectl à l'adresse suivante : https://kubernetes.io/docs/tasks/tools/install-kubectl/", - "For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/__1": "Pour des résultats optimaux, installez kubectl à l'adresse suivante : https://kubernetes.io/docs/tasks/tools/install-kubectl/", "For improved {{.driver}} performance, {{.fix}}": "Pour de meilleures performances {{.driver}}, {{.fix}}", "For more information see: https://minikube.sigs.k8s.io/docs/drivers/{{.driver}}": "Pour plus d'informations, voir : https://minikube.sigs.k8s.io/docs/drivers/{{.driver}}", - "For more information, see:": "Pour en savoir plus, consultez les pages suivantes :", "For more information, see: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "Pour plus d'informations, voir : https://minikube.sigs.k8s.io/docs/reference/drivers/none/", "For more information, see: {{.url}}": "Pour plus d'informations, voir : {{.url}}", "Force environment to be configured for a specified shell: [fish, cmd, powershell, tcsh, bash, zsh], default is auto-detect": "Forcer l'environnement à être configuré pour un shell spécifié : [fish, cmd, powershell, tcsh, bash, zsh], la valeur par défaut est la détection automatique", @@ -319,6 +295,7 @@ "Group ID: {{.groupID}}": "Identifiant du groupe: {{.groupID}}", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "Masque la signature de l'hyperviseur de l'invité dans minikube (pilote kvm2 uniquement).", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "Hyperkit ne fonctionne pas. Mettez à niveau vers la derniÚre version d'hyperkit et/ou Docker for Desktop. Alternativement, vous pouvez choisir un autre --driver", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "Le réseau Hyperkit ne fonctionne pas. Mettez à niveau vers la derniÚre version d'hyperkit et/ou Docker for Desktop. Alternativement, vous pouvez choisir un autre --driver", "IP Address to use to expose ports (docker and podman driver only)": "Adresse IP à utiliser pour exposer les ports (pilote docker et podman uniquement)", "IP address (ssh driver only)": "Adresse IP (pilote ssh uniquement)", @@ -328,11 +305,11 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "Si défini, télécharge l'archive tar des images préchargées si disponibles pour améliorer le temps de démarrage. La valeur par défaut est true.", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "S'il est défini, force l'environnement d'exécution du conteneur à utiliser systemd comme gestionnaire de groupe de contrÃŽle. La valeur par défaut est false.", "If set, install addons. Defaults to true.": "Si défini, installe les modules. La valeur par défaut est true.", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "Si défini, suspend tous les espaces de noms", "If set, unpause all namespaces": "Si défini, annule la pause de tous les espaces de noms", "If the above advice does not help, please let us know:": "Si les conseils ci-dessus ne vous aident pas, veuillez nous en informer :", "If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none.": "Si vrai, met en cache les images Docker pour le programme d'amorçage actuel et les charge dans la machine. Toujours faux avec --driver=none.", - "If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --vm-driver=none.": "Si la valeur est \"true\", met les images Docker en cache pour l'amorceur actuel et les charge dans la machine. La valeur est toujours \"false\" avec --vm-driver=none.", "If true, only download and cache files for later use - don't install or start anything.": "Si la valeur est \"true\", téléchargez les fichiers et mettez-les en cache uniquement pour une utilisation future. Ne lancez pas d'installation et ne commencez aucun processus.", "If true, pods might get deleted and restarted on addon enable": "Si vrai, les pods peuvent être supprimés et redémarrés lors addon enable", "If true, returns list of profiles faster by skipping validating the status of the cluster.": "Si vrai, renvoie la liste des profils plus rapidement en ignorant la validation de l'état du cluster.", @@ -351,10 +328,8 @@ "Images used by this addon. Separated by commas.": "Images utilisées par ce module. Séparé par des virgules.", "In order to use the fall back image, you need to log in to the github packages registry": "Pour utiliser l'image de secours, vous devez vous connecter au registre des packages github", "Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "Registres Docker non sécurisés à transmettre au démon Docker. La plage CIDR de service par défaut sera automatiquement ajoutée.", - "Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added.": "Registres Docker non sécurisés à transmettre au daemon Docker. La plage CIDR par défaut du service sera ajoutée automatiquement.", "Install VirtualBox and ensure it is in the path, or select an alternative value for --driver": "Installez VirtualBox et assurez-vous qu'il est dans le chemin, ou sélectionnez une valeur alternative pour --driver", "Install the latest hyperkit binary, and run 'minikube delete'": "Installez le dernier binaire hyperkit et exécutez 'minikube delete'", - "Invalid Container Runtime: \"{{.runtime}}\". Valid runtimes are: {{.validOptions}}": "Exécution de conteneur non valide : \"{{.runtime}}\". Les environnements d'exécution valides sont : {{.validOptions}}", "Invalid port": "Port invalide", "Istio needs {{.minCPUs}} CPUs -- your configuration only allocates {{.cpus}} CPUs": "Istio a besoin de {{.minCPUs}} processeurs -- votre configuration n'alloue que {{.cpus}} processeurs", "Istio needs {{.minMem}}MB of memory -- your configuration only allocates {{.memory}}MB": "Istio a besoin de {{.minMem}}Mo de mémoire -- votre configuration n'alloue que {{.memory}}Mo", @@ -364,7 +339,6 @@ "Kubernetes requires at least 2 CPU's to start": "Kubernetes nécessite au moins 2 processeurs pour démarrer", "Kubernetes {{.new}} is now available. If you would like to upgrade, specify: --kubernetes-version={{.prefix}}{{.new}}": "Kubernetes {{.new}} est désormais disponible. Si vous souhaitez effectuer une mise à niveau, spécifiez : --kubernetes-version={{.prefix}}{{.new}}", "Kubernetes {{.version}} is not supported by this release of minikube": "Kubernetes {{.version}} n'est pas pris en charge par cette version de minikube", - "Launching Kubernetes ...": "Lancement de Kubernetes...", "Launching proxy ...": "Lancement du proxy...", "List all available images from the local cache.": "Répertoriez toutes les images disponibles à partir du cache local.", "List existing minikube nodes.": "Répertoriez les nœuds minikube existants.", @@ -384,7 +358,6 @@ "Local folders to share with Guest via NFS mounts (hyperkit driver only)": "Dossiers locaux à partager avec l'invité par des installations NFS (pilote hyperkit uniquement).", "Local proxy ignored: not passing {{.name}}={{.value}} to docker env.": "Proxy local ignoré : ne pas passer {{.name}}={{.value}} à 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)": "Emplacement du socket VPNKit exploité pour la mise en réseau. Si la valeur est vide, désactive Hyperkit VPNKitSock. Si la valeur affiche \"auto\", utilise la connexion VPNKit de Docker pour Mac. Sinon, utilise le VSock spécifié (pilote hyperkit uniquement).", - "Location of the minikube iso": "Emplacement de l'ISO minikube.", "Locations to fetch the minikube ISO from.": "Emplacements à partir desquels récupérer l'ISO minikube.", "Log into or run a command on a machine with SSH; similar to 'docker-machine ssh'.": "Connectez-vous ou exécutez une commande sur une machine avec SSH ; similaire à 'docker-machine ssh'.", "Log into the minikube environment (for debugging)": "Connectez-vous à l'environnement minikube (pour le débogage)", @@ -408,18 +381,14 @@ "No minikube profile was found. ": "Aucun profil minikube n'a été trouvé.", "No possible driver was detected. Try specifying --driver, or see https://minikube.sigs.k8s.io/docs/start/": "Aucun pilote possible n'a été détecté. Essayez de spécifier --driver, ou consultez https://minikube.sigs.k8s.io/docs/start/", "No such addon {{.name}}": "Aucun module de ce type {{.name}}", - "Node \"{{.node_name}}\" stopped.": "Le noeud \"{{.node_name}}\" est arrêté.", "Node {{.name}} failed to start, deleting and trying again.": "Le nœud {{.name}} n'a pas pu démarrer, suppression et réessai.", "Node {{.name}} was successfully deleted.": "Le nœud {{.name}} a été supprimé avec succÚs.", "Node {{.nodeName}} does not exist.": "Le nœud {{.nodeName}} n'existe pas.", "None of the known repositories are accessible. Consider specifying an alternative image repository with --image-repository flag": "Aucun des référentiels connus n'est accessible. Envisagez de spécifier un référentiel d'images alternatif avec l'indicateur --image-repository", "None of the known repositories in your location are accessible. Using {{.image_repository_name}} as fallback.": "Aucun dépÃŽt connu dans votre emplacement n'est accessible. {{.image_repository_name}} est utilisé comme dépÃŽt de remplacement.", - "None of the known repositories is accessible. Consider specifying an alternative image repository with --image-repository flag": "Aucun dépÃŽt connu n'est accessible. Pensez à spécifier un autre dépÃŽt d'images à l'aide de l'indicateur \"--image-repository\".", "Noticed you have an activated docker-env on {{.driver_name}} driver in this terminal:": "Vous avez remarqué que vous avez un docker-env activé sur le pilote {{.driver_name}} dans ce terminal :", "Noticed you have an activated podman-env on {{.driver_name}} driver in this terminal:": "Vous avez remarqué que vous avez un pilote podman-env activé sur {{.driver_name}} dans ce terminal :", - "Number of CPUs allocated to 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}}", "One of 'text', 'yaml' or 'json'.": "Un parmi 'text', 'yaml' ou 'json'.", @@ -444,7 +413,6 @@ "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.", "Please enter a value:": "Entrer un nombre, SVP:", @@ -464,7 +432,6 @@ "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\")", "Please try purging minikube using `minikube delete --all --purge`": "Veuillez essayer de purger minikube en utilisant `minikube delete --all --purge`", - "Please upgrade the '{{.driver_executable}}'. {{.documentation_url}}": "Veuillez mettre à niveau l'exécutable \"{{.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": "Veuillez visiter le lien suivant pour la documentation à ce sujet : \n\thttps://help.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with -github-packages#authentiating-to-github-packages\n", "Populates the specified folder with documentation in markdown about minikube": "Remplit le dossier spécifié avec la documentation en markdown sur minikube", "PowerShell is running in constrained mode, which is incompatible with Hyper-V scripting.": "PowerShell s'exécute en mode contraint, ce qui est incompatible avec les scripts Hyper-V.", @@ -486,7 +453,6 @@ "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": "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", @@ -499,17 +465,13 @@ "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": "Réinstallez VirtualBox et vérifiez qu'il n'est pas bloqué : Préférences SystÚme -\u003e Sécurité \u0026 Confidentialité -\u003e Général -\u003e Le chargement de certains logiciels systÚme a été bloqué", "Related issue: {{.url}}": "ProblÚme connexe: {{.url}}", "Related issues:": "ProblÚme connexe:", - "Relaunching Kubernetes using {{.bootstrapper}} ...": "Redémarrage de Kubernetes à l'aide de {{.bootstrapper}}
", "Remove one or more images": "Supprimer une ou plusieurs images", "Remove the invalid --docker-opt or --insecure-registry flag if one was provided": "Supprimez l'indicateur --docker-opt ou --insecure-registry non valide s'il a été fourni", "Removed all traces of the \"{{.name}}\" cluster.": "Le cluster \"{{.name}}\" a été supprimé.", "Removing {{.directory}} ...": "Suppression du répertoire {{.directory}}
", "Requested cpu count {{.requested_cpus}} is greater than the available cpus of {{.avail_cpus}}": "Le nombre de processeurs demandés {{.requested_cpus}} est supérieur au nombre de processeurs disponibles de {{.avail_cpus}}", "Requested cpu count {{.requested_cpus}} is less than the minimum allowed of {{.minimum_cpus}}": "Le nombre de processeurs demandés {{.requested_cpus}} est inférieur au minimum autorisé de {{.minimum_cpus}}", - "Requested disk size {{.requested_size}} is less than minimum of {{.minimum_size}}": "La taille de disque demandée ({{.requested_size}}) est inférieure à la taille minimale ({{.minimum_size}}).", - "Requested memory allocation ({{.memory}}MB) is less than the default memory allocation of {{.default_memorysize}}MB. Beware that minikube might not work correctly or crash unexpectedly.": "L'allocation de mémoire demandée ({{.memory}} Mo) est inférieure à l'allocation de mémoire par défaut ({{.default_memorysize}} Mo). Sachez que minikube pourrait ne pas fonctionner correctement ou planter de maniÚre inattendue.", "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommend}}MB. Deployments may fail.": "L'allocation de mémoire demandée ({{.requested}} Mo) est inférieure au minimum recommandé de {{.recommend}} Mo. Les déploiements peuvent échouer.", - "Requested memory allocation {{.requested_size}} is less than the minimum allowed of {{.minimum_size}}": "L'allocation de mémoire demandée ({{.requested_size}}) est inférieure au minimum autorisé ({{.minimum_size}}).", "Requested memory allocation {{.requested}}MB is more than your system limit {{.system_limit}}MB.": "L'allocation de mémoire demandée {{.requested}} Mo est supérieure à la limite de votre systÚme {{.system_limit}} Mo.", "Requested memory allocation {{.requested}}MiB is less than the usable minimum of {{.minimum_memory}}MB": "L'allocation de mémoire demandée {{.requested}} Mio est inférieure au minimum utilisable de {{.minimum_memory}} Mo", "Reset Docker to factory defaults": "Réinitialiser Docker aux paramÚtres d'usine", @@ -586,15 +548,15 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "La spécification de disques supplémentaires n'est actuellement prise en charge que pour les pilotes suivants : {{.supported_drivers}}. Si vous pouvez contribuer à ajouter cette fonctionnalité, veuillez créer un PR.", "StartHost failed, but will try again: {{.error}}": "StartHost a échoué, mais va réessayer : {{.error}}", "Starting control plane node {{.name}} in cluster {{.cluster}}": "Démarrage du noeud de plan de contrÃŽle {{.name}} dans le cluster {{.cluster}}", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting node {{.name}} in cluster {{.cluster}}": "Démarrage du noeud {{.name}} dans le cluster {{.cluster}}", "Starting tunnel for service {{.service}}.": "Tunnel de démarrage pour le service {{.service}}.", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "Démarre un cluster Kubernetes local", - "Starts a local kubernetes cluster": "Démarre un cluster Kubernetes local.", "Starts a node.": "Démarre un nœud.", "Starts an existing stopped node in a cluster.": "Démarre un nœud arrêté existant dans un cluster.", "Startup with {{.old_driver}} driver failed, trying with alternate driver {{.new_driver}}: {{.error}}": "Échec du démarrage avec le pilote {{.old_driver}}, essai avec un autre pilote {{.new_driver}} : {{.error}}", "Stopped tunnel for service {{.service}}.": "Tunnel arrêté pour le service {{.service}}.", - "Stopping \"{{.profile_name}}\" in {{.driver_name}} ...": "Arrêt de \"{{.profile_name}}\" sur {{.driver_name}}...", "Stopping node \"{{.name}}\" ...": "Nœud d'arrêt \"{{.name}}\" ...", "Stopping tunnel for service {{.service}}.": "Tunnel d'arrêt pour le service {{.service}}.", "Stops a local Kubernetes cluster. This command stops the underlying VM or container, but keeps user data intact. The cluster can be started again with the \"start\" command.": "Arrête un cluster Kubernetes local. Cette commande arrête la VM ou le conteneur sous-jacent, mais conserve les données utilisateur intactes. Le cluster peut être redémarré avec la commande \"start\".", @@ -613,17 +575,14 @@ "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", "Test docs have been saved at - {{.path}}": "Les documents de test ont été enregistrés à - {{.path}}", - "The \"{{.driver_name}}\" driver requires root privileges. Please run minikube using 'sudo minikube --vm-driver={{.driver_name}}": "Le pilote \"{{.driver_name}}\" nécessite de disposer de droits racine. Veuillez exécuter minikube à l'aide de \"sudo minikube --vm-driver={{.driver_name}}\".", "The \"{{.driver_name}}\" driver should not be used with root privileges.": "Le pilote \"{{.driver_name}}\" ne doit pas être utilisé avec les privilÚges root.", "The 'none' driver is designed for experts who need to integrate with an existing VM": "Le pilote 'none' est conçu pour les experts qui doivent s'intégrer à une machine virtuelle existante", - "The 'none' driver provides limited isolation and may reduce system security and reliability.": "L'isolation fournie par le pilote \"none\" (aucun) est limitée, ce qui peut diminuer la sécurité et la fiabilité du systÚme.", "The '{{.addonName}}' addon is enabled": "Le module '{{.addonName}}' est activé", "The '{{.driver}}' driver requires elevated permissions. The following commands will be executed:\\n\\n{{ .example }}\\n": "Le pilote '{{.driver}}' nécessite des autorisations élevées. Les commandes suivantes seront exécutées :\\n\\n{{ .example }}\\n", "The '{{.driver}}' provider was not found: {{.error}}": "Le fournisseur '{{.driver}}' n'a pas été trouvé : {{.error}}", "The '{{.name}} driver does not support multiple profiles: https://minikube.sigs.k8s.io/docs/reference/drivers/none/": "Le pilote '{{.name}}' ne prend pas en charge plusieurs profils : https://minikube.sigs.k8s.io/docs/reference/drivers/none/", "The '{{.name}}' driver does not respect the --cpus flag": "Le pilote '{{.name}}' ne respecte pas l'indicateur --cpus", "The '{{.name}}' driver does not respect the --memory flag": "Le pilote '{{.name}}' ne respecte pas l'indicateur --memory", - "The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically": "L'indicateur --image-repository que vous avez fourni contient le schéma : {{.scheme}}, ce sera en tant que domaine, supprimé automatiquement", "The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically": "L'indicateur --image-repository que vous avez fourni contient le schéma: {{.scheme}}, qui sera automatiquement supprimé", "The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically": "L'indicateur --image-repository que vous avez fourni s'est terminé par un / qui pourrait provoquer un conflit dans kubernetes, supprimé automatiquement", "The CIDR to be used for service cluster IPs.": "Méthode CIDR à exploiter pour les adresses IP des clusters du service.", @@ -631,28 +590,22 @@ "The KVM QEMU connection URI. (kvm2 driver only)": "URI de connexion QEMU de la KVM (pilote kvm2 uniquement).", "The KVM default network name. (kvm2 driver only)": "Le nom de réseau par défaut de KVM. (pilote kvm2 uniquement)", "The KVM driver is unable to resurrect this old VM. Please run `minikube delete` to delete it and try again.": "Le pilote KVM est incapable de ressusciter cette ancienne VM. Veuillez exécuter `minikube delete` pour la supprimer et réessayer.", - "The KVM network name. (kvm2 driver only)": "Nom du réseau de la KVM (pilote kvm2 uniquement).", "The VM driver crashed. Run 'minikube start --alsologtostderr -v=8' to see the VM driver error message": "Le pilote VM s'est écrasé. Exécutez 'minikube start --alsologtostderr -v=8' pour voir le message d'erreur du pilote VM", "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.", "The argument to pass the minikube mount command on start.": "L'argument pour passer la commande de montage minikube au démarrage.", "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": "Le nom d'hÃŽte apiserver faisant autorité pour les certificats apiserver et la connectivité. Cela peut être utilisé si vous souhaitez rendre l'apiserver disponible depuis l'extérieur de la machine", "The base image to use for docker/podman drivers. Intended for local development.": "L'image de base à utiliser pour les pilotes docker/podman. Destiné au développement local.", "The certificate hostname provided appears to be invalid (may be a minikube bug, try 'minikube delete')": "Le nom d'hÃŽte du certificat fourni semble être invalide (peut être un bogue minikube, essayez 'minikube delete')", "The cluster dns domain name used in the Kubernetes cluster": "Le nom de domaine DNS du cluster utilisé dans le cluster Kubernetes", - "The cluster dns domain name used in the kubernetes cluster": "Nom du domaine DNS du cluster utilisé dans le cluster Kubernetes.", "The cluster {{.cluster}} already exists which means the --nodes parameter will be ignored. Use \"minikube node add\" to add nodes to an existing cluster.": "Le cluster {{.cluster}} existe déjà, ce qui signifie que le paramÚtre --nodes sera ignoré. Utilisez \"minikube node add\" pour ajouter des nœuds à un cluster existant.", - "The container runtime to be used (docker, crio, containerd)": "environment d'exécution du conteneur à utiliser (docker, crio, containerd).", "The control plane for \"{{.name}}\" is paused!": "Le plan de contrÃŽle pour \"{{.name}}\" est en pause !", "The control plane node \"{{.name}}\" does not exist.": "Le nœud du plan de contrÃŽle \"{{.name}}\" n'existe pas.", "The control plane node is not running (state={{.state}})": "Le nœud du plan de contrÃŽle n'est pas en cours d'exécution (state={{.state}})", "The control plane node must be running for this command": "Le nœud du plan de contrÃŽle doit être en cours d'exécution pour cette commande", - "The cri socket path to be used": "Chemin d'accÚs au socket CRI à utiliser.", "The cri socket path to be used.": "Le chemin de socket cri à utiliser.", "The docker-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "La commande docker-env est incompatible avec les clusters multi-nœuds. Utilisez le module 'registry' : https://minikube.sigs.k8s.io/docs/handbook/registry/", "The docker-env command is only compatible with the \"docker\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "La commande docker-env n'est compatible qu'avec le runtime \"docker\", mais ce cluster a été configuré pour utiliser le runtime \"{{.runtime}}\".", @@ -665,12 +618,10 @@ "The image '{{.imageName}}' was not found; unable to add it to cache.": "L'image '{{.imageName}}' n'a pas été trouvée ; impossible de l'ajouter au cache.", "The initial time interval for each check that wait performs in seconds": "L'intervalle de temps initial pour chaque vérification effectuée en secondes", "The kubeadm binary within the Docker container is not executable": "Le binaire kubeadm dans le conteneur Docker n'est pas exécutable", - "The kubernetes version that the minikube VM will use (ex: v1.2.3)": "Version de Kubernetes qu'utilisera la VM minikube (exemple : v1.2.3).", "The machine-driver specified is failing to start. Try running 'docker-machine-driver-\u003ctype\u003e version'": "Le pilote de machine spécifié ne démarre pas. Essayez d'exécuter 'docker-machine-driver-\u003ctype\u003e version'", "The minikube VM is offline. Please run 'minikube start' to start it again.": "La machine virtuelle minikube est hors ligne. Veuillez exécuter 'minikube start' pour le redémarrer.", "The minikube {{.driver_name}} container exited unexpectedly.": "Le conteneur minikube {{.driver_name}} s'est fermé de maniÚre inattendue.", "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.": "Le nœud sur lequel construire. La valeur par défaut est le plan de contrÃŽle principal.", "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.", @@ -693,16 +644,14 @@ "The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "La commande podman-env est incompatible avec les clusters multi-nœuds. Utilisez le module 'registry' : https://minikube.sigs.k8s.io/docs/handbook/registry/", "The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "L'allocation de mémoire demandée de {{.requested}}MiB ne laisse pas de place pour la surcharge systÚme (mémoire systÚme totale : {{.system_limit}}MiB). Vous pouvez rencontrer des problÚmes de stabilité.", "The service namespace": "L'espace de nom du service", - "The service {{.service}} requires privileged ports to be exposed: {{.ports}}": "Le service {{.service}} nécessite l'exposition des ports privilégiés : {{.ports}}", "The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "Le service/ingress {{.resource}} nécessite l'exposition des ports privilégiés : {{.ports}}", "The services namespace": "L'espace de noms des services", "The time interval for each check that wait performs in seconds": "L'intervalle de temps pour chaque contrÃŽle que wait effectue en secondes", "The value passed to --format is invalid": "La valeur passée à --format n'est pas valide", "The value passed to --format is invalid: {{.error}}": "La valeur passée à --format n'est pas valide : {{.error}}", - "The {{.driver_name}} driver should not be used with root privileges.": "Le pilote {{.driver_name}} ne doit pas être utilisé avec des droits racine.", - "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "Une nouvelle version de \"{{.driver_executable}}\" est disponible. Pensez à effectuer la mise à niveau. {{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "Ces paramÚtres --extra-config ne sont pas valides : {{.invalid_extra_opts}}", "These changes will take effect upon a minikube delete and then a minikube start": "Ces modifications prendront effet lors d'une suppression de minikube, puis d'un démarrage de minikube", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "Ce module n'a pas de point de terminaison défini pour la commande 'addons open'.\nVous pouvez en ajouter un en annotant un service avec le libellé {{.labelName}} :{{.addonName}}", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "Cette opération peut également être réalisée en définissant la variable d'environment \"CHANGE_MINIKUBE_NONE_USER=true\".", "This control plane is not running! (state={{.state}})": "Ce plan de contrÃŽle ne fonctionne pas ! (état={{.state}})", @@ -710,14 +659,10 @@ "This is a known issue with BTRFS storage driver, there is a workaround, please checkout the issue on GitHub": "Il s'agit d'un problÚme connu avec le pilote de stockage BTRFS, il existe une solution de contournement, veuillez vérifier le problÚme sur GitHub", "This is unusual - you may want to investigate using \"{{.command}}\"": "C'est inhabituel - vous voudrez peut-être investiguer en utilisant \"{{.command}}\"", "This will keep the existing kubectl context and will create a minikube context.": "Cela permet de conserver le contexte kubectl existent et de créer un contexte minikube.", - "This will start the mount daemon and automatically mount files into minikube": "Cela permet de lancer le daemon d'installation et d'installer automatiquement les fichiers dans minikube.", "This will start the mount daemon and automatically mount files into minikube.": "Cela démarrera le démon de montage et montera automatiquement les fichiers dans minikube.", "This {{.type}} is having trouble accessing https://{{.repository}}": "Ce {{.type}} rencontre des difficultés pour accéder à https://{{.repository}}", "Tip: To remove this root owned cluster, run: sudo {{.cmd}}": "Astuce : Pour supprimer ce cluster appartenant à la racine, exécutez : sudo {{.cmd}}", - "Tip: To remove this root owned cluster, run: sudo {{.cmd}} delete": "Conseil : Pour supprimer ce cluster appartenant à la racine, exécutez la commande \"sudo {{.cmd}} delete\".", "To connect to this cluster, use: --context={{.name}}": "Pour vous connecter à ce cluster, utilisez : --context={{.name}}", - "To connect to this cluster, use: kubectl --context={{.name}}": "Pour vous connecter à ce cluster, utilisez la commande \"kubectl --context={{.name}}\".", - "To connect to this cluster, use: kubectl --context={{.name}}__1": "Pour vous connecter à ce cluster, utilisez la commande \"kubectl --context={{.name}}\".", "To connect to this cluster, use: kubectl --context={{.profile_name}}": "Pour vous connecter à ce cluster, utilisez : kubectl --context={{.profile_name}}", "To disable beta notices, run: 'minikube config set WantBetaUpdateNotification false'": "Pour désactiver les notifications bêta, exécutez : 'minikube config set WantBetaUpdateNotification false'", "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "Pour désactiver cette notification, exécutez : 'minikube config set WantUpdateNotification false'\\n", @@ -740,7 +685,6 @@ "Unable to generate docs": "Impossible de générer des documents", "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "Impossible de générer la documentation. Veuillez vous assurer que le chemin spécifié est un répertoire, existe \u0026 vous avez la permission d'y écrire.", "Unable to get CPU info: {{.err}}": "Impossible d'obtenir les informations sur le processeur : {{.err}}", - "Unable to get bootstrapper: {{.error}}": "Impossible d'obtenir l'amorceur : {{.error}}", "Unable to get command runner": "Impossible d'obtenir le lanceur de commandes", "Unable to get control plane status: {{.error}}": "Impossible d'obtenir l'état du plan de contrÃŽle : {{.error}}", "Unable to get current user": "Impossible d'obtenir l'utilisateur actuel", @@ -749,7 +693,6 @@ "Unable to get runtime": "Impossible d'obtenir l'environnement d'exécution", "Unable to kill mount process: {{.error}}": "Impossible d'arrêter le processus de montage : {{.error}}", "Unable to list profiles: {{.error}}": "Impossible de répertorier les profils : {{.error}}", - "Unable to load cached images from config file.": "Impossible de charger les images mises en cache depuis le fichier de configuration.", "Unable to load cached images: {{.error}}": "Impossible de charger les images mises en cache : {{.error}}", "Unable to load config: {{.error}}": "Impossible de charger la configuration : {{.error}}", "Unable to load host": "Impossible de charger l'hÃŽte", @@ -759,7 +702,6 @@ "Unable to parse memory '{{.memory}}': {{.error}}": "Impossible d'analyser la mémoire '{{.memory}}' : {{.error}}", "Unable to parse oldest Kubernetes version from constants: {{.error}}": "Impossible d'analyser la version la plus ancienne de Kubernetes à partir des constantes : {{.error}}", "Unable to pick a default driver. Here is what was considered, in preference order:": "Impossible de choisir un pilote par défaut. Voici ce qui a été considéré, par ordre de préférence :", - "Unable to pull images, which may be OK: {{.error}}": "Impossible d'extraire des images, qui sont peut-être au bon format : {{.error}}", "Unable to push cached images: {{.error}}": "Impossible de pousser les images mises en cache : {{.error}}", "Unable to remove machine directory": "Impossible de supprimer le répertoire de la machine", "Unable to restart cluster, will reset it: {{.error}}": "Impossible de redémarrer le cluster, va être réinitialisé : {{.error}}", @@ -780,7 +722,6 @@ "Update server returned an empty list": "Le serveur de mise à jour a renvoyé une liste vide", "Updating the running {{.driver_name}} \"{{.cluster}}\" {{.machine_type}} ...": "Mise à jour du {{.machine_type}} {{.driver_name}} en marche \"{{.cluster}}\" ...", "Upgrade to QEMU v3.1.0+, run 'virt-host-validate', or ensure that you are not running in a nested VM environment.": "Mettez à niveau vers QEMU v3.1.0+, exécutez 'virt-host-validate' ou assurez-vous que vous n'exécutez pas dans un environnement VM imbriqué.", - "Upgrading from Kubernetes {{.old}} to {{.new}}": "Mise à niveau de Kubernetes de la version {{.old}} à la version {{.new}}
", "Usage": "Usage", "Usage: minikube completion SHELL": "Utilisation : minikube completion SHELL", "Usage: minikube delete": "Utilisation: minikube delete", @@ -808,16 +749,13 @@ "Using the '{{.runtime}}' runtime with the 'none' driver is an untested configuration!": "L'utilisation du runtime '{{.runtime}}' avec le pilote 'none' est une configuration non testée !", "Using the {{.driver}} driver based on existing profile": "Utilisation du pilote {{.driver}} basé sur le profil existant", "Using the {{.driver}} driver based on user configuration": "Utilisation du pilote {{.driver}} basé sur la configuration de l'utilisateur", - "VM driver is one of: %v": "Le pilote de la VM appartient à : %v", "Valid components are: {{.valid_extra_opts}}": "Les composants valides sont : {{.valid_extra_opts}}", "Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "Validez vos réseaux KVM. Exécutez : virt-host-validate puis virsh net-list --all", - "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "La validation n'a pas pu analyser la taille du disque '{{.diskSize}}' : {{.error}}", "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "Vérifiez que vos variables d'environnement HTTP_PROXY et HTTPS_PROXY sont correctement définies.", "Verifying Kubernetes components...": "Vérification des composants Kubernetes...", "Verifying dashboard health ...": "Vérification de l'état du tableau de bord...", "Verifying proxy health ...": "Vérification de l'état du proxy...", "Verifying {{.addon_name}} addon...": "Vérification du module {{.addon_name}}...", - "Verifying:": "Vérification :", "Version: {{.version}}": "Version : {{.version}}", "VirtualBox and Hyper-V are having a conflict. Use '--driver=hyperv' or disable Hyper-V using: 'bcdedit /set hypervisorlaunchtype off'": "VirtualBox et Hyper-V ont un conflit. Utilisez '--driver=hyperv' ou désactivez Hyper-V en utilisant : 'bcdedit /set hypervisorlaunchtype off'", "VirtualBox cannot create a network, probably because it conflicts with an existing network that minikube no longer knows about. Try running 'minikube delete'": "VirtualBox ne peut pas créer de réseau, probablement parce qu'il entre en conflit avec un réseau existant que minikube ne connaît plus. Essayez d'exécuter 'minikube delete'", @@ -826,18 +764,13 @@ "VirtualBox is unable to find its network interface. Try upgrading to the latest release and rebooting.": "VirtualBox est incapable de trouver son interface réseau. Essayez de mettre à niveau vers la derniÚre version et de redémarrer.", "Virtualization support is disabled on your computer. If you are running minikube within a VM, try '--driver=docker'. Otherwise, consult your systems BIOS manual for how to enable virtualization.": "La prise en charge de la virtualisation est désactivée sur votre ordinateur. Si vous exécutez minikube dans une machine virtuelle, essayez '--driver=docker'. Sinon, consultez le manuel du BIOS de votre systÚme pour savoir comment activer la virtualisation.", "Wait failed: {{.error}}": "Échec de l'attente : {{.error}}", - "Wait until Kubernetes core services are healthy before exiting": "Avant de quitter, veuillez patienter jusqu'à ce que les principaux services Kubernetes soient opérationnels.", - "Waiting for SSH access ...": "En attente de l'accÚs SSH...", - "Waiting for:": "En attente de :", "Want kubectl {{.version}}? Try 'minikube kubectl -- get pods -A'": "Vous voulez kubectl {{.version}} ? Essayez 'minikube kubectl -- get pods -A'", "Where to root the NFS Shares, defaults to /nfsshares (hyperkit driver only)": "Emplacement permettant d'accéder aux partages NFS en mode root, la valeur par défaut affichant /nfsshares (pilote hyperkit uniquement).", "Whether to use external switch over Default Switch if virtual switch not explicitly specified. (hyperv driver only)": "S'il faut utiliser le commutateur externe sur le commutateur par défaut si le commutateur virtuel n'est pas explicitement spécifié. (pilote hyperv uniquement)", "With --network-plugin=cni, you will need to provide your own CNI. See --cni flag as a user-friendly alternative": "Avec --network-plugin=cni, vous devrez fournir votre propre CNI. Voir --cni flag comme alternative conviviale", "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}).": "Vous semblez utiliser un proxy, mais votre environnement NO_PROXY n'inclut pas l'IP minikube ({{.ip_address}}).", - "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}). Please see {{.documentation_url}} for more details": "Il semble que vous utilisiez un proxy, mais votre environment NO_PROXY n'inclut pas l'adresse IP ({{.ip_address}}) de minikube. Consultez la documentation à l'adresse {{.documentation_url}} pour en savoir plus.", "You are trying to run a windows .exe binary inside WSL. For better integration please use a Linux binary instead (Download at https://minikube.sigs.k8s.io/docs/start/.). Otherwise if you still want to do this, you can do it using --force": "Vous essayez d'exécuter un binaire Windows .exe dans WSL. Pour une meilleure intégration, veuillez utiliser un binaire Linux à la place (Télécharger sur https://minikube.sigs.k8s.io/docs/start/.). Sinon, si vous voulez toujours le faire, vous pouvez le faire en utilisant --force", "You are trying to run amd64 binary on M1 system. Please consider running darwin/arm64 binary instead (Download at {{.url}}.)": "Vous essayez d'exécuter le binaire amd64 sur le systÚme M1. Veuillez utiliser le binaire darwin/arm64 à la place (télécharger sur {{.url}}.)", - "You are trying to run windows .exe binary inside WSL, for better integration please use Linux binary instead (Download at https://minikube.sigs.k8s.io/docs/start/.). Otherwise if you still want to do this, you can do it using --force": "Vous essayez d'exécuter le binaire Windows .exe dans WSL. Pour une meilleure intégration, veuillez utiliser le binaire Linux à la place (Télécharger sur https://minikube.sigs.k8s.io/docs/start/.). Sinon, si vous voulez toujours le faire, vous pouvez le faire en utilisant --force", "You can delete them using the following command(s): ": "Vous pouvez les supprimer à l'aide de la ou des commandes suivantes :", "You can force an unsupported Kubernetes version via the --force flag": "Vous pouvez forcer une version Kubernetes non prise en charge via l'indicateur --force", "You cannot add or remove extra disks for an existing minikube cluster. Please first delete the cluster.": "Vous ne pouvez pas ajouter ou supprimer des disques supplémentaires pour un cluster minikube existant. Veuillez d'abord supprimer le cluster.", @@ -864,7 +797,6 @@ "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "Le module '{{.name}}' n'est pas un module valide fourni avec minikube.\nPour voir la liste des modules disponibles, exécutez :\nminikube addons list", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "addons modifie les fichiers de modules minikube à l'aide de sous-commandes telles que \"minikube addons enable dashboard\"", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "Le module auto-pause est une fonctionnalité alpha et encore en développement précoce. Veuillez signaler les problÚmes pour nous aider à l'améliorer.", - "auto-pause currently is only supported on docker runtime. Track progress of others here: https://github.com/kubernetes/minikube/issues/10601": "la pause automatique n'est actuellement prise en charge que sur le runtime docker. Suivez les progrÚs des autres ici : https://github.com/kubernetes/minikube/issues/10601", "bash completion failed": "échec de la complétion bash", "bash completion.": "complétion bash", "call with cleanup=true to remove old tunnels": "appelez avec cleanup=true pour supprimer les anciens tunnels", @@ -885,7 +817,6 @@ "error initializing tracing: {{.Error}}": "erreur d'initialisation du traçage : {{.Error}}", "error parsing the input ip address for mount": "erreur lors de l'analyse de l'adresse IP d'entrée pour le montage", "error provisioning guest": "erreur lors de l'approvisionnement de l'invité", - "error provisioning host": "erreur lors de l'approvisionnement de l'hÃŽte", "error starting tunnel": "erreur de démarrage du tunnel", "error stopping tunnel": "erreur d'arrêt du tunnel", "error: --output must be 'text', 'yaml' or 'json'": "erreur : --output doit être 'text', 'yaml' ou 'json'", @@ -951,7 +882,6 @@ "unable to bind flags": "impossible de lier les configurations", "unable to daemonize: {{.err}}": "impossible de démoniser : {{.err}}", "unable to delete minikube config folder": "impossible de supprimer le dossier de configuration de minikube", - "unable to set logtostderr": "impossible de définir logtostderr", "unpause Kubernetes": "réactive Kubernetes", "unset failed": "échec de la déconfiguration", "unsets PROPERTY_NAME from the minikube config file. Can be overwritten by flags or environmental variables": "déconfigure PROPERTY_NAME du fichier de configuration de minikube. Peut-être écrasé par des arguments ou variables d'environnement", @@ -975,7 +905,6 @@ "{{ .name }}: Suggestion: {{ .suggestion}}": "{{ .name }}: Suggestion: {{ .suggestion}}", "{{ .name }}: {{ .rejection }}": "{{ .name }} : {{ .rejection }}", "{{.Driver}} is currently using the {{.StorageDriver}} storage driver, consider switching to overlay2 for better performance": "{{.Driver}} utilise actuellement le pilote de stockage {{.StorageDriver}}, envisagez de passer à overlay2 pour de meilleures performances", - "{{.count}} nodes stopped.": "{{.count}} nœud(s) arrêté(s).", "{{.count}} node{{if gt .count 1}}s{{end}} stopped.": "{{.count}} nœud{{if gt .count 1}}s{{end}} arrêté{{if gt .count 1}}s{{end}}.", "{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} is missing, will recreate.": "{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} est manquant, il va être recréé.", "{{.driver_name}} couldn't proceed because {{.driver_name}} service is not healthy.": "{{.driver_name}} n'a pas pu continuer car le service {{.driver_name}} n'est pas fonctionnel.", diff --git a/translations/ja.json b/translations/ja.json index d86d755645e5..329f7ecf7577 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -1,54 +1,54 @@ { - "\"The '{{.minikube_addon}}' addon is disabled": "「{{.minikube_addon}}」アドオンは無効化されおいたす", - "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "", - "\"{{.machineName}}\" does not exist, nothing to stop": "「{{.machineName}}」は存圚したせん。停止すべき察象がありたせん", - "\"{{.name}}\" profile does not exist, trying anyways.": "「{{.name}}」ずいうプロファむルは存圚したせん", - "'none' driver does not support 'minikube docker-env' command": "「none」ドラむバヌは「minikube docker-env」コマンドをサポヌトしおいたせん", - "'none' driver does not support 'minikube mount' command": "「none」ドラむバヌは「minikube mount」コマンドをサポヌトしおいたせん", - "'none' driver does not support 'minikube podman-env' command": "「none」ドラむバヌは「minikube podman-env」コマンドをサポヌトしおいたせん", - "'none' driver does not support 'minikube ssh' command": "「none」ドラむバヌは「minikube ssh」コマンドをサポヌトしおいたせん", - "'none' driver does not support 'minikube ssh-host' command": "", - "'{{.driver}}' driver reported a issue that could affect the performance.": "「{{.driver}}」ドラむバヌがパフォヌマンスに圱響しうる問題を報告したした。", - "'{{.driver}}' driver reported an issue: {{.error}}": "「{{.driver}}」ドラむバヌが゚ラヌを報告したした: {{.error}}", - "- Delete and recreate minikube cluster\n\t\tminikube delete\n\t\tminikube start --driver={{.driver_name}}": "", - "- Docs https://docs.docker.com/docker-for-mac/#resources": "", - "- Docs https://docs.docker.com/docker-for-windows/#resources": "", - "- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "", - "- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "", - "- Restart your {{.driver_name}} service": "", - "- {{.logPath}}": "", - "--kvm-numa-count range is 1-8": "", - "--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "", - "127.0.0.1": "", - "\u003ctarget file absolute path\u003e must be an absolute Path. Relative Path is not allowed (example: \"/home/docker/copied.txt\")": "", - "==\u003e Audit \u003c==": "", - "==\u003e Last Start \u003c==": "", - "A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "VPN、あるいはファむアりォヌルによっお、minkube VM ぞの HTTP アクセスが干枉されおいたす。他の手段ずしお、別の VM を詊しおみおください: https://minikube.sigs.k8s.io/docs/start/", - "A firewall is blocking Docker the minikube VM from reaching the image repository. You may need to select --image-repository, or use a proxy.": "", - "A firewall is interfering with minikube's ability to make outgoing HTTPS requests. You may need to change the value of the HTTPS_PROXY environment variable.": "ファむアりォヌルによっお、minikube は倖偎ぞの HTTPS リク゚ストをするこずができたせん。HTTPS_PROXY 環境倉数の倀を倉える必芁があるかもしれたせん", - "A firewall is likely blocking minikube from reaching the internet. You may need to configure minikube to use a proxy.": "ファむアりォヌルによっお、minikube がむンタヌネットに繋がるこずができおない可胜性がありたす。minikube がプロキシヌを䜿うように蚭定する必芁があるかもしれたせん", - "A set of apiserver IP Addresses which are 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サヌバヌの IP アドレスのセット。 マシンの倖郚から API サヌバヌを利甚できるようにする堎合に䜿甚したす", + "\"The '{{.minikube_addon}}' addon is disabled": "'{{.minikube_addon}}' アドオンが無効です", + "\"{{.context}}\" context has been updated to point to {{.hostname}}:{{.port}}": "「{{.context}}」コンテキストが曎新されお、{{.hostname}}:{{.port}} を指すようになりたした", + "\"{{.machineName}}\" does not exist, nothing to stop": "「{{.machineName}}」は存圚したせん。停止察象がありたせん", + "\"{{.name}}\" profile does not exist, trying anyways.": "「{{.name}}」プロファむルは存圚したせんが、それでも続行したす。", + "'none' driver does not support 'minikube docker-env' command": "'none' ドラむバヌは 'minikube docker-env' コマンドをサポヌトしおいたせん", + "'none' driver does not support 'minikube mount' command": "'none' ドラむバヌは 'minikube mount' コマンドをサポヌトしおいたせん", + "'none' driver does not support 'minikube podman-env' command": "'none' ドラむバヌは 'minikube podman-env' コマンドをサポヌトしおいたせん", + "'none' driver does not support 'minikube ssh' command": "'none' ドラむバヌは 'minikube ssh' コマンドをサポヌトしおいたせん", + "'none' driver does not support 'minikube ssh-host' command": "'none' ドラむバヌは 'minikube ssh-host' コマンドをサポヌトしおいたせん", + "'{{.driver}}' driver reported a issue that could affect the performance.": "'{{.driver}}' ドラむバヌが性胜に圱響しうる問題を報告したした。", + "'{{.driver}}' driver reported an issue: {{.error}}": "'{{.driver}}' ドラむバヌが゚ラヌを報告したした: {{.error}}", + "- Delete and recreate minikube cluster\n\t\tminikube delete\n\t\tminikube start --driver={{.driver_name}}": "- minikube クラスタヌの削陀ず再䜜成をしおください\n\t\tminikube delete\n\t\tminikube start --driver={{.driver_name}}", + "- Docs https://docs.docker.com/docker-for-mac/#resources": "- ドキュメント https://docs.docker.com/docker-for-mac/#resources", + "- Docs https://docs.docker.com/docker-for-windows/#resources": "- ドキュメント https://docs.docker.com/docker-for-windows/#resources", + "- Ensure your {{.driver_name}} daemon has access to enough CPU/memory resources.": "- {{.driver_name}} デヌモンが十分な CPU/メモリヌリ゜ヌスを利甚できるこずを確認しおください。", + "- Prune unused {{.driver_name}} images, volumes, networks and abandoned containers.\n\n\t\t\t\t{{.driver_name}} system prune --volumes": "- 䜿甚しおいない {{.driver_name}} むメヌゞ、ボリュヌム、ネットワヌク、コンテナヌを削陀しおください。\n\n\t\t\t\t{{.driver_name}} system prune --volumes", + "- Restart your {{.driver_name}} service": "{{.driver_name}} サヌビスを再起動しおください", + "- {{.logPath}}": "- {{.logPath}}", + "--kvm-numa-count range is 1-8": "--kvm-numa-count の範囲は 18 です", + "--network flag is only valid with the docker/podman and KVM drivers, it will be ignored": "--network フラグは、docker/podman および KVM ドラむバヌでのみ有効であるため、無芖されたす", + "127.0.0.1": "127.0.0.1", + "\u003ctarget file absolute path\u003e must be an absolute Path. Relative Path is not allowed (example: \"/home/docker/copied.txt\")": "\u003ctarget file absolute path\u003e は絶察パスでなければなりたせん。盞察パスは䜿甚できたせん (䟋:「/home/docker/copied.txt」)", + "==\u003e Audit \u003c==": "==\u003e Audit \u003c==", + "==\u003e Last Start \u003c==": "==\u003e Last Start \u003c==", + "A VPN or firewall is interfering with HTTP access to the minikube VM. Alternatively, try a different VM driver: https://minikube.sigs.k8s.io/docs/start/": "VPN、あるいはファむアりォヌルによっお、minkube VM ぞの HTTP アクセスが干枉されおいたす。他の手段ずしお、別の VM ドラむバヌを詊しおみおください: https://minikube.sigs.k8s.io/docs/start/", + "A firewall is blocking Docker the minikube VM from reaching the image repository. You may need to select --image-repository, or use a proxy.": "Docker の minikube VM がむメヌゞリポゞトリヌに到達するのを、ファむアりォヌルがブロックしおいたす。--image-repository を指定するか、プロキシヌを䜿甚する必芁があるかもしれたせん。", + "A firewall is interfering with minikube's ability to make outgoing HTTPS requests. You may need to change the value of the HTTPS_PROXY environment variable.": "ファむアりォヌルによっお、minikube は倖偎ぞの HTTPS リク゚ストをするこずができたせん。HTTPS_PROXY 環境倉数の倀を倉える必芁があるかもしれたせん。", + "A firewall is likely blocking minikube from reaching the internet. You may need to configure minikube to use a proxy.": "ファむアりォヌルによっお、minikube がむンタヌネットに接続できおいない可胜性がありたす。minikube がプロキシヌを䜿甚するように蚭定する必芁があるかもしれたせん。", + "A set of apiserver IP Addresses which are 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 サヌバヌの IP アドレス。マシンの倖郚から API サヌバヌを利甚できるようにする堎合に䜿甚したす", "A set of apiserver names which are 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 サヌバヌを利甚できるようにする堎合に䜿甚したす", - "A set of key=value pairs that describe feature gates for alpha/experimental features.": "アルファ版たたは詊隓運甚版の機胜のフィヌチャヌゲヌトを蚘述する䞀連の key=value ペアです", - "Access the Kubernetes dashboard running within the minikube cluster": "minikube クラスタ内で動いおいる Kubernetes のダッシュボヌドにアクセスしたす", - "Access to ports below 1024 may fail on Windows with OpenSSH clients older than v8.1. For more information, see: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission": "", - "Add SSH identity key to SSH authentication agent": "", - "Add an image to local cache.": "むメヌゞをロヌカルキャッシュに远加したす", - "Add host key to SSH known_hosts file": "", - "Add image to cache for all running minikube clusters": "", - "Add machine IP to NO_PROXY environment variable": "マシヌンの IP アドレスをNO_PROXY 環境倉数に远加したす", - "Add, delete, or push a local image into minikube": "ロヌカルむメヌゞをminikubeに远加、削陀、たたはプッシュしたす", + "A set of key=value pairs that describe feature gates for alpha/experimental features.": "アルファ版たたは詊隓運甚版の機胜のフィヌチャヌゲヌトを蚘述する䞀連の key=value ペアです。", + "Access the Kubernetes dashboard running within the minikube cluster": "minikube クラスタヌ内で動いおいる Kubernetes のダッシュボヌドにアクセスしたす", + "Access to ports below 1024 may fail on Windows with OpenSSH clients older than v8.1. For more information, see: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission": "Windows で v8.1 より叀い OpenSSH クラむアントを䜿甚しおいる堎合、1024 未満のポヌトぞのアクセスに倱敗するこずがありたす。詳现はこちら: https://minikube.sigs.k8s.io/docs/handbook/accessing/#access-to-ports-1024-on-windows-requires-root-permission", + "Add SSH identity key to SSH authentication agent": "SSH 認蚌゚ヌゞェントに SSH 鍵を远加したす", + "Add an image to local cache.": "むメヌゞをロヌカルキャッシュに远加したす。", + "Add host key to SSH known_hosts file": "SSH known_hosts ファむルにホストキヌを远加したす", + "Add image to cache for all running minikube clusters": "実行䞭のすべおの minikube クラスタヌのキャッシュに、むメヌゞを远加したす", + "Add machine IP to NO_PROXY environment variable": "マシンの IP アドレスを NO_PROXY 環境倉数に远加したす", + "Add, delete, or push a local image into minikube": "ロヌカルむメヌゞを minikube に远加、削陀、たたはプッシュしたす", "Add, remove, or list additional nodes": "远加のノヌドを远加、削陀たたはリストアップしたす", - "Adding node {{.name}} to cluster {{.cluster}}": "「{{.name}}」ずいうノヌドを「{{.cluster}}」ずいうクラスタに远加したす", + "Adding node {{.name}} to cluster {{.cluster}}": "{{.name}} ノヌドを {{.cluster}} クラスタヌに远加したす", "Additional help topics": "远加のトピック", "Additional mount options, such as cache=fscache": "cache=fscache などの远加のマりントオプション", - "Adds a node to the given cluster config, and starts it.": "ノヌドをクラスタの蚭定に远加しお、起動したす", - "Adds a node to the given cluster.": "ノヌドをクラスタに远加したす", + "Adds a node to the given cluster config, and starts it.": "ノヌドをクラスタヌの蚭定に远加しお、起動したす。", + "Adds a node to the given cluster.": "ノヌドをクラスタヌに远加したす。", "Advanced Commands:": "高床なコマンド:", - "After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "", + "After the addon is enabled, please run \"minikube tunnel\" and your ingress resources would be available at \"127.0.0.1\"": "アドオンを有効にした埌、「minikube tunnel」を実行するこずで、ingress リ゜ヌスが「127.0.0.1」で利甚可胜になりたす", "Aliases": "゚むリアス", - "All existing scheduled stops cancelled": "", - "Allow user prompts for more information": "", + "All existing scheduled stops cancelled": "既存のスケゞュヌルされおいたすべおの停止がキャンセルされたした", + "Allow user prompts for more information": "ナヌザヌによる詳现情報の入力をできるようにしたす", "Alternative image repository to pull docker images from. This can be used when you have limited access to gcr.io. Set it to \\\"auto\\\" to let minikube decide one for you. For Chinese mainland users, you may use local gcr.io mirrors such as registry.cn-hangzhou.aliyuncs.com/google_containers": "Docker むメヌゞの pull 元の代替むメヌゞ リポゞトリ。これは、gcr.io ぞのアクセスが制限されおいる堎合に䜿甚できたす。これを \\\"auto\\\" に蚭定するず、minikube によっお自動的に指定されるようになりたす。䞭囜本土のナヌザヌの堎合、registry.cn-hangzhou.aliyuncs.com/google_containers などのロヌカル gcr.io ミラヌを䜿甚できたす", "Amount of RAM to allocate to Kubernetes (format: \u003cnumber\u003e[\u003cunit\u003e], where unit = b, k, m or g).": "Kubernetesに割り圓おられた RAM 容量圢匏: \u003cnumber\u003e[\u003cunit\u003e]、unit = b、k、m、g", "Amount of time to wait for a service in seconds": "", @@ -152,6 +152,7 @@ "Documentation: {{.url}}": "ドキュメント: {{.url}}", "Done! kubectl is now configured to use \"{{.name}}\"": "完了したした kubectl が「\"{{.name}}\"」を䜿甚するよう構成されたした", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "完了したした kubectl が「\"{{.name}}\"」クラスタず「\"{{.ns}}\"」ネヌムスペヌスを䜿甚するよう構成されたした", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "ダりンロヌドが完了したした", "Downloading Kubernetes {{.version}} preload ...": "Kubernetes {{.version}} のダりンロヌドの準備をしおいたす", "Downloading VM boot image ...": "VM ブヌトむメヌゞをダりンロヌドしおいたす...", @@ -304,7 +305,7 @@ "Group ID: {{.groupID}}": "グルヌプ ID: {{.groupID}}", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "minikube でゲストに察し、ハむパヌバむザ眲名を非衚瀺にしたすkvm2 ドラむバのみ", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", @@ -313,6 +314,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -574,8 +576,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "コントロヌルプレヌンのノヌド {{.name}} を {{.cluster}} 䞊で起動しおいたす", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "ロヌカル Kubernetes クラスタを起動したす", "Starts a local kubernetes cluster": "ロヌカル Kubernetes クラスタを起動したす", "Starts a node.": "", @@ -643,44 +646,44 @@ "The control plane node must be running for this command": "このコマンドではコントロヌルプレヌンノヌドが実行䞭でなければなりたせん", "The cri socket path to be used": "䜿甚される CRI ゜ケットパス", "The cri socket path to be used.": "䜿甚される CRI ゜ケットパス。", - "The docker-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "", - "The docker-env command is only compatible with the \"docker\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "", - "The driver '{{.driver}}' is not supported on {{.os}}/{{.arch}}": "ドラむバ「{{.driver}}」は、{{.os}}/{{.arch}} ではサポヌトされおいたせん", - "The existing \"{{.name}}\" cluster was created using the \"{{.old}}\" driver, which is incompatible with requested \"{{.new}}\" driver.": "", - "The existing node configuration appears to be corrupt. Run 'minikube delete'": "", - "The heapster addon is depreciated. please try to disable metrics-server instead": "", - "The hyperv virtual switch name. Defaults to first found. (hyperv driver only)": "hyperv 仮想スむッチ名。最初に芋぀かったものにデフォルト蚭定されたすhyperv ドラむバのみ", - "The hypervisor does not appear to be configured properly. Run 'minikube start --alsologtostderr -v=1' and inspect the error code": "", - "The image '{{.imageName}}' was not found; unable to add it to cache.": "", - "The initial time interval for each check that wait performs in seconds": "", - "The kubeadm binary within the Docker container is not executable": "", - "The kubernetes version that the minikube VM will use (ex: v1.2.3)": "minikube VM で䜿甚される Kubernetes バヌゞョン䟋: v1.2.3", - "The machine-driver specified is failing to start. Try running 'docker-machine-driver-\u003ctype\u003e version'": "", - "The minikube VM is offline. Please run 'minikube start' to start it again.": "", - "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 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.": "", - "The node to get ssh-key path. Defaults to the primary control plane.": "", - "The node to ssh into. Defaults to the primary control plane.": "", - "The node {{.name}} has ran out of available PIDs.": "", - "The node {{.name}} has ran out of disk space.": "", - "The node {{.name}} has ran out of memory.": "", - "The node {{.name}} network is not available. Please verify network settings.": "", - "The none driver is not compatible with multi-node clusters.": "", - "The number of bytes to use for 9p packet payload": "", - "The number of nodes to spin up. Defaults to 1.": "", - "The output format. One of 'json', 'table'": "", - "The path on the file system where the docs in markdown need to be saved": "", - "The path on the file system where the error code docs in markdown need to be saved": "", - "The path on the file system where the testing docs in markdown need to be saved": "", - "The podman service within '{{.cluster}}' is not active": "", - "The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "", - "The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "", + "The docker-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "docker-env コマンドはマルチノヌドクラスタヌず互換性がありたせん。'registry' アドオンを䜿甚しおください: https://minikube.sigs.k8s.io/docs/handbook/registry/", + "The docker-env command is only compatible with the \"docker\" runtime, but this cluster was configured to use the \"{{.runtime}}\" runtime.": "docker-env コマンドは「docker」ランタむムずだけ互換性がありたすが、このクラスタヌは「{{.runtime}}」ランタむムを䜿甚するよう蚭定されおいたす。", + "The driver '{{.driver}}' is not supported on {{.os}}/{{.arch}}": "'{{.driver}}' ドラむバヌは {{.os}}/{{.arch}} に察応しおいたせん", + "The existing \"{{.name}}\" cluster was created using the \"{{.old}}\" driver, which is incompatible with requested \"{{.new}}\" driver.": "既存の「{{.name}}」クラスタヌは、(芁求された「{{.new}}」ドラむバヌずは互換性のない)「{{.old}}」ドラむバヌを䜿甚しお䜜成されたした。 ", + "The existing node configuration appears to be corrupt. Run 'minikube delete'": "既存のノヌド蚭定が砎損しおいるようです。'minikube delete' を実行しおください", + "The heapster addon is depreciated. please try to disable metrics-server instead": "heapster アドオンは廃止予定です。代わりに metrics-server を無効化しおみおください", + "The hyperv virtual switch name. Defaults to first found. (hyperv driver only)": "hyperv 仮想スむッチ名。デフォルト倀は最初に芋぀かったスむッチ名です。 (hyperv ドラむバヌのみ)", + "The hypervisor does not appear to be configured properly. Run 'minikube start --alsologtostderr -v=1' and inspect the error code": "ハむパヌバむザヌが適切に蚭定されおいないようです。'minikube start --alsologtostderr -v=1' を実行しお゚ラヌコヌドを確認しおください", + "The image '{{.imageName}}' was not found; unable to add it to cache.": "'{{.imageName}}' むメヌゞは芋぀かりたせんでした (キャッシュに远加できたせん)。", + "The initial time interval for each check that wait performs in seconds": "実行埅機チェックの初期時間間隔 (秒)", + "The kubeadm binary within the Docker container is not executable": "Docker コンテナヌ内の kubeadm バむナリヌが実行可胜圢匏ではありたせん", + "The kubernetes version that the minikube VM will use (ex: v1.2.3)": "minikube VM で䜿甚する Kubernetes バヌゞョン (䟋: v1.2.3)", + "The machine-driver specified is failing to start. Try running 'docker-machine-driver-\u003ctype\u003e version'": "指定された machine-driver は起動に倱敗したした。'docker-machine-driver-\u003ctype\u003e version' を実行しおみおください", + "The minikube VM is offline. Please run 'minikube start' to start it again.": "minikube VM がオフラむンです。'minikube start' を実行しお minikube VM を再起動しおください。", + "The minikube {{.driver_name}} container exited unexpectedly.": "minikube {{.driver_name}} コンテナヌは想定倖で終了したした。", + "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": "minikube が芁求する podman のバヌゞョンは「{{.minVersion}}」です。あなたのバヌゞョンは「{{.currentVersion}}」です。minikube は動䜜しないかも知れたせん。自己責任で䜿甚しおください。最新バヌゞョンのむンストヌルには 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.": "IP を取埗するノヌド。デフォルトは最初のコントロヌルプレヌンです。", + "The node to get logs from. Defaults to the primary control plane.": "ログを取埗するノヌド。デフォルトは最初のコントロヌルプレヌンです。", + "The node to get ssh-key path. Defaults to the primary control plane.": "ssh-key パスを取埗するノヌド。デフォルトは最初のコントロヌルプレヌンです。", + "The node to ssh into. Defaults to the primary control plane.": "ssh ログむンするノヌド。デフォルトは最初のコントロヌルプレヌンです。", + "The node {{.name}} has ran out of available PIDs.": "{{.name}} ノヌドは利甚可胜な PID を䜿い果たしたした。", + "The node {{.name}} has ran out of disk space.": "{{.name}} ノヌドはディスクスペヌスを䜿い果たしたした。", + "The node {{.name}} has ran out of memory.": "{{.name}} ノヌドはメモリヌを䜿い果たしたした。", + "The node {{.name}} network is not available. Please verify network settings.": "{{.name}} ノヌドはネットワヌクが䜿甚䞍胜です。ネットワヌク蚭定を怜蚌しおください。", + "The none driver is not compatible with multi-node clusters.": "ノヌドドラむバヌはマルチノヌドクラスタヌず互換性がありたせん。", + "The number of bytes to use for 9p packet payload": "9p パケットペむロヌドに䜿甚するバむト数", + "The number of nodes to spin up. Defaults to 1.": "起動するノヌド数。デフォルトは 1。", + "The output format. One of 'json', 'table'": "出力圢匏。'json', 'table' のいずれか", + "The path on the file system where the docs in markdown need to be saved": "markdown で曞かれたドキュメントの保存先のファむルシステムパス", + "The path on the file system where the error code docs in markdown need to be saved": "markdown で曞かれた゚ラヌコヌドドキュメントの保存先のファむルシステムパス", + "The path on the file system where the testing docs in markdown need to be saved": "markdown で曞かれたテストドキュメントの保存先のファむルシステムパス", + "The podman service within '{{.cluster}}' is not active": "'{{.cluster}}' 内の podman サヌビスが active ではありたせん", + "The podman-env command is incompatible with multi-node clusters. Use the 'registry' add-on: https://minikube.sigs.k8s.io/docs/handbook/registry/": "podman-env コマンドはマルチノヌドクラスタヌず互換性がありたせん。'registry' アドオンを䜿甚しおください: https://minikube.sigs.k8s.io/docs/handbook/registry/", + "The requested memory allocation of {{.requested}}MiB does not leave room for system overhead (total system memory: {{.system_limit}}MiB). You may face stability issues.": "芁求された {{.requested}}MiB のメモリヌ割圓は、システムのオヌバヌヘッド (合蚈システムメモリヌ: {{.system_limit}}MiB) に十分な空きを残したせん。安定性の問題に盎面するかも知れたせん。", "The service namespace": "", "The service/ingress {{.resource}} requires privileged ports to be exposed: {{.ports}}": "", "The services namespace": "", @@ -691,63 +694,64 @@ "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "「{{.driver_executable}}」の新しいバヌゞョンがありたす。アップグレヌドを怜蚎しおください。{{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "これは環境倉数 CHANGE_MINIKUBE_NONE_USER=true を蚭定しお自動的に行うこずもできたす", "This control plane is not running! (state={{.state}})": "", "This driver does not yet work on your architecture. Maybe try --driver=none": "", "This is a known issue with BTRFS storage driver, there is a workaround, please checkout the issue on GitHub": "", - "This is unusual - you may want to investigate using \"{{.command}}\"": "", - "This will keep the existing kubectl context and will create a minikube context.": "これにより既存の kubectl コンテキストが保持され、minikube コンテキストが䜜成されたす", - "This will start the mount daemon and automatically mount files into minikube": "これによりマりント デヌモンが起動し、ファむルが minikube に自動的にマりントされたす", - "This will start the mount daemon and automatically mount files into minikube.": "", - "This {{.type}} is having trouble accessing https://{{.repository}}": "", - "Tip: To remove this root owned cluster, run: sudo {{.cmd}}": "", - "Tip: To remove this root owned cluster, run: sudo {{.cmd}} delete": "ヒント: この root 所有のクラスタを削陀するには、「sudo {{.cmd}} delete」を実行したす", - "To connect to this cluster, use: --context={{.name}}": "", - "To connect to this cluster, use: kubectl --context={{.name}}": "このクラスタに接続するには、「kubectl --context={{.name}}」を䜿甚したす", - "To connect to this cluster, use: kubectl --context={{.name}}__1": "このクラスタに接続するには、「kubectl --context={{.name}}」を䜿甚したす", - "To connect to this cluster, use: kubectl --context={{.profile_name}}": "", - "To disable beta notices, run: 'minikube config set WantBetaUpdateNotification false'": "", - "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "", - "To disable update notices in general, run: 'minikube config set WantUpdateNotification false'\\n": "", - "To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/": "", - "To see addons list for other profiles use: `minikube addons -p name list`": "", - "To set your Google Cloud project, run:\n\n\t\tgcloud config set project \u003cproject name\u003e\n\nor set the GOOGLE_CLOUD_PROJECT environment variable.": "", - "To start a cluster, run: \"{{.command}}\"": "", - "To start minikube with Hyper-V, Powershell must be in your PATH`": "", - "To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:": "kubectl か minikube コマンドを独自のナヌザヌずしお䜿甚するには、そのコマンドの再配眮が必芁な堎合がありたす。たずえば、独自の蚭定を䞊曞きするには、以䞋を実行したす", + "This is unusual - you may want to investigate using \"{{.command}}\"": "これは異垞です - 「{{.command}}」を䜿っお調査できたす", + "This will keep the existing kubectl context and will create a minikube context.": "これにより既存の kubectl コンテキストが保持され、minikube コンテキストが䜜成されたす。", + "This will start the mount daemon and automatically mount files into minikube": "これによりマりントデヌモンが起動し、ファむルが minikube に自動的にマりントされたす", + "This will start the mount daemon and automatically mount files into minikube.": "これによりマりントデヌモンが起動し、ファむルが minikube に自動的にマりントされたす。", + "This {{.type}} is having trouble accessing https://{{.repository}}": "この {{.type}} は https://{{.repository}} アクセスにおける問題がありたす", + "Tip: To remove this root owned cluster, run: sudo {{.cmd}}": "ヒント: この root 所有クラスタヌの削陀コマンド: sudo {{.cmd}}", + "Tip: To remove this root owned cluster, run: sudo {{.cmd}} delete": "ヒント: この root 所有クラスタヌの削陀コマンド: sudo {{.cmd}} delete", + "To connect to this cluster, use: --context={{.name}}": "このクラスタヌに接続するためには、--context={{.name}} を䜿甚したす", + "To connect to this cluster, use: kubectl --context={{.name}}": "このクラスタヌに接続するためには、kubectl --context={{.name}} を䜿甚したす", + "To connect to this cluster, use: kubectl --context={{.name}}__1": "このクラスタヌに接続するためには、kubectl --context={{.name}} を䜿甚したす", + "To connect to this cluster, use: kubectl --context={{.profile_name}}": "このクラスタヌに接続するためには、kubectl --context={{.profile_name}} を䜿甚したす", + "To disable beta notices, run: 'minikube config set WantBetaUpdateNotification false'": "ベヌタ通知を無効にするためには、'minikube config set WantBetaUpdateNotification false' を実行したす", + "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "この通知を無効にするためには、'minikube config set WantUpdateNotification false' を実行したす\\n", + "To disable update notices in general, run: 'minikube config set WantUpdateNotification false'\\n": "党䜓的に曎新通知を無効にするためには、'minikube config set WantUpdateNotification false' を実行したす\\n", + "To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/": "倖郚むメヌゞを取埗するためには、プロキシヌを蚭定する必芁があるかも知れたせん: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/", + "To see addons list for other profiles use: `minikube addons -p name list`": "他のプロファむル甚のアドオン䞀芧を衚瀺するためには、`minikube addons -p name list` を実行したす", + "To set your Google Cloud project, run:\n\n\t\tgcloud config set project \u003cproject name\u003e\n\nor set the GOOGLE_CLOUD_PROJECT environment variable.": "Google Cloud プロゞェクトを蚭定するためには、\n\n\t\tgcloud config set project \u003cproject name\u003e\n\n を実行するか、環境倉数 GOOGLE_CLOUD_PROJECT を蚭定したす。", + "To start a cluster, run: \"{{.command}}\"": "クラスタヌを起動するためには、「{{.command}}」を実行したす", + "To start minikube with Hyper-V, Powershell must be in your PATH`": "Hyper-V で minikube を起動するためには、PATH 䞭に Powershell がなければなりたせん", + "To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:": "kubectl か minikube コマンドを独自のナヌザヌずしお䜿甚するためには、そのコマンドの再配眮が必芁な堎合がありたす。たずえば、独自の蚭定を䞊曞きするためには、以䞋を実行したす", "Troubleshooting Commands:": "トラブルシュヌト甚コマンド:", - "Try 'minikube delete' to force new SSL certificates to be installed": "", - "Try 'minikube delete', and disable any conflicting VPN or firewall software": "", - "Trying to delete invalid profile {{.profile}}": "", - "Unable to bind flags": "", - "Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "", - "Unable to enable dashboard": "", - "Unable to fetch latest version info": "", - "Unable to find control plane": "", - "Unable to generate docs": "", - "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "", - "Unable to get CPU info: {{.err}}": "", - "Unable to get bootstrapper: {{.error}}": "ブヌトストラッパを取埗できたせん。{{.error}}", - "Unable to get command runner": "", - "Unable to get control plane status: {{.error}}": "", - "Unable to get current user": "", - "Unable to get forwarded endpoint": "", - "Unable to get machine status": "", - "Unable to get runtime": "", - "Unable to kill mount process: {{.error}}": "", - "Unable to list profiles: {{.error}}": "", - "Unable to load cached images from config file.": "キャッシュに保存されおいるむメヌゞを構成ファむルから読み蟌むこずができたせん", - "Unable to load cached images: {{.error}}": "", - "Unable to load config: {{.error}}": "構成を読み蟌むこずができたせん。{{.error}}", - "Unable to load host": "", - "Unable to load profile: {{.error}}": "", - "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "「{{.kubernetes_version}}」を解析できたせん。{{.error}}", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", - "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", - "Unable to pick a default driver. Here is what was considered, in preference order:": "", - "Unable to pull images, which may be OK: {{.error}}": "むメヌゞを pull できたせんが、問題ありたせん。{{.error}}", + "Try 'minikube delete' to force new SSL certificates to be installed": "新しい SSL 蚌明曞を匷制むンストヌルするためには、'minikube delete' を詊しおください", + "Try 'minikube delete', and disable any conflicting VPN or firewall software": "'minikube delete' を詊しお、衝突しおいる VPN あるいはファむアりォヌル゜フトりェアを無効化しおください", + "Trying to delete invalid profile {{.profile}}": "無効なプロファむル {{.profile}} を削陀䞭", + "Unable to bind flags": "フラグをバむンドできたせん", + "Unable to create dedicated network, this might result in cluster IP change after restart: {{.error}}": "独立したネットワヌクの䜜成ができず、再起動埌にクラスタヌ IP が倉曎される結果になるかも知れたせん: {{.error}}", + "Unable to enable dashboard": "ダッシュボヌドが有効になりたせん", + "Unable to fetch latest version info": "最新バヌゞョン情報を取埗できたせん", + "Unable to find control plane": "コントロヌルプレヌンが芋぀かりたせん", + "Unable to generate docs": "ドキュメントを生成できたせん", + "Unable to generate the documentation. Please ensure that the path specified is a directory, exists \u0026 you have permission to write to it.": "ドキュメントを生成できたせん。指定されたパスが、曞き蟌み暩限が付䞎された既存のディレクトリヌかどうか確認しおください。", + "Unable to get CPU info: {{.err}}": "CPU 情報が取埗できたせん: {{.err}}", + "Unable to get bootstrapper: {{.error}}": "ブヌトストラッパヌを取埗できたせん: {{.error}}", + "Unable to get command runner": "コマンドランナヌを取埗できたせん", + "Unable to get control plane status: {{.error}}": "コントロヌルプレヌンの状態を取埗できたせん: {{.error}}", + "Unable to get current user": "珟圚のナヌザヌを取埗できたせん", + "Unable to get forwarded endpoint": "フォワヌドされた゚ンドポむントを取埗できたせん", + "Unable to get machine status": "マシンの状態を取埗できたせん", + "Unable to get runtime": "ランタむムを取埗できたせん", + "Unable to kill mount process: {{.error}}": "mount プロセスを停止できたせん: {{.error}}", + "Unable to list profiles: {{.error}}": "プロファむルのリストを䜜成できたせん: {{.error}}", + "Unable to load cached images from config file.": "キャッシュされたむメヌゞを蚭定ファむルから読み蟌めたせん。", + "Unable to load cached images: {{.error}}": "キャッシュされたむメヌゞを読み蟌めたせん: {{.error}}", + "Unable to load config: {{.error}}": "蚭定を読み蟌めたせん: {{.error}}", + "Unable to load host": "ホストを読み蟌めたせん", + "Unable to load profile: {{.error}}": "プロファむルを読み蟌めたせん: {{.error}}", + "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "「{{.kubernetes_version}}」を解析できたせん: {{.error}}", + "Unable to parse default Kubernetes version from constants: {{.error}}": "定数からデフォルトの Kubernetes バヌゞョンを解析できたせん: {{.error}}", + "Unable to parse memory '{{.memory}}': {{.error}}": "メモリヌ '{{.memory}}' を解析できたせん: {{.error}}", + "Unable to parse oldest Kubernetes version from constants: {{.error}}": "定数から最叀の Kubernetes バヌゞョンを解析できたせん: {{.error}}", + "Unable to pick a default driver. Here is what was considered, in preference order:": "デフォルトドラむバヌを採甚できたせんでした。こちらが可胜性の高い順に考えられる事です:", + "Unable to pull images, which may be OK: {{.error}}": "むメヌゞを取埗できたせんが、問題ありたせん。{{.error}}", "Unable to push cached images: {{.error}}": "", "Unable to remove machine directory": "", "Unable to restart cluster, will reset it: {{.error}}": "", @@ -797,57 +801,57 @@ "Using image {{.registry}}{{.image}} (global image repository)": "むメヌゞ {{.registry}}{{.image}}(グロヌバルむメヌゞリポゞトリ) を䜿甚しおいたす", "Using the '{{.runtime}}' runtime with the 'none' driver is an untested configuration!": "「 none 」ドラむバで「 {{.runtime}} 」ランタむムを䜿甚するこずは、テストされおいない蚭定です", "Using the {{.driver}} driver based on existing profile": "プロフィヌルを元に、 {{.driver}} ドラむバを䜿甚したす", - "Using the {{.driver}} driver based on user configuration": "蚭定を元に、 {{.driver}} ドラむバを䜿甚したす", - "VM driver is one of: %v": "VM ドラむバは次のいずれかです。%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}}": "怜蚌䞭に、ディスクのサむズ {{.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.": "Kubernetes の蚭定ファむルのクラスタの IP アドレスを確認したす", + "Using the {{.driver}} driver based on user configuration": "ナヌザヌの蚭定に基づいお {{.driver}} ドラむバヌを䜿甚したす", + "VM driver is one of: %v": "VM ドラむバヌは次のいずれかです: %v", + "Valid components are: {{.valid_extra_opts}}": "有効なコンポヌネント: {{.valid_extra_opts}}", + "Validate your KVM networks. Run: virt-host-validate and then virsh net-list --all": "virt-host-validate 実行埌に virsh net-list --all を実行しお KVM ネットワヌクを怜蚌しおください", + "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "怜蚌機胜がディスクのサむズ '{{.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...": "Kubernetes コンポヌネントを怜蚌しおいたす...", - "Verifying dashboard health ...": "ダッシュボヌドの状態を確認しおいたす...", - "Verifying proxy health ...": "プロキシの状態を確認しおいたす...", - "Verifying {{.addon_name}} addon...": "{{.addon_name}} アドオンを怜蚌䞭です...", + "Verifying dashboard health ...": "ダッシュボヌドの状態を怜蚌しおいたす...", + "Verifying proxy health ...": "プロキシヌの状態を怜蚌しおいたす...", + "Verifying {{.addon_name}} addon...": "{{.addon_name}} アドオンを怜蚌しおいたす...", "Version: {{.version}}": "バヌゞョン: {{.version}}", - "VirtualBox and Hyper-V are having a conflict. Use '--driver=hyperv' or disable Hyper-V using: 'bcdedit /set hypervisorlaunchtype off'": "VirtualBox ず Hyper-V が衝突しおいたす。「 --driver=hyperv 」を䜿甚するか、以䞋のコマンドで Hyper-V を無効にしおください。 bcdedit /set hypervisorlaunchtype off", - "VirtualBox cannot create a network, probably because it conflicts with an existing network that minikube no longer knows about. Try running 'minikube delete'": "VirtualBox がネットワヌクを䜜成できたせん。おそらく minikube が把握しおいないネットワヌクず衝突しおいたす。「 minikube delete 」を実行しおみおください", - "VirtualBox is broken. Disable real-time anti-virus software, reboot, and reinstall VirtualBox if the problem continues.": "VirtualBox が故障しおいたす。アンチりィルス゜フトを無効にしお、リブヌトしおください。もし問題が続くようであれば、 VirtualBox を再むンストヌルしおください", - "VirtualBox is broken. Reinstall VirtualBox, reboot, and run 'minikube delete'.": "VirtualBox が故障しおいたす。 VirtualBox を再むンストヌルしお、リブヌトした埌に、「 minikube delete 」を実行しおください", - "VirtualBox is unable to find its network interface. Try upgrading to the latest release and rebooting.": "VirtualBox はネットワヌクむンタヌフェむスを芋぀けるこずができたせん。最新のリリヌスぞずアップデヌトしお、リブヌトしおみおください", - "Virtualization support is disabled on your computer. If you are running minikube within a VM, try '--driver=docker'. Otherwise, consult your systems BIOS manual for how to enable virtualization.": "このコンピュヌタでは仮想化のサポヌトが無効化されおいたす。もし VM で minikube を動かすのであれば、「 --driver=docker 」を詊しおみおください。そうでなければ、仮想化を有効にする方法を BIOS の説明曞を調べおください", - "Wait failed: {{.error}}": "埅機するのに倱敗したした。{{.error}}", - "Wait until Kubernetes core services are healthy before exiting": "Kubernetes コアサヌビスが正垞になるたで埅機しおから終了しおください", - "Want kubectl {{.version}}? Try 'minikube kubectl -- get pods -A'": "", - "Where to root the NFS Shares, defaults to /nfsshares (hyperkit driver only)": "NFS 共有のルヌトに指定する堎所。デフォルトは /nfsshareshyperkit ドラむバのみ", - "Whether to use external switch over Default Switch if virtual switch not explicitly specified. (hyperv driver only)": "仮想スむッチが明瀺的に蚭定されおいない堎合、デフォルトのではなく倖郚のスむッチを䜿甚したす。Hyper-V ドラむバのみ", - "With --network-plugin=cni, you will need to provide your own CNI. See --cni flag as a user-friendly alternative": "", - "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}).": "", - "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}). Please see {{.documentation_url}} for more details": "プロキシを䜿甚しようずしおいたすが、珟圚の NO_PROXY 環境に minikube IP{{.ip_address}}は含たれおいたせん。詳现に぀いおは、{{.documentation_url}} をご芧ください", - "You are trying to run a windows .exe binary inside WSL. For better integration please use a Linux binary instead (Download at https://minikube.sigs.k8s.io/docs/start/.). Otherwise if you still want to do this, you can do it using --force": "", - "You are trying to run amd64 binary on M1 system. Please consider running darwin/arm64 binary instead (Download at {{.url}}.)": "", - "You can also use 'minikube kubectl -- get pods' to invoke a matching version": "「 minikube kubectl -- get pods 」で、䞀臎するバヌゞョンを衚瀺するこずができたす", - "You can delete them using the following command(s):": "以䞋のコマンドで削陀するこずができたす", - "You can delete them using the following command(s): ": "", - "You can force an unsupported Kubernetes version via the --force flag": "", - "You cannot add or remove extra disks for an existing minikube cluster. Please first delete the cluster.": "", - "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 を手動で削陀するこずが必芁な可胜性がありたす", - "You may need to stop the Hyper-V Manager and run `minikube delete` again.": "Hyper-V マネヌゞャを停止しお、「 minikube delete 」を再実行する必芁があるかもしれたせん ", - "You might be using an amd64 version of minikube on a M1 Mac, use the arm64 version of minikube instead": "", - "You must specify a service name": "サヌビスの名前を明瀺する必芁がありたす", - "Your GCP credentials will now be mounted into every pod created in the {{.name}} cluster.": "", - "Your cgroup does not allow setting memory.": "", - "Your host does not support KVM virtualization. Ensure that qemu-kvm is installed, and run 'virt-host-validate' to debug the problem": "ホストマシヌンは KVM 仮想化をサポヌトしおいたせん。 qemu-kvm がむンストヌルされおいるこずを確認しおください。「 virt-host-validate 」を実行しお、デバッグしおください", - "Your host does not support virtualization. If you are running minikube within a VM, try '--driver=docker'. Otherwise, enable virtualization in your BIOS": "ホストマシヌンは仮想化をサポヌトしおいたせん。もし VM 内で minikube を動かすのであれば、「 --driver=docker 」を詊しおください。そうでなければ、 BIOS で仮想化を有効にしおください", - "Your host is failing to route packets to the minikube VM. If you have VPN software, try turning it off or configuring it so that it does not re-route traffic to the VM IP. If not, check your VM environment routing options.": "ホストマシヌンが minikube の VM にパケットをルヌティングするこずができおいたせん。もし VPN を有効しおいるのであれば、VPN を無効にする、あるいは VM の IP アドレスに再ルヌティングしないように蚭定しおください。もし VPN を䜿甚しおいないのであれば、 VM 環境のルヌティング呚りのオプションを確認しおください", - "Your minikube config refers to an unsupported driver. Erase ~/.minikube, and try again.": "今の minikube の蚭定はサポヌトされおいないドラむバヌを参照しおいたす。 ~/.minikube を削陀しお、もう䞀床詊しおください", - "Your minikube vm is not running, try minikube start.": "minikube の VM が動いおいたせん。以䞋のコマンドを詊しおみおください。 minikube start", - "[WARNING] For full functionality, the 'csi-hostpath-driver' addon requires the 'volumesnapshots' addon to be enabled.\n\nYou can enable 'volumesnapshots' addon by running: 'minikube addons enable volumesnapshots'\n": "", + "VirtualBox and Hyper-V are having a conflict. Use '--driver=hyperv' or disable Hyper-V using: 'bcdedit /set hypervisorlaunchtype off'": "VirtualBox ず Hyper-V が衝突しおいたす。'--driver=hyperv' を䜿甚するか、次のコマンドで Hyper-V を無効にしおください: 'bcdedit /set hypervisorlaunchtype off'", + "VirtualBox cannot create a network, probably because it conflicts with an existing network that minikube no longer knows about. Try running 'minikube delete'": "VirtualBox がネットワヌクを䜜成できたせん。おそらく minikube が最早把握しおいない既存ネットワヌクず衝突しおいたす。'minikube delete' を実行しおみおください", + "VirtualBox is broken. Disable real-time anti-virus software, reboot, and reinstall VirtualBox if the problem continues.": "VirtualBox が故障しおいたす。問題が解決しない堎合、リアルタむムのアンチりィルス゜フトを無効化し、OS を再起動しお、VirtualBox を再むンストヌルしおください。", + "VirtualBox is broken. Reinstall VirtualBox, reboot, and run 'minikube delete'.": "VirtualBox が故障しおいたす。 VirtualBox を再むンストヌルしお OS を再起動し、'minikube delete' を実行しおください。", + "VirtualBox is unable to find its network interface. Try upgrading to the latest release and rebooting.": "VirtualBox はネットワヌクむンタヌフェむスを怜出できたせん。最新版にアップデヌトしお、OS を再起動しおみおください。", + "Virtualization support is disabled on your computer. If you are running minikube within a VM, try '--driver=docker'. Otherwise, consult your systems BIOS manual for how to enable virtualization.": "このコンピュヌタヌでは仮想化サポヌトが無効です。VM 内で minikube を実行する堎合、'--driver=docker' を詊しおみおください。そうでなければ、仮想化を有効化する方法を BIOS の説明曞を調べおください。", + "Wait failed: {{.error}}": "埅機に倱敗したした: {{.error}}", + "Wait until Kubernetes core services are healthy before exiting": "終了する前に、Kubernetes コアサヌビスが正垞になるたで埅機しおください", + "Want kubectl {{.version}}? Try 'minikube kubectl -- get pods -A'": "kubectl {{.version}} が必芁ですか 'minikube kubectl -- get pods -A' を詊しおみおください", + "Where to root the NFS Shares, defaults to /nfsshares (hyperkit driver only)": "NFS 共有のルヌトに指定する堎所。デフォルトは /nfsshares (hyperkit ドラむバヌのみ)", + "Whether to use external switch over Default Switch if virtual switch not explicitly specified. (hyperv driver only)": "仮想スむッチが明瀺的に蚭定されおいない堎合、Default Switch 越しに倖郚のスむッチを䜿甚するかどうか (Hyper-V ドラむバヌのみ)。", + "With --network-plugin=cni, you will need to provide your own CNI. See --cni flag as a user-friendly alternative": "--network-plugin=cni を甚いる堎合、自身の CNI を提䟛する必芁がありたす。䟿利な代替策ずしお --cni フラグを参照しおください", + "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}).": "プロキシヌを䜿甚しようずしおいたすが、minikube の IP ({{.ip_address}}) が NO_PROXY 環境倉数に含たれおいたせん。", + "You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP ({{.ip_address}}). Please see {{.documentation_url}} for more details": "プロキシヌを䜿甚しようずしおいたすが、minikube の IP ({{.ip_address}}) が NO_PROXY 環境倉数に含たれおいたせん。詳现は {{.documentation_url}} を参照しおください", + "You are trying to run a windows .exe binary inside WSL. For better integration please use a Linux binary instead (Download at https://minikube.sigs.k8s.io/docs/start/.). Otherwise if you still want to do this, you can do it using --force": "WSL 内で Windows の .exe バむナリヌを実行しようずしおいたす。これより優れた統合ずしお、Linux バむナリヌを代わりに䜿甚しおください (https://minikube.sigs.k8s.io/docs/start/ でダりンロヌドしおください)。そうではなく、匕き続きこのバむナリヌを䜿甚したい堎合、--force オプションを䜿甚しおください", + "You are trying to run amd64 binary on M1 system. Please consider running darwin/arm64 binary instead (Download at {{.url}}.)": "M1 システム䞊で amd64 バむナリヌを実行しようずしおいたす。darwin/arm64 バむナリヌを代わりに実行するこずをご怜蚎ください ({{.url}} でダりンロヌドしおください)。", + "You can also use 'minikube kubectl -- get pods' to invoke a matching version": "䞀臎するバヌゞョンを実行するために、'minikube kubectl -- get pods' も䜿甚できたす", + "You can delete them using the following command(s):": "次のコマンドで削陀できたす:", + "You can delete them using the following command(s): ": "次のコマンドで削陀できたす: ", + "You can force an unsupported Kubernetes version via the --force flag": "--force フラグを介しお、サポヌト倖の Kubernetes バヌゞョンを匷制的に䜿甚できたす", + "You cannot add or remove extra disks for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスタヌに察しお、倖郚ディスクを远加たたは削陀できたせん。最初にクラスタヌを削陀しおください。", + "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスタヌに察しお、CPU を倉曎できたせん。最初にクラスタヌを削陀しおください。", + "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスタヌに察しお、ディスクサむズを倉曎できたせん。最初にクラスタヌを削陀しおください。", + "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスタヌに察しお、メモリサむズを倉曎できたせん。最初にクラスタヌを削陀しおください。", + "You 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.": "関連する JSON がないサヌビスアカりントで認蚌しおいたす。GCP Auth は、䜜業を続行するために JSON ファむル付きクレデンシャルを芁求したす。むメヌゞ取埗シヌクレットがむンポヌトされたした。", + "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "CNI 無効が遞択されたしたが、「{{.name}}」コンテナランタむムは 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": "「virtualbox」ドラむバヌが遞択されたしたが、より良い遞択肢がありたす!\n性胜ず機胜の向䞊のため、別のドラむバヌ䜿甚を怜蚎しおください: {{.drivers}}\n\nこの譊告を衚瀺させないためには、以䞋を実行しおください:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nminikube ドラむバヌに぀いおもっず知るためには、https://minikube.sigs.k8s.io/docs/drivers/ を確認しおください。\nベンチマヌクに぀いおは https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/ を確認しおください\n\n", + "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "ハむパヌバむザヌから「{{.name}}」VM を手動で削陀するこずが必芁かもしれたせん", + "You may need to stop the Hyper-V Manager and run `minikube delete` again.": "Hyper-V マネヌゞャヌを停止しお、'minikube delete' を再床実行する必芁があるかもしれたせん。", + "You might be using an amd64 version of minikube on a M1 Mac, use the arm64 version of minikube instead": "M1 Mac 䞊で amd64 版 minikube を䜿甚しおいるかもしれたせん。代わりに arm64 版 minikube を䜿甚しおください", + "You must specify a service name": "サヌビス名を指定する必芁がありたす", + "Your GCP credentials will now be mounted into every pod created in the {{.name}} cluster.": "あなたの GCP クレデンシャルは、{{.name}} クラスタヌに䜜成された各 Pod にマりントされたす。", + "Your cgroup does not allow setting memory.": "あなたの cgroup ではメモリヌの蚭定ができたせん。", + "Your host does not support KVM virtualization. Ensure that qemu-kvm is installed, and run 'virt-host-validate' to debug the problem": "ホストが KVM 仮想化をサポヌトしおいたせん。 qemu-kvm がむンストヌルされおいるこずを確認し、'virt-host-validate' を実行しお問題を調査しおください", + "Your host does not support virtualization. If you are running minikube within a VM, try '--driver=docker'. Otherwise, enable virtualization in your BIOS": "ホストが仮想化をサポヌトしおいたせん。VM 内で minikube を動かしおいる堎合、'--driver=docker' を詊しおください。そうでなければ、 BIOS で仮想化を有効化しおください", + "Your host is failing to route packets to the minikube VM. If you have VPN software, try turning it off or configuring it so that it does not re-route traffic to the VM IP. If not, check your VM environment routing options.": "ホストが minikube の VM ぞのパケットルヌティングに倱敗しおいたす。VPN ゜フトりェアがある堎合、VPN を無効にするか、VM の IP アドレスにトラフィックを再ルヌティングしないように VPN を蚭定しおください。VPN ゜フトりェアがない堎合、VM 環境のルヌティングオプションを確認しおください。", + "Your minikube config refers to an unsupported driver. Erase ~/.minikube, and try again.": "minikube 蚭定がサポヌトされおいないドラむバヌを参照しおいたす。 ~/.minikube を削陀しお、もう䞀床詊しおください。", + "Your minikube vm is not running, try minikube start.": "minikube の VM が実行されおいたせん。minikube start を詊しおみおください。", + "[WARNING] For full functionality, the 'csi-hostpath-driver' addon requires the 'volumesnapshots' addon to be enabled.\n\nYou can enable 'volumesnapshots' addon by running: 'minikube addons enable volumesnapshots'\n": "[è­Šå‘Š] フル機胜のために、'csi-hostpath-driver' アドオンが 'volumesnapshots' アドオンの有効化を芁求しおいたす。\n\n'minikube addons enable volumesnapshots' を実行しお 'volumesnapshots' を有効化できたす\n", "[{{.id}}] {{.msg}} {{.error}}": "[{{.id}}] {{.msg}} {{.error}}", "\\\"minikube cache\\\" will be deprecated in upcoming versions, please switch to \\\"minikube image load\\\"": "", "adding node": "ノヌドを远加しおいたす", diff --git a/translations/ko.json b/translations/ko.json index dc91ee78cd1e..42cd2d29b6d8 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -163,6 +163,7 @@ "Documentation: {{.url}}": "묞서: {{.url}}", "Done! kubectl is now configured to use \"{{.name}}\"": "끝났습니닀! 읎제 kubectl 읎 \"{{.name}}\" 륌 사용할 수 있도록 섀정되었습니닀", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "끝났습니닀! kubectl읎 \"{{.name}}\" 큎러슀터와 \"{{.ns}}\" 넀임슀페읎슀륌 Ʞ볞적윌로 사용하도록 구성되었습니닀.", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "닀욎로드가 성공하였습니닀!", "Downloading Kubernetes {{.version}} preload ...": "쿠버넀티슀 {{.version}} 을 닀욎로드 쀑 ...", "Downloading VM boot image ...": "가상 ëšžì‹  부튞 읎믞지 닀욎로드 쀑 ...", @@ -337,7 +338,7 @@ "Have you set up libvirt correctly?": "libvirt 섀정을 알맞게 하셚습니까?", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", @@ -346,6 +347,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -594,9 +596,11 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "{{.cluster}} 큎러슀터의 {{.name}} 컚튞례 플레읞 녞드륌 시작하는 쀑", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting node": "녞드륌 시작하는 쀑", "Starting node {{.name}} in cluster {{.cluster}}": "{{.cluster}} 큎러슀터의 {{.name}} 녞드륌 시작하는 쀑", "Starting tunnel for service {{.service}}.": "{{.service}} 서비슀의 터널을 시작하는 쀑", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "로컬 쿠버넀티슀 큎러슀터륌 시작합니닀", "Starts a local kubernetes cluster": "로컬 쿠버넀티슀 큎러슀터륌 시작합니닀", "Starts a node.": "녞드륌 시작합니닀", @@ -699,6 +703,7 @@ "The value passed to --format is invalid: {{.error}}": "", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "", "This control plane is not running! (state={{.state}})": "", @@ -748,9 +753,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": " \"{{.kubernetes_version}}\" 륌 파싱할 수 없습니닀: {{.error}}", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to push cached images: {{.error}}": "", "Unable to remove machine directory": "", diff --git a/translations/pl.json b/translations/pl.json index 1779098c3052..11a68e7099c8 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -163,6 +163,7 @@ "Done! kubectl is now configured to use \"{{.name}}": "Gotowe! kubectl jest skonfigurowany do uÅŒycia z \"{{.name}}\".", "Done! kubectl is now configured to use \"{{.name}}\"": "Gotowe! kubectl jest skonfigurowany do uÅŒycia z \"{{.name}}\".", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "Pobieranie zakończone!", "Downloading Kubernetes {{.version}} preload ...": "", "Downloading VM boot image ...": "Pobieranie obrazu maszyny wirtualnej ...", @@ -323,7 +324,7 @@ "Have you set up libvirt correctly?": "Czy napewno skonfigurowano libvirt w sposób prawidłowy?", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", @@ -332,6 +333,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -594,8 +596,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a local kubernetes cluster": "Uruchamianie lokalnego klastra kubernetesa", "Starts a node.": "", @@ -709,6 +712,7 @@ "The {{.driver_name}} driver should not be used with root privileges.": "{{.driver_name}} nie powinien być uÅŒywany z przywilejami root'a.", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "", "This control plane is not running! (state={{.state}})": "", @@ -758,9 +762,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to push cached images: {{.error}}": "", "Unable to remove machine directory": "", diff --git a/translations/strings.txt b/translations/strings.txt index 2d6ca9a7d26e..d3010ce7b430 100644 --- a/translations/strings.txt +++ b/translations/strings.txt @@ -147,6 +147,7 @@ "Docs have been saved at - {{.path}}": "", "Documentation: {{.url}}": "", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "", "Downloading Kubernetes {{.version}} preload ...": "", "Downloading VM boot image ...": "", @@ -294,7 +295,7 @@ "Group ID: {{.groupID}}": "", "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", "If present, writes to the provided file instead of stdout.": "", @@ -303,6 +304,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -545,8 +547,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a node.": "", "Starts an existing stopped node in a cluster.": "", @@ -646,6 +649,7 @@ "The value passed to --format is invalid: {{.error}}": "", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "", "This control plane is not running! (state={{.state}})": "", @@ -692,9 +696,7 @@ "Unable to load host": "", "Unable to load profile: {{.error}}": "", "Unable to parse \"{{.kubernetes_version}}\": {{.error}}": "", - "Unable to parse default Kubernetes version from constants: {{.error}}": "", "Unable to parse memory '{{.memory}}': {{.error}}": "", - "Unable to parse oldest Kubernetes version from constants: {{.error}}": "", "Unable to pick a default driver. Here is what was considered, in preference order:": "", "Unable to push cached images: {{.error}}": "", "Unable to remove machine directory": "", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index 4912225afd7b..2f8fc7147a8c 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -188,6 +188,7 @@ "Done! kubectl is now configured to use \"{{.name}}\"": "完成kubectl 已经配眮至 \"{{.name}}\"", "Done! kubectl is now configured to use \"{{.name}}\" cluster and \"{{.ns}}\" namespace by default": "", "Done! kubectl is now configured to use {{.name}}": "完成kubectl已经配眮至{{.name}}", + "Done! minikube is ready without Kubernetes!": "", "Download complete!": "䞋蜜完成", "Downloading Kubernetes {{.version}} preload ...": "", "Downloading VM boot image ...": "正圚䞋蜜 VM boot image...", @@ -393,7 +394,7 @@ "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)": "向 minikube 䞭的访客隐藏管理皋序筟名仅限 kvm2 驱劚皋序", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", "Hyperkit is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --vm-driver": "Hyperkit 已损坏。升级到最新的 hyperkit 版本以及/或者 Docker 桌面版。或者䜠可以通过 --vm-driver 切换其他选项", - "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --driver": "", + "Hyperkit networking is broken. Try disabling Internet Sharing: System Preference \u003e Sharing \u003e Internet Sharing. \nAlternatively, you can try upgrading to the latest hyperkit version, or using an alternate driver.": "", "Hyperkit networking is broken. Upgrade to the latest hyperkit version and/or Docker for Desktop. Alternatively, you may choose an alternate --vm-driver": "Hyperkit 的眑络挂了。升级到最新的 hyperkit 版本以及/或者 Docker 桌面版。或者䜠可以通过 --vm-driver 切换其他选项", "IP Address to use to expose ports (docker and podman driver only)": "", "IP address (ssh driver only)": "", @@ -403,6 +404,7 @@ "If set, download tarball of preloaded images if available to improve start time. Defaults to true.": "", "If set, force the container runtime to use systemd as cgroup manager. Defaults to false.": "", "If set, install addons. Defaults to true.": "", + "If set, minikube VM/container will start without starting or configuring Kubernetes. (only works on new clusters)": "", "If set, pause all namespaces": "", "If set, unpause all namespaces": "", "If the above advice does not help, please let us know:": "", @@ -676,8 +678,9 @@ "Specifying extra disks is currently only supported for the following drivers: {{.supported_drivers}}. If you can contribute to add this feature, please create a PR.": "", "StartHost failed, but will try again: {{.error}}": "", "Starting control plane node {{.name}} in cluster {{.cluster}}": "", - "Starting node {{.name}} in cluster {{.cluster}}": "", + "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting worker node {{.name}} in cluster {{.cluster}}": "", "Starts a local Kubernetes cluster": "", "Starts a local kubernetes cluster": "启劚本地 kubernetes 集矀", "Starts a node.": "", @@ -798,6 +801,7 @@ "There's a new version for '{{.driver_executable}}'. Please consider upgrading. {{.documentation_url}}": "“{{.driver_executable}}”有䞀䞪新版本。请考虑升级。{{.documentation_url}}", "These --extra-config parameters are invalid: {{.invalid_extra_opts}}": "", "These changes will take effect upon a minikube delete and then a minikube start": "", + "Things to try without Kubernetes ...": "", "This addon does not have an endpoint defined for the 'addons open' command.\nYou can add one by annotating a service with the label {{.labelName}}:{{.addonName}}": "", "This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true": "歀操䜜还可通过讟眮环境变量 CHANGE_MINIKUBE_NONE_USER=true 自劚完成", "This control plane is not running! (state={{.state}})": "",