diff --git a/.github/ISSUE_TEMPLATE/__en-US.md b/.github/ISSUE_TEMPLATE/__en-US.md index f917021a78..0e78dda079 100644 --- a/.github/ISSUE_TEMPLATE/__en-US.md +++ b/.github/ISSUE_TEMPLATE/__en-US.md @@ -2,13 +2,15 @@ name: English about: Report an issue --- -**Steps to reproduce the issue:** + +**Steps to reproduce the issue:** 1. 2. 3. -**Full output of failed command:** + +**Full output of failed command:** diff --git a/README.md b/README.md index 75423b7474..c9f85e00a8 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ [![BuildStatus Widget]][BuildStatus Result] [![GoReport Widget]][GoReport Status] +[](https://github.com/kubernetes/minikube/releases/latest) +[](https://github.com/kubernetes/minikube/releases/latest) + [BuildStatus Result]: https://travis-ci.org/kubernetes/minikube [BuildStatus Widget]: https://travis-ci.org/kubernetes/minikube.svg?branch=master diff --git a/cmd/minikube/cmd/dashboard.go b/cmd/minikube/cmd/dashboard.go index c235adbab2..e3c9e93b6b 100644 --- a/cmd/minikube/cmd/dashboard.go +++ b/cmd/minikube/cmd/dashboard.go @@ -63,10 +63,8 @@ var dashboardCmd = &cobra.Command{ } } - kubectl, err := exec.LookPath("kubectl") - if err != nil { - exit.WithCodeT(exit.NoInput, "kubectl not found in PATH, but is required for the dashboard. Installation guide: https://kubernetes.io/docs/tasks/tools/install-kubectl/") - } + kubectlVersion := co.Config.KubernetesConfig.KubernetesVersion + var err error // Check dashboard status before enabling it dashboardAddon := assets.Addons["dashboard"] @@ -90,7 +88,7 @@ var dashboardCmd = &cobra.Command{ } out.ErrT(out.Launch, "Launching proxy ...") - p, hostPort, err := kubectlProxy(kubectl, cname) + p, hostPort, err := kubectlProxy(kubectlVersion, cname) if err != nil { exit.WithError("kubectl proxy", err) } @@ -124,10 +122,17 @@ var dashboardCmd = &cobra.Command{ } // kubectlProxy runs "kubectl proxy", returning host:port -func kubectlProxy(path string, contextName string) (*exec.Cmd, string, error) { +func kubectlProxy(kubectlVersion string, contextName string) (*exec.Cmd, string, error) { // port=0 picks a random system port - cmd := exec.Command(path, "--context", contextName, "proxy", "--port=0") + kubectlArgs := []string{"--context", contextName, "proxy", "--port=0"} + + var cmd *exec.Cmd + if kubectl, err := exec.LookPath("kubectl"); err == nil { + cmd = exec.Command(kubectl, kubectlArgs...) + } else if cmd, err = KubectlCommand(kubectlVersion, kubectlArgs...); err != nil { + return nil, "", err + } stdoutPipe, err := cmd.StdoutPipe() if err != nil { diff --git a/cmd/minikube/cmd/kubectl.go b/cmd/minikube/cmd/kubectl.go index f4867b45e0..3eca6dfb06 100644 --- a/cmd/minikube/cmd/kubectl.go +++ b/cmd/minikube/cmd/kubectl.go @@ -43,17 +43,12 @@ minikube kubectl -- get pods --namespace kube-system`, co := mustload.Healthy(ClusterFlagValue()) version := co.Config.KubernetesConfig.KubernetesVersion - if version == "" { - version = constants.DefaultKubernetesVersion - } - - path, err := node.CacheKubectlBinary(version) + c, err := KubectlCommand(version, args...) if err != nil { out.ErrLn("Error caching kubectl: %v", err) } glog.Infof("Running %s %v", path, args) - c := exec.Command(path, args...) c.Stdin = os.Stdin c.Stdout = os.Stdout c.Stderr = os.Stderr @@ -70,3 +65,17 @@ minikube kubectl -- get pods --namespace kube-system`, } }, } + +// KubectlCommand will return kubectl command with a version matching the cluster +func KubectlCommand(version string, args ...string) (*exec.Cmd, error) { + if version == "" { + version = constants.DefaultKubernetesVersion + } + + path, err := node.CacheKubectlBinary(version) + if err != nil { + return nil, err + } + + return exec.Command(path, args...), nil +} diff --git a/cmd/minikube/cmd/node_add.go b/cmd/minikube/cmd/node_add.go index b923b9e935..ec97540cf9 100644 --- a/cmd/minikube/cmd/node_add.go +++ b/cmd/minikube/cmd/node_add.go @@ -18,10 +18,8 @@ package cmd import ( "github.com/spf13/cobra" - "github.com/spf13/pflag" "k8s.io/minikube/pkg/minikube/config" "k8s.io/minikube/pkg/minikube/driver" - "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/mustload" "k8s.io/minikube/pkg/minikube/node" "k8s.io/minikube/pkg/minikube/out" @@ -56,7 +54,7 @@ var nodeAddCmd = &cobra.Command{ } if err := node.Add(cc, n); err != nil { - exit.WithError("Error adding node to cluster", err) + maybeDeleteAndRetry(*cc, n, nil, err) } out.T(out.Ready, "Successfully added {{.name}} to {{.cluster}}!", out.V{"name": name, "cluster": cc.Name}) @@ -64,13 +62,10 @@ var nodeAddCmd = &cobra.Command{ } func init() { + // TODO(https://github.com/kubernetes/minikube/issues/7366): We should figure out which minikube start flags to actually import nodeAddCmd.Flags().BoolVar(&cp, "control-plane", false, "If true, the node added will also be a control plane in addition to a worker.") nodeAddCmd.Flags().BoolVar(&worker, "worker", true, "If true, the added node will be marked for work. Defaults to true.") - //We should figure out which of these flags to actually import - startCmd.Flags().Visit( - func(f *pflag.Flag) { - nodeAddCmd.Flags().AddFlag(f) - }, - ) + nodeAddCmd.Flags().Bool(deleteOnFailure, false, "If set, delete the current cluster if start fails and try again. Defaults to false.") + nodeCmd.AddCommand(nodeAddCmd) } diff --git a/cmd/minikube/cmd/node_start.go b/cmd/minikube/cmd/node_start.go index 285de93d7b..3b2782263b 100644 --- a/cmd/minikube/cmd/node_start.go +++ b/cmd/minikube/cmd/node_start.go @@ -49,12 +49,15 @@ var nodeStartCmd = &cobra.Command{ exit.WithError("retrieving node", err) } - // Start it up baby - node.Start(*cc, *n, nil, false) + _, err = node.Start(*cc, *n, nil, false) + if err != nil { + maybeDeleteAndRetry(*cc, *n, nil, err) + } }, } func init() { nodeStartCmd.Flags().String("name", "", "The name of the node to start") + nodeStartCmd.Flags().Bool(deleteOnFailure, false, "If set, delete the current cluster if start fails and try again. Defaults to false.") nodeCmd.AddCommand(nodeStartCmd) } diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index d2147ee98f..651eb55099 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -124,6 +124,7 @@ const ( natNicType = "nat-nic-type" nodes = "nodes" preload = "preload" + deleteOnFailure = "delete-on-failure" ) var ( @@ -177,6 +178,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(deleteOnFailure, false, "If set, delete the current cluster if start fails and try again. Defaults to false.") } // initKubernetesFlags inits the commandline flags for kubernetes related options @@ -353,7 +355,10 @@ func runStart(cmd *cobra.Command, args []string) { } } - kubeconfig := node.Start(cc, n, existingAddons, true) + kubeconfig, err := node.Start(cc, n, existingAddons, true) + if err != nil { + kubeconfig = maybeDeleteAndRetry(cc, n, existingAddons, err) + } numNodes := viper.GetInt(nodes) if numNodes == 1 && existing != nil { @@ -371,6 +376,7 @@ func runStart(cmd *cobra.Command, args []string) { ControlPlane: false, KubernetesVersion: cc.KubernetesConfig.KubernetesVersion, } + out.Ln("") // extra newline for clarity on the command line err := node.Add(&cc, n) if err != nil { exit.WithError("adding node", err) @@ -432,22 +438,12 @@ func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName st return nil } - j, err := exec.Command(path, "version", "--client", "--output=json").Output() + gitVersion, err := kubectlVersion(path) if err != nil { - return errors.Wrap(err, "exec") + return err } - cv := struct { - ClientVersion struct { - GitVersion string `json:"gitVersion"` - } `json:"clientVersion"` - }{} - err = json.Unmarshal(j, &cv) - if err != nil { - return errors.Wrap(err, "unmarshal") - } - - client, err := semver.Make(strings.TrimPrefix(cv.ClientVersion.GitVersion, version.VersionPrefix)) + client, err := semver.Make(strings.TrimPrefix(gitVersion, version.VersionPrefix)) if err != nil { return errors.Wrap(err, "client semver") } @@ -466,6 +462,63 @@ func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName st return nil } +func maybeDeleteAndRetry(cc config.ClusterConfig, n config.Node, existingAddons map[string]bool, originalErr error) *kubeconfig.Settings { + if viper.GetBool(deleteOnFailure) { + out.T(out.Warning, "Node {{.name}} failed to start, deleting and trying again.", out.V{"name": n.Name}) + // Start failed, delete the cluster and try again + profile, err := config.LoadProfile(cc.Name) + if err != nil { + out.ErrT(out.Meh, `"{{.name}}" profile does not exist, trying anyways.`, out.V{"name": cc.Name}) + } + + err = deleteProfile(profile) + if err != nil { + out.WarningT("Failed to delete cluster {{.name}}, proceeding with retry anyway.", out.V{"name": cc.Name}) + } + + var kubeconfig *kubeconfig.Settings + for _, v := range cc.Nodes { + k, err := node.Start(cc, v, existingAddons, v.ControlPlane) + if v.ControlPlane { + kubeconfig = k + } + if err != nil { + // Ok we failed again, let's bail + exit.WithError("Start failed after cluster deletion", err) + } + } + return kubeconfig + } + // Don't delete the cluster unless they ask + exit.WithError("startup failed", originalErr) + return nil +} + +func kubectlVersion(path string) (string, error) { + j, err := exec.Command(path, "version", "--client", "--output=json").Output() + if err != nil { + // really old kubernetes clients did not have the --output parameter + b, err := exec.Command(path, "version", "--client", "--short").Output() + if err != nil { + return "", errors.Wrap(err, "exec") + } + s := strings.TrimSpace(string(b)) + return strings.Replace(s, "Client Version: ", "", 1), nil + } + + cv := struct { + ClientVersion struct { + GitVersion string `json:"gitVersion"` + } `json:"clientVersion"` + }{} + err = json.Unmarshal(j, &cv) + if err != nil { + return "", errors.Wrap(err, "unmarshal") + } + + return cv.ClientVersion.GitVersion, nil +} + func selectDriver(existing *config.ClusterConfig) registry.DriverState { // Technically unrelated, but important to perform before detection driver.SetLibvirtURI(viper.GetString(kvmQemuURI)) diff --git a/cmd/minikube/cmd/stop.go b/cmd/minikube/cmd/stop.go index 1036a5d365..257f95a857 100644 --- a/cmd/minikube/cmd/stop.go +++ b/cmd/minikube/cmd/stop.go @@ -88,7 +88,7 @@ func stop(api libmachine.API, cluster config.ClusterConfig, n config.Node) bool } } - if err := retry.Expo(tryStop, 1*time.Second, 30*time.Second, 3); err != nil { + if err := retry.Expo(tryStop, 1*time.Second, 120*time.Second, 5); err != nil { exit.WithError("Unable to stop VM", err) } diff --git a/cmd/minikube/cmd/version.go b/cmd/minikube/cmd/version.go index 00c61efd88..478a7aab92 100644 --- a/cmd/minikube/cmd/version.go +++ b/cmd/minikube/cmd/version.go @@ -17,20 +17,56 @@ limitations under the License. package cmd import ( + "encoding/json" + "github.com/spf13/cobra" + "gopkg.in/yaml.v2" + "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/out" "k8s.io/minikube/pkg/version" ) +var ( + versionOutput string + shortVersion bool +) + var versionCmd = &cobra.Command{ Use: "version", Short: "Print the version of minikube", Long: `Print the version of minikube.`, Run: func(command *cobra.Command, args []string) { - out.Ln("minikube version: %v", version.GetVersion()) + minikubeVersion := version.GetVersion() gitCommitID := version.GetGitCommitID() - if gitCommitID != "" { - out.Ln("commit: %v", gitCommitID) + data := map[string]string{ + "minikubeVersion": minikubeVersion, + "commit": gitCommitID, + } + switch versionOutput { + case "": + out.Ln("minikube version: %v", minikubeVersion) + if !shortVersion && gitCommitID != "" { + out.Ln("commit: %v", gitCommitID) + } + case "json": + json, err := json.Marshal(data) + if err != nil { + exit.WithError("version json failure", err) + } + out.Ln(string(json)) + case "yaml": + yaml, err := yaml.Marshal(data) + if err != nil { + exit.WithError("version yaml failure", err) + } + out.Ln(string(yaml)) + default: + exit.WithCodeT(exit.BadUsage, "error: --output must be 'yaml' or 'json'") } }, } + +func init() { + versionCmd.Flags().StringVarP(&versionOutput, "output", "o", "", "One of 'yaml' or 'json'.") + versionCmd.Flags().BoolVar(&shortVersion, "short", false, "Print just the version number.") +} diff --git a/netlify.toml b/netlify.toml index d335d812be..bbf6fcf397 100644 --- a/netlify.toml +++ b/netlify.toml @@ -4,7 +4,7 @@ publish = "site/public/" command = "pwd && cd themes/docsy && git submodule update -f --init && cd ../.. && hugo" [build.environment] -HUGO_VERSION = "0.59.0" +HUGO_VERSION = "0.68.3" [context.production.environment] HUGO_ENV = "production" diff --git a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1alpha3.go b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1alpha3.go index 4c534c161e..a459bb8a27 100644 --- a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1alpha3.go +++ b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1alpha3.go @@ -64,6 +64,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta1.go b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta1.go index 1aca76201a..cbd2ec6d20 100644 --- a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta1.go +++ b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta1.go @@ -73,6 +73,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta2.go b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta2.go index 50f8147d6f..8655dfa7df 100644 --- a/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta2.go +++ b/pkg/minikube/bootstrapper/bsutil/ktmpl/v1beta2.go @@ -68,4 +68,17 @@ networking: dnsDomain: {{if .DNSDomain}}{{.DNSDomain}}{{else}}cluster.local{{end}} podSubnet: "{{.PodSubnet }}" serviceSubnet: {{.ServiceCIDR}} +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: {{.AdvertiseAddress}}:10249 `)) diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd-api-port.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd-api-port.yaml index adf230658d..e7ae37e44a 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd-api-port.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd-pod-network-cidr.yaml index 300ee2825f..d49b9ec306 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd-pod-network-cidr.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd.yaml index 9866d944d9..e8bc0ce7da 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/containerd.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/crio-options-gates.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/crio-options-gates.yaml index c8e2fbb46a..71c60951ac 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/crio-options-gates.yaml @@ -44,6 +44,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/crio.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/crio.yaml index 834021df94..1f79aeb4d6 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/crio.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/crio.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/default.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/default.yaml index 3c8b8b41a8..5588fe6c75 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/default.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/default.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/dns.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/dns.yaml index d6154f4ecd..7092fb6277 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/dns.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/dns.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/image-repository.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/image-repository.yaml index e9dd51d811..a22a4d75cc 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/image-repository.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/image-repository.yaml @@ -37,6 +37,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/options.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/options.yaml index a49db3c29f..1303e6b6ac 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/options.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.12/options.yaml @@ -41,6 +41,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd-api-port.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd-api-port.yaml index 8d90c3e212..4389e10b5a 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd-api-port.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd-pod-network-cidr.yaml index 1788a1adb8..71d7a676be 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd-pod-network-cidr.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd.yaml index 770f46cc0f..485394334f 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/containerd.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/crio-options-gates.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/crio-options-gates.yaml index 326912679e..4fa17efa5e 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/crio-options-gates.yaml @@ -44,6 +44,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/crio.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/crio.yaml index 08646f704f..f5daeef55d 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/crio.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/crio.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/default.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/default.yaml index 25d166e0dc..d99a3fbfaf 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/default.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/default.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/dns.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/dns.yaml index eb057faf76..23bac82149 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/dns.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/dns.yaml @@ -36,6 +36,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/image-repository.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/image-repository.yaml index d828d72006..924f4fc5a9 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/image-repository.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/image-repository.yaml @@ -37,6 +37,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/options.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/options.yaml index 5fe5d326bc..3d9770bed6 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/options.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.13/options.yaml @@ -41,6 +41,8 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" nodefs.inodesFree: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd-api-port.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd-api-port.yaml index 64efcf3938..fc26257b55 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd-api-port.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd-pod-network-cidr.yaml index 6ef28c1c8d..9608b92860 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd-pod-network-cidr.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd.yaml index 97b4065593..c3a54825dd 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/containerd.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/crio-options-gates.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/crio-options-gates.yaml index cf8a3e4728..7b43973e7d 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/crio-options-gates.yaml @@ -51,6 +51,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/crio.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/crio.yaml index 3ef27c9b9f..fa5b62cb02 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/crio.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/crio.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/default.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/default.yaml index 746eb9fb7d..84f68f98fc 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/default.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/default.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/dns.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/dns.yaml index a4e2567756..8791cf879f 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/dns.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/dns.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/image-repository.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/image-repository.yaml index aedd2a9047..b1c12c218e 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/image-repository.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/image-repository.yaml @@ -42,6 +42,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/options.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/options.yaml index 81980c953d..72302c5654 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/options.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.14/options.yaml @@ -48,6 +48,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd-api-port.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd-api-port.yaml index 4e6bbead95..307f517ace 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd-api-port.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd-pod-network-cidr.yaml index 9a9a5c60f6..9a0077f387 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd-pod-network-cidr.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd.yaml index cacacc7e43..3fee964be4 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/containerd.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/crio-options-gates.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/crio-options-gates.yaml index c78edc0119..b07e909cc2 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/crio-options-gates.yaml @@ -51,6 +51,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/crio.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/crio.yaml index 47db96b5c2..c30eed071b 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/crio.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/crio.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/default.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/default.yaml index d68ef1b1f2..99c6275ebd 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/default.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/default.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/dns.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/dns.yaml index 1e79a74a1c..7a41b4cd55 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/dns.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/dns.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/image-repository.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/image-repository.yaml index f11df32d8b..053a5977f9 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/image-repository.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/image-repository.yaml @@ -42,6 +42,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/options.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/options.yaml index d277ac59e6..bac9bdd0c1 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/options.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.15/options.yaml @@ -48,6 +48,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd-api-port.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd-api-port.yaml index 758f7b2f62..1ac14c682a 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd-api-port.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd-pod-network-cidr.yaml index 15802a1859..0a43dd453b 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd-pod-network-cidr.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd.yaml index 0876e3bdde..13ebbb05a2 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/containerd.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/crio-options-gates.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/crio-options-gates.yaml index 6ca53c67e9..56388066f7 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/crio-options-gates.yaml @@ -51,6 +51,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/crio.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/crio.yaml index 0b87277ba2..70d0f5219b 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/crio.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/crio.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/default.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/default.yaml index 765a4b2398..fd99dfc616 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/default.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/default.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/dns.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/dns.yaml index 1105d6fc3c..8c880bada8 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/dns.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/dns.yaml @@ -41,6 +41,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/image-repository.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/image-repository.yaml index 5b78859ead..919063dda8 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/image-repository.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/image-repository.yaml @@ -42,6 +42,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/options.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/options.yaml index cb4d159683..bf5753a224 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/options.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.16/options.yaml @@ -48,6 +48,7 @@ networking: --- apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration +# disable disk resource management by default imageGCHighThresholdPercent: 100 evictionHard: nodefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd-api-port.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd-api-port.yaml index a4c4222b5b..43b450f5c0 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd-api-port.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd-pod-network-cidr.yaml index cd1a400c07..9cc48c0109 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd-pod-network-cidr.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "192.168.32.0/20" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd.yaml index fe006e5d53..fd4f8c324d 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/containerd.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/crio-options-gates.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/crio-options-gates.yaml index 74ec1286eb..658763f28f 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/crio-options-gates.yaml @@ -46,3 +46,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/crio.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/crio.yaml index 3588d336df..f4c255c0c1 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/crio.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/crio.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/default.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/default.yaml index 7651466f86..03b1632e50 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/default.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/default.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/dns.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/dns.yaml index 779cceeb46..bf54c68796 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/dns.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/dns.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: 1.1.1.1 podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/image-repository.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/image-repository.yaml index a37e2dda86..607c43532c 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/image-repository.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/image-repository.yaml @@ -37,3 +37,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/options.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/options.yaml index c940653ab5..2dfa4b76fd 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/options.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.17/options.yaml @@ -43,3 +43,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd-api-port.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd-api-port.yaml index 4360299921..376b6dd2fa 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd-api-port.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd-pod-network-cidr.yaml index d714225d46..910e9e9596 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd-pod-network-cidr.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "192.168.32.0/20" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd.yaml index 64161c1b0a..30b062ee58 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/containerd.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/crio-options-gates.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/crio-options-gates.yaml index 66dfb8c7ea..2f787eb95f 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/crio-options-gates.yaml @@ -46,3 +46,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/crio.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/crio.yaml index 862711d0c9..ab798b8bf7 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/crio.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/crio.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/default.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/default.yaml index 6e3eefc76d..12ae87fcd3 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/default.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/default.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/dns.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/dns.yaml index c463026f5f..abb27ec9fb 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/dns.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/dns.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: 1.1.1.1 podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/image-repository.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/image-repository.yaml index 55ca1f3421..c22581b268 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/image-repository.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/image-repository.yaml @@ -37,3 +37,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/options.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/options.yaml index 9049b3f987..65e991dbce 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/options.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.18/options.yaml @@ -43,3 +43,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd-api-port.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd-api-port.yaml index c04d7a5011..5c7c731951 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd-api-port.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd-pod-network-cidr.yaml index 980c7e94e7..833a7ce604 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd-pod-network-cidr.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "192.168.32.0/20" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd.yaml index 0e28179d6b..6e2bca9c65 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/containerd.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/crio-options-gates.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/crio-options-gates.yaml index 326f80a61d..9183325cff 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/crio-options-gates.yaml @@ -46,3 +46,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/crio.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/crio.yaml index 72ea86b7bc..7c8a91362f 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/crio.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/crio.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/default.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/default.yaml index aa884e40d1..efe78f9ea4 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/default.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/default.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/dns.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/dns.yaml index b06f44e6b6..c771a624ee 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/dns.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/dns.yaml @@ -36,3 +36,16 @@ networking: dnsDomain: 1.1.1.1 podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/image-repository.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/image-repository.yaml index 7d8f48ca3d..0d9e4b7b4a 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/image-repository.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/image-repository.yaml @@ -37,3 +37,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/options.yaml b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/options.yaml index 0adff142eb..c288ba36c4 100644 --- a/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/options.yaml +++ b/pkg/minikube/bootstrapper/bsutil/testdata/v1.19/options.yaml @@ -43,3 +43,16 @@ networking: dnsDomain: cluster.local podSubnet: "" serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +# disable disk resource management by default +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" +--- +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +metricsBindAddress: 1.1.1.1:10249 diff --git a/pkg/minikube/exit/exit.go b/pkg/minikube/exit/exit.go index 4ed989d2a6..221001f86e 100644 --- a/pkg/minikube/exit/exit.go +++ b/pkg/minikube/exit/exit.go @@ -61,16 +61,16 @@ func WithCodeT(code int, format string, a ...out.V) { func WithError(msg string, err error) { p := problem.FromError(err, runtime.GOOS) if p != nil { - WithProblem(msg, p) + WithProblem(msg, err, p) } displayError(msg, err) os.Exit(Software) } // WithProblem outputs info related to a known problem and exits. -func WithProblem(msg string, p *problem.Problem) { +func WithProblem(msg string, err error, p *problem.Problem) { out.ErrT(out.Empty, "") - out.FatalT(msg) + out.ErrT(out.FailureType, "[{{.id}}] {{.msg}} {{.error}}", out.V{"msg": msg, "id": p.ID, "error": p.Err}) p.Display() if p.ShowIssueLink { out.ErrT(out.Empty, "") diff --git a/pkg/minikube/localpath/localpath.go b/pkg/minikube/localpath/localpath.go index 6bc9ef1239..1ac1172b6a 100644 --- a/pkg/minikube/localpath/localpath.go +++ b/pkg/minikube/localpath/localpath.go @@ -38,13 +38,14 @@ func ConfigFile() string { // MiniPath returns the path to the user's minikube dir func MiniPath() string { - if os.Getenv(MinikubeHome) == "" { + minikubeHomeEnv := os.Getenv(MinikubeHome) + if minikubeHomeEnv == "" { return filepath.Join(homedir.HomeDir(), ".minikube") } - if filepath.Base(os.Getenv(MinikubeHome)) == ".minikube" { - return os.Getenv(MinikubeHome) + if filepath.Base(minikubeHomeEnv) == ".minikube" { + return minikubeHomeEnv } - return filepath.Join(os.Getenv(MinikubeHome), ".minikube") + return filepath.Join(minikubeHomeEnv, ".minikube") } // MakeMiniPath is a utility to calculate a relative path to our directory. diff --git a/pkg/minikube/localpath/localpath_test.go b/pkg/minikube/localpath/localpath_test.go index 173ca5df88..d8e6915a43 100644 --- a/pkg/minikube/localpath/localpath_test.go +++ b/pkg/minikube/localpath/localpath_test.go @@ -17,10 +17,15 @@ limitations under the License. package localpath import ( + "fmt" "io/ioutil" "os" + "path/filepath" "runtime" + "strings" "testing" + + "k8s.io/client-go/util/homedir" ) func TestReplaceWinDriveLetterToVolumeName(t *testing.T) { @@ -61,3 +66,95 @@ func TestHasWindowsDriveLetter(t *testing.T) { } } } + +func TestMiniPath(t *testing.T) { + var testCases = []struct { + env, basePath string + }{ + {"/tmp/.minikube", "/tmp/"}, + {"/tmp/", "/tmp"}, + {"", homedir.HomeDir()}, + } + originalEnv := os.Getenv(MinikubeHome) + defer func() { // revert to pre-test env var + err := os.Setenv(MinikubeHome, originalEnv) + if err != nil { + t.Fatalf("Error reverting env %s to its original value (%s) var after test ", MinikubeHome, originalEnv) + } + }() + for _, tc := range testCases { + t.Run(tc.env, func(t *testing.T) { + expectedPath := filepath.Join(tc.basePath, ".minikube") + os.Setenv(MinikubeHome, tc.env) + path := MiniPath() + if path != expectedPath { + t.Errorf("MiniPath expected to return '%s', but got '%s'", expectedPath, path) + } + }) + } +} + +func TestMachinePath(t *testing.T) { + var testCases = []struct { + miniHome []string + contains string + }{ + {[]string{"tmp", "foo", "bar", "baz"}, "tmp"}, + {[]string{"tmp"}, "tmp"}, + {[]string{}, MiniPath()}, + } + for _, tc := range testCases { + t.Run(fmt.Sprintf("%s", tc.miniHome), func(t *testing.T) { + machinePath := MachinePath("foo", tc.miniHome...) + if !strings.Contains(machinePath, tc.contains) { + t.Errorf("Function MachinePath returned (%v) which doesn't contain expected (%v)", machinePath, tc.contains) + } + }) + } +} + +type propertyFnWithArg func(string) string + +func TestPropertyWithNameArg(t *testing.T) { + var testCases = []struct { + propertyFunc propertyFnWithArg + name string + }{ + {Profile, "Profile"}, + {ClientCert, "ClientCert"}, + {ClientKey, "ClientKey"}, + } + miniPath := MiniPath() + mockedName := "foo" + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + if !strings.Contains(tc.propertyFunc(mockedName), MiniPath()) { + t.Errorf("Property %s(%v) doesn't contain miniPath %v", tc.name, tc.propertyFunc, miniPath) + } + if !strings.Contains(tc.propertyFunc(mockedName), mockedName) { + t.Errorf("Property %s(%v) doesn't contain passed name %v", tc.name, tc.propertyFunc, mockedName) + } + }) + + } +} + +type propertyFnWithoutArg func() string + +func TestPropertyWithoutNameArg(t *testing.T) { + var testCases = []struct { + propertyFunc propertyFnWithoutArg + name string + }{ + {ConfigFile, "ConfigFile"}, + {CACert, "CACert"}, + } + miniPath := MiniPath() + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + if !strings.Contains(tc.propertyFunc(), MiniPath()) { + t.Errorf("Property %s(%v) doesn't contain expected miniPath %v", tc.name, tc.propertyFunc, miniPath) + } + }) + } +} diff --git a/pkg/minikube/machine/cache_images.go b/pkg/minikube/machine/cache_images.go index dd3fc58d9e..93f735467c 100644 --- a/pkg/minikube/machine/cache_images.go +++ b/pkg/minikube/machine/cache_images.go @@ -21,6 +21,7 @@ import ( "os" "path" "path/filepath" + "strings" "sync" "time" @@ -158,36 +159,51 @@ func needsTransfer(imgClient *client.Client, imgName string, cr cruntime.Manager // CacheAndLoadImages caches and loads images to all profiles func CacheAndLoadImages(images []string) error { + // This is the most important thing if err := image.SaveToDir(images, constants.ImageCacheDir); err != nil { - return err + return errors.Wrap(err, "save to dir") } + api, err := NewAPIClient() if err != nil { - return err + return errors.Wrap(err, "api") } defer api.Close() profiles, _, err := config.ListProfiles() // need to load image to all profiles if err != nil { return errors.Wrap(err, "list profiles") } + + succeeded := []string{} + failed := []string{} + for _, p := range profiles { // loading images to all running profiles pName := p.Name // capture the loop variable + c, err := config.Load(pName) if err != nil { - return err + // Non-fatal because it may race with profile deletion + glog.Errorf("Failed to load profile %q: %v", pName, err) + failed = append(failed, pName) + continue } + for _, n := range c.Nodes { m := driver.MachineName(*c, n) + status, err := Status(api, m) if err != nil { - glog.Warningf("skipping loading cache for profile %s", pName) glog.Errorf("error getting status for %s: %v", pName, err) - continue // try next machine + failed = append(failed, pName) + continue } + if status == state.Running.String() { // the not running hosts will load on next start h, err := api.Load(m) if err != nil { - return err + glog.Errorf("Failed to load machine %q: %v", m, err) + failed = append(failed, pName) + continue } cr, err := CommandRunner(h) if err != nil { @@ -195,12 +211,18 @@ func CacheAndLoadImages(images []string) error { } err = LoadImages(c, cr, images, constants.ImageCacheDir) if err != nil { + failed = append(failed, pName) glog.Warningf("Failed to load cached images for profile %s. make sure the profile is running. %v", pName, err) } + succeeded = append(succeeded, pName) } } } - return err + + glog.Infof("succeeded pushing to: %s", strings.Join(succeeded, " ")) + glog.Infof("failed pushing to: %s", strings.Join(failed, " ")) + // Live pushes are not considered a failure + return nil } // transferAndLoadImage transfers and loads a single image from the cache diff --git a/pkg/minikube/node/node.go b/pkg/minikube/node/node.go index 03bddc49be..411275f3de 100644 --- a/pkg/minikube/node/node.go +++ b/pkg/minikube/node/node.go @@ -39,9 +39,8 @@ func Add(cc *config.ClusterConfig, n config.Node) error { return errors.Wrap(err, "save node") } - // TODO: Start should return an error rather than calling exit! - Start(*cc, n, nil, false) - return nil + _, err := Start(*cc, n, nil, false) + return err } // Delete stops and deletes the given node from the given cluster diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index 95de2a539d..c750e26623 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -63,7 +63,14 @@ const ( ) // Start spins up a guest and starts the kubernetes node. -func Start(cc config.ClusterConfig, n config.Node, existingAddons map[string]bool, apiServer bool) *kubeconfig.Settings { +func Start(cc config.ClusterConfig, n config.Node, existingAddons map[string]bool, apiServer bool) (*kubeconfig.Settings, error) { + cp := "" + if apiServer { + cp = "control plane " + } + + out.T(out.ThumbsUp, "Starting {{.controlPlane}}node {{.name}} in cluster {{.cluster}}", out.V{"controlPlane": cp, "name": n.Name, "cluster": cc.Name}) + var kicGroup errgroup.Group if driver.IsKIC(cc.Driver) { beginDownloadKicArtifacts(&kicGroup) @@ -91,7 +98,7 @@ func Start(cc config.ClusterConfig, n config.Node, existingAddons map[string]boo sv, err := util.ParseKubernetesVersion(n.KubernetesVersion) if err != nil { - exit.WithError("Failed to parse kubernetes version", err) + return nil, errors.Wrap(err, "Failed to parse kubernetes version") } // configure the runtime (docker, containerd, crio) @@ -99,12 +106,12 @@ func Start(cc config.ClusterConfig, n config.Node, existingAddons map[string]boo showVersionInfo(n.KubernetesVersion, cr) var bs bootstrapper.Bootstrapper - var kubeconfig *kubeconfig.Settings + var kcs *kubeconfig.Settings if apiServer { // Must be written before bootstrap, otherwise health checks may flake due to stale IP - kubeconfig, err = setupKubeconfig(host, &cc, &n, cc.Name) + kcs = setupKubeconfig(host, &cc, &n, cc.Name) if err != nil { - exit.WithError("Failed to setup kubeconfig", err) + return nil, errors.Wrap(err, "Failed to setup kubeconfig") } // setup kubeadm (must come after setupKubeconfig) @@ -113,16 +120,20 @@ func Start(cc config.ClusterConfig, n config.Node, existingAddons map[string]boo if err != nil { exit.WithLogEntries("Error starting cluster", err, logs.FindProblems(cr, bs, cc, mRunner)) } + + // write the kubeconfig to the file system after everything required (like certs) are created by the bootstrapper + if err := kubeconfig.Update(kcs); err != nil { + return nil, errors.Wrap(err, "Failed to update kubeconfig file.") + } } else { bs, err = cluster.Bootstrapper(machineAPI, viper.GetString(cmdcfg.Bootstrapper), cc, n) if err != nil { - exit.WithError("Failed to get bootstrapper", err) + return nil, errors.Wrap(err, "Failed to get bootstrapper") } if err = bs.SetupCerts(cc.KubernetesConfig, n); err != nil { - exit.WithError("setting up certs", err) + return nil, errors.Wrap(err, "setting up certs") } - } configureMounts() @@ -146,35 +157,34 @@ func Start(cc config.ClusterConfig, n config.Node, existingAddons map[string]boo // Skip pre-existing, because we already waited for health if viper.GetBool(waitUntilHealthy) && !preExists { if err := bs.WaitForNode(cc, n, viper.GetDuration(waitTimeout)); err != nil { - exit.WithError("Wait failed", err) + return nil, errors.Wrap(err, "Wait failed") } } } else { if err := bs.UpdateNode(cc, n, cr); err != nil { - exit.WithError("Updating node", err) + return nil, errors.Wrap(err, "Updating node") } cp, err := config.PrimaryControlPlane(&cc) if err != nil { - exit.WithError("Getting primary control plane", err) + return nil, errors.Wrap(err, "Getting primary control plane") } cpBs, err := cluster.Bootstrapper(machineAPI, viper.GetString(cmdcfg.Bootstrapper), cc, cp) if err != nil { - exit.WithError("Getting bootstrapper", err) + return nil, errors.Wrap(err, "Getting bootstrapper") } joinCmd, err := cpBs.GenerateToken(cc) if err != nil { - exit.WithError("generating join token", err) + return nil, errors.Wrap(err, "generating join token") } if err = bs.JoinCluster(cc, n, joinCmd); err != nil { - exit.WithError("joining cluster", err) + return nil, errors.Wrap(err, "joining cluster") } } - return kubeconfig - + return kcs, nil } // ConfigureRuntimes does what needs to happen to get a runtime going. @@ -237,7 +247,7 @@ func setupKubeAdm(mAPI libmachine.API, cfg config.ClusterConfig, n config.Node) return bs } -func setupKubeconfig(h *host.Host, cc *config.ClusterConfig, n *config.Node, clusterName string) (*kubeconfig.Settings, error) { +func setupKubeconfig(h *host.Host, cc *config.ClusterConfig, n *config.Node, clusterName string) *kubeconfig.Settings { addr, err := apiServerURL(*h, *cc, *n) if err != nil { exit.WithError("Failed to get API Server URL", err) @@ -257,10 +267,7 @@ func setupKubeconfig(h *host.Host, cc *config.ClusterConfig, n *config.Node, clu } kcs.SetPath(kubeconfig.PathFromEnv()) - if err := kubeconfig.Update(kcs); err != nil { - return kcs, err - } - return kcs, nil + return kcs } func apiServerURL(h host.Host, cc config.ClusterConfig, n config.Node) (string, error) { @@ -325,10 +332,7 @@ func startHost(api libmachine.API, cc config.ClusterConfig, n config.Node) (*hos return host, exists } - out.T(out.FailureType, "StartHost failed again: {{.error}}", out.V{"error": err}) - out.T(out.Workaround, `Run: "{{.delete}}", then "{{.start}} --alsologtostderr -v=1" to try again with more logging`, - out.V{"delete": mustload.ExampleCmd(cc.Name, "delete"), "start": mustload.ExampleCmd(cc.Name, "start")}) - + // Don't use host.Driver to avoid nil pointer deref drv := cc.Driver exit.WithError(fmt.Sprintf(`Failed to start %s %s. "%s" may fix it.`, drv, driver.MachineType(drv), mustload.ExampleCmd(cc.Name, "start")), err) return host, exists @@ -363,8 +367,8 @@ func validateNetwork(h *host.Host, r command.Runner) string { trySSH(h, ip) } - tryLookup(r) - tryRegistry(r) + // Non-blocking + go tryRegistry(r, h.Driver.DriverName()) return ip } @@ -405,21 +409,12 @@ func trySSH(h *host.Host, ip string) { } } -func tryLookup(r command.Runner) { - // DNS check - if rr, err := r.RunCmd(exec.Command("nslookup", "kubernetes.io", "-type=ns")); err != nil { - glog.Infof("%s failed: %v which might be okay will retry nslookup without query type", rr.Args, err) - // will try with without query type for ISOs with different busybox versions. - if _, err = r.RunCmd(exec.Command("nslookup", "kubernetes.io")); err != nil { - glog.Warningf("nslookup failed: %v", err) - out.WarningT("Node may be unable to resolve external DNS records") - } - } -} -func tryRegistry(r command.Runner) { - // Try an HTTPS connection to the image repository +// tryRegistry tries to connect to the image repository +func tryRegistry(r command.Runner, driverName string) { + // 2 second timeout. For best results, call tryRegistry in a non-blocking manner. + opts := []string{"-sS", "-m", "2"} + proxy := os.Getenv("HTTPS_PROXY") - opts := []string{"-sS"} if proxy != "" && !strings.HasPrefix(proxy, "localhost") && !strings.HasPrefix(proxy, "127.0") { opts = append([]string{"-x", proxy}, opts...) } @@ -432,7 +427,8 @@ func tryRegistry(r command.Runner) { opts = append(opts, fmt.Sprintf("https://%s/", repo)) if rr, err := r.RunCmd(exec.Command("curl", opts...)); err != nil { glog.Warningf("%s failed: %v", rr.Args, err) - out.WarningT("VM is unable to access {{.repository}}, you may need to configure a proxy or set --image-repository", out.V{"repository": repo}) + out.WarningT("This {{.type}} is having trouble accessing https://{{.repository}}", out.V{"repository": repo, "type": driver.MachineType(driverName)}) + out.T(out.Tip, "To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/") } } diff --git a/pkg/minikube/problem/problem.go b/pkg/minikube/problem/problem.go index 1de611b0a7..d5465a1830 100644 --- a/pkg/minikube/problem/problem.go +++ b/pkg/minikube/problem/problem.go @@ -57,7 +57,6 @@ type match struct { // Display problem metadata to the console func (p *Problem) Display() { - out.ErrT(out.FailureType, "Error: [{{.id}}] {{.error}}", out.V{"id": p.ID, "error": p.Err}) out.ErrT(out.Tip, "Suggestion: {{.advice}}", out.V{"advice": translate.T(p.Advice)}) if p.URL != "" { out.ErrT(out.Documentation, "Documentation: {{.url}}", out.V{"url": p.URL}) @@ -65,6 +64,12 @@ func (p *Problem) Display() { if len(p.Issues) == 0 { return } + + if len(p.Issues) == 1 { + out.ErrT(out.Issues, "Related issue: {{.url}}", out.V{"url": fmt.Sprintf("%s/%d", issueBase, p.Issues[0])}) + return + } + out.ErrT(out.Issues, "Related issues:") issues := p.Issues if len(issues) > 3 { diff --git a/pkg/minikube/problem/problem_test.go b/pkg/minikube/problem/problem_test.go index 8f37424de3..d954271801 100644 --- a/pkg/minikube/problem/problem_test.go +++ b/pkg/minikube/problem/problem_test.go @@ -44,7 +44,6 @@ func TestDisplay(t *testing.T) { problem: Problem{ID: "example", URL: "example.com", Err: fmt.Errorf("test")}, description: "url, id and err", expected: ` -* Error: [example] test * Suggestion: * Documentation: example.com `, @@ -53,7 +52,6 @@ func TestDisplay(t *testing.T) { problem: Problem{ID: "example", URL: "example.com", Err: fmt.Errorf("test"), Issues: []int{0, 1}, Advice: "you need a hug"}, description: "with 2 issues and suggestion", expected: ` -* Error: [example] test * Suggestion: you need a hug * Documentation: example.com * Related issues: @@ -65,7 +63,6 @@ func TestDisplay(t *testing.T) { problem: Problem{ID: "example", URL: "example.com", Err: fmt.Errorf("test"), Issues: []int{0, 1}}, description: "with 2 issues", expected: ` -* Error: [example] test * Suggestion: * Documentation: example.com * Related issues: @@ -78,7 +75,6 @@ func TestDisplay(t *testing.T) { problem: Problem{ID: "example", URL: "example.com", Err: fmt.Errorf("test"), Issues: []int{0, 1, 2, 3, 4, 5}}, description: "with 6 issues", expected: ` -* Error: [example] test * Suggestion: * Documentation: example.com * Related issues: diff --git a/pkg/util/config.go b/pkg/util/config.go deleted file mode 100644 index 6d043e1e61..0000000000 --- a/pkg/util/config.go +++ /dev/null @@ -1,189 +0,0 @@ -/* -Copyright 2016 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 util - -import ( - "fmt" - "net" - "reflect" - "strconv" - "strings" - "time" - - utilnet "k8s.io/apimachinery/pkg/util/net" -) - -// findNestedElement uses reflection to find the element corresponding to the dot-separated string parameter. -func findNestedElement(s string, c interface{}) (reflect.Value, error) { - fields := strings.Split(s, ".") - - // Take the ValueOf to get a pointer, so we can actually mutate the element. - e := reflect.Indirect(reflect.ValueOf(c).Elem()) - - for _, field := range fields { - e = reflect.Indirect(e.FieldByName(field)) - - // FieldByName returns the zero value if the field does not exist. - if e == (reflect.Value{}) { - return e, fmt.Errorf("unable to find field by name: %s", field) - } - // Start the loop again, on the next level. - } - return e, nil -} - -// setElement sets the supplied element to the value in the supplied string. The string will be coerced to the correct type. -func setElement(e reflect.Value, v string) error { - switch e.Interface().(type) { - case int, int32, int64: - return convertInt(e, v) - case string: - return convertString(e, v) - case float32, float64: - return convertFloat(e, v) - case bool: - return convertBool(e, v) - case net.IP: - return convertIP(e, v) - case net.IPNet: - return convertCIDR(e, v) - case utilnet.PortRange: - return convertPortRange(e, v) - case time.Duration: - return convertDuration(e, v) - case []string: - vals := strings.Split(v, ",") - e.Set(reflect.ValueOf(vals)) - case map[string]string: - return convertMap(e, v) - default: - // Last ditch attempt to convert anything based on its underlying kind. - // This covers any types that are aliased to a native type - return convertKind(e, v) - } - - return nil -} - -func convertMap(e reflect.Value, v string) error { - if e.IsNil() { - e.Set(reflect.MakeMap(e.Type())) - } - vals := strings.Split(v, ",") - for _, subitem := range vals { - subvals := strings.FieldsFunc(subitem, func(c rune) bool { - return c == '<' || c == '=' || c == '>' - }) - if len(subvals) != 2 { - return fmt.Errorf("unparsable %s", v) - } - e.SetMapIndex(reflect.ValueOf(subvals[0]), reflect.ValueOf(subvals[1])) - } - return nil -} - -func convertKind(e reflect.Value, v string) error { - switch e.Kind() { - case reflect.Int, reflect.Int32, reflect.Int64: - return convertInt(e, v) - case reflect.String: - return convertString(e, v) - case reflect.Float32, reflect.Float64: - return convertFloat(e, v) - case reflect.Bool: - return convertBool(e, v) - default: - return fmt.Errorf("unable to set type %T", e.Kind()) - } -} - -func convertInt(e reflect.Value, v string) error { - i, err := strconv.Atoi(v) - if err != nil { - return fmt.Errorf("error converting input %s to an integer: %v", v, err) - } - e.SetInt(int64(i)) - return nil -} - -func convertString(e reflect.Value, v string) error { - e.SetString(v) - return nil -} - -func convertFloat(e reflect.Value, v string) error { - f, err := strconv.ParseFloat(v, 64) - if err != nil { - return fmt.Errorf("error converting input %s to a float: %v", v, err) - } - e.SetFloat(f) - return nil -} - -func convertBool(e reflect.Value, v string) error { - b, err := strconv.ParseBool(v) - if err != nil { - return fmt.Errorf("error converting input %s to a bool: %v", v, err) - } - e.SetBool(b) - return nil -} - -func convertIP(e reflect.Value, v string) error { - ip := net.ParseIP(v) - if ip == nil { - return fmt.Errorf("error converting input %s to an IP", v) - } - e.Set(reflect.ValueOf(ip)) - return nil -} - -func convertCIDR(e reflect.Value, v string) error { - _, cidr, err := net.ParseCIDR(v) - if err != nil { - return fmt.Errorf("error converting input %s to a CIDR: %v", v, err) - } - e.Set(reflect.ValueOf(*cidr)) - return nil -} - -func convertPortRange(e reflect.Value, v string) error { - pr, err := utilnet.ParsePortRange(v) - if err != nil { - return fmt.Errorf("error converting input %s to PortRange: %v", v, err) - } - e.Set(reflect.ValueOf(*pr)) - return nil -} - -func convertDuration(e reflect.Value, v string) error { - dur, err := time.ParseDuration(v) - if err != nil { - return fmt.Errorf("error converting input %s to Duration: %v", v, err) - } - e.Set(reflect.ValueOf(dur)) - return nil -} - -// FindAndSet sets the nested value. -func FindAndSet(path string, c interface{}, value string) error { - elem, err := findNestedElement(path, c) - if err != nil { - return err - } - return setElement(elem, value) -} diff --git a/pkg/util/config_test.go b/pkg/util/config_test.go deleted file mode 100644 index 2ca74c95ac..0000000000 --- a/pkg/util/config_test.go +++ /dev/null @@ -1,197 +0,0 @@ -/* -Copyright 2016 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 util - -import ( - "math" - "net" - "reflect" - "testing" - "time" - - utilnet "k8s.io/apimachinery/pkg/util/net" -) - -type aliasedString string - -type testConfig struct { - A string - B int - C float32 - D subConfig1 - E *subConfig2 -} - -type subConfig1 struct { - F string - G int - H float32 - I subConfig3 -} - -type subConfig2 struct { - J string - K int - L float32 -} - -type subConfig3 struct { - M string - N int - O float32 - P bool - Q net.IP - R utilnet.PortRange - S []string - T aliasedString - U net.IPNet - V time.Duration -} - -func buildConfig() testConfig { - _, cidr, _ := net.ParseCIDR("12.34.56.78/16") - return testConfig{ - A: "foo", - B: 1, - C: 1.1, - D: subConfig1{ - F: "bar", - G: 2, - H: 2.2, - I: subConfig3{ - M: "baz", - N: 3, - O: 3.3, - P: false, - Q: net.ParseIP("12.34.56.78"), - R: utilnet.PortRange{Base: 2, Size: 4}, - U: *cidr, - V: 5 * time.Second, - }, - }, - E: &subConfig2{ - J: "bat", - K: 4, - L: 4.4, - }, - } -} - -func TestFindNestedStrings(t *testing.T) { - a := buildConfig() - for _, tc := range []struct { - input string - output string - }{ - {"A", "foo"}, - {"D.F", "bar"}, - {"D.I.M", "baz"}, - {"E.J", "bat"}, - } { - v, err := findNestedElement(tc.input, &a) - if err != nil { - t.Fatalf("Did not expect error. Got: %v", err) - } - if v.String() != tc.output { - t.Fatalf("Expected: %s, got %s", tc.output, v.String()) - } - } -} - -func TestFindNestedInts(t *testing.T) { - a := buildConfig() - - for _, tc := range []struct { - input string - output int64 - }{ - {"B", 1}, - {"D.G", 2}, - {"D.I.N", 3}, - {"E.K", 4}, - } { - v, err := findNestedElement(tc.input, &a) - if err != nil { - t.Fatalf("Did not expect error. Got: %v", err) - } - if v.Int() != tc.output { - t.Fatalf("Expected: %d, got %d", tc.output, v.Int()) - } - } -} - -func checkFloats(f1, f2 float64) bool { - return math.Abs(f1-f2) < .00001 -} - -func TestFindNestedFloats(t *testing.T) { - a := buildConfig() - for _, tc := range []struct { - input string - output float64 - }{ - {"C", 1.1}, - {"D.H", 2.2}, - {"D.I.O", 3.3}, - {"E.L", 4.4}, - } { - v, err := findNestedElement(tc.input, &a) - if err != nil { - t.Fatalf("Did not expect error. Got: %v", err) - } - - // Floating point comparison is tricky. - if !checkFloats(tc.output, v.Float()) { - t.Fatalf("Expected: %v, got %v", tc.output, v.Float()) - } - } -} - -func TestSetElement(t *testing.T) { - for _, tc := range []struct { - path string - newval string - checker func(testConfig) bool - }{ - {"A", "newstring", func(t testConfig) bool { return t.A == "newstring" }}, - {"B", "13", func(t testConfig) bool { return t.B == 13 }}, - {"C", "3.14", func(t testConfig) bool { return checkFloats(float64(t.C), 3.14) }}, - {"D.F", "fizzbuzz", func(t testConfig) bool { return t.D.F == "fizzbuzz" }}, - {"D.G", "4", func(t testConfig) bool { return t.D.G == 4 }}, - {"D.H", "7.3", func(t testConfig) bool { return checkFloats(float64(t.D.H), 7.3) }}, - {"E.J", "otherstring", func(t testConfig) bool { return t.E.J == "otherstring" }}, - {"E.K", "17", func(t testConfig) bool { return t.E.K == 17 }}, - {"E.L", "1.234", func(t testConfig) bool { return checkFloats(float64(t.E.L), 1.234) }}, - {"D.I.P", "true", func(t testConfig) bool { return t.D.I.P == true }}, - {"D.I.P", "false", func(t testConfig) bool { return t.D.I.P == false }}, - {"D.I.Q", "11.22.33.44", func(t testConfig) bool { return t.D.I.Q.Equal(net.ParseIP("11.22.33.44")) }}, - {"D.I.R", "7-11", func(t testConfig) bool { return t.D.I.R.Base == 7 && t.D.I.R.Size == 5 }}, - {"D.I.S", "a,b", func(t testConfig) bool { return reflect.DeepEqual(t.D.I.S, []string{"a", "b"}) }}, - {"D.I.T", "foo", func(t testConfig) bool { return t.D.I.T == "foo" }}, - {"D.I.U", "11.22.0.0/16", func(t testConfig) bool { return t.D.I.U.String() == "11.22.0.0/16" }}, - {"D.I.V", "5s", func(t testConfig) bool { return t.D.I.V == 5*time.Second }}, - } { - a := buildConfig() - if err := FindAndSet(tc.path, &a, tc.newval); err != nil { - t.Fatalf("Error setting value: %v", err) - } - if !tc.checker(a) { - t.Fatalf("Error, values not correct: %v, %s, %s", a, tc.newval, tc.path) - } - - } -} diff --git a/site/config.toml b/site/config.toml index c241a41581..e0c6e2a4bc 100644 --- a/site/config.toml +++ b/site/config.toml @@ -33,39 +33,20 @@ pygmentsStyle = "tango" [permalinks] blog = "/:section/:year/:month/:day/:slug/" -[module] - [[module.mounts]] - source = "../deploy/addons/gvisor/" - target = "content/gvisor/" - [[module.mounts]] - source = "../deploy/addons/helm-tiller/" - target = "content/helm-tiller/" - [[module.mounts]] - source = "../deploy/addons/istio/" - target = "content/istio/" - [[module.mounts]] - source = "../deploy/addons/ingress-dns/" - target = "content/ingress-dns/" - [[module.mounts]] - source = "../deploy/addons/storage-provisioner-gluster/" - target = "content/storage-provisioner-gluster/" - [[module.mounts]] - source = "../deploy/addons/layouts/" - target = "layouts" +[markup] + [markup.highlight] + codeFences = true + hl_Lines = "" + lineNoStart = 1 + lineNos = false + lineNumbersInTable = true + noClasses = true + style = "vs" + tabWidth = 4 - [[module.mounts]] - source = "content/en" - target = "content" - [[module.mounts]] - source = "layouts" - target = "layouts" - -## Configuration for BlackFriday markdown parser: https://github.com/russross/blackfriday -[blackfriday] -plainIDAnchors = true -hrefTargetBlank = true -angledQuotes = false -latexDashes = true +# allow html in markdown +[markup.goldmark.renderer] + unsafe=true # Image processing configuration. [imaging] diff --git a/site/content/en/docs/Contributing/documentation.en.md b/site/content/en/docs/Contributing/documentation.en.md index b2cd2b9971..ef0be91b83 100644 --- a/site/content/en/docs/Contributing/documentation.en.md +++ b/site/content/en/docs/Contributing/documentation.en.md @@ -18,7 +18,10 @@ To serve documentation pages locally, clone the `minikube` repository and run: `make site` -NOTE: On Windows, our site currently causes Hugo to `panic`. +Notes : + +* On GNU/Linux, golang package shipped with the distribution may not be recent enough. Use the latest version. +* On Windows, our site currently causes Hugo to `panic`. ## Lint diff --git a/site/content/en/docs/FAQ/_index.md b/site/content/en/docs/FAQ/_index.md new file mode 100644 index 0000000000..4c22c42c78 --- /dev/null +++ b/site/content/en/docs/FAQ/_index.md @@ -0,0 +1,8 @@ +--- +title: "FAQ" +linkTitle: "FAQ" +weight: 5 +description: > + Questions that come up regularly +--- + diff --git a/site/content/en/docs/FAQ/sudo_prompts.md b/site/content/en/docs/FAQ/sudo_prompts.md new file mode 100644 index 0000000000..a78b9d141d --- /dev/null +++ b/site/content/en/docs/FAQ/sudo_prompts.md @@ -0,0 +1,20 @@ +--- +title: "Sudo prompts" +linkTitle: "Sudo prompts" +weight: 1 +date: 2020-03-26 +description: > + Disabling sudo prompts when using minikude start/stop/status, kubectl cluster-info, ... +--- + +## Use the `docker` driver + +Use the `docker` driver rather than the `none` driver. `docker` driver should be used unless it does not meet requirements for some reason. + +## For `none` users + +For `none` users, `CHANGE_MINIKUBE_NONE_USER=true`, kubectl and such will still work: [see environment variables](https://minikube.sigs.k8s.io/docs/reference/environment_variables/) + +## Otherwise deal with `sudo` + +Configure `sudo` to never prompt for the commands issued by minikube. diff --git a/site/content/en/docs/Reference/environment_variables.md b/site/content/en/docs/Reference/environment_variables.md index 7a02d204d9..636b61d8a8 100644 --- a/site/content/en/docs/Reference/environment_variables.md +++ b/site/content/en/docs/Reference/environment_variables.md @@ -13,9 +13,9 @@ For example the `minikube start --iso-url="$ISO_URL"` flag can also be set by se ## Other variables -Some features can only be accessed by environment variables, here is a list of these features: +Some features can only be accessed by minikube specific environment variables, here is a list of these features: -* **MINIKUBE_HOME** - (string) sets the path for the .minikube directory that minikube uses for state/configuration +* **MINIKUBE_HOME** - (string) sets the path for the .minikube directory that minikube uses for state/configuration. *Please note: this is used only by minikube and does not affect anything related to Kubernetes tools such as kubectl.* * **MINIKUBE_IN_STYLE** - (bool) manually sets whether or not emoji and colors should appear in minikube. Set to false or 0 to disable this feature, true or 1 to force it to be turned on. diff --git a/site/content/en/docs/Tutorials/ebpf_tools_in_minikube.md b/site/content/en/docs/Tutorials/ebpf_tools_in_minikube.md index 4931f35d9a..21dcb9b0b0 100644 --- a/site/content/en/docs/Tutorials/ebpf_tools_in_minikube.md +++ b/site/content/en/docs/Tutorials/ebpf_tools_in_minikube.md @@ -22,25 +22,25 @@ This tutorial will cover how to set up your minikube cluster so that you can run First, start minikube: ``` -$ minikube start +$ minikube start --iso-url https://storage.googleapis.com/minikube-performance/minikube.iso ``` You will need to download and extract necessary kernel headers within minikube: ```shell -$ minikube ssh -- curl -Lo /tmp/kernel-headers-linux-4.19.94.tar.lz4 https://storage.googleapis.com/minikube-kernel-headers/kernel-headers-linux-4.19.94.tar.lz4 +minikube ssh -- curl -Lo /tmp/kernel-headers-linux-4.19.94.tar.lz4 https://storage.googleapis.com/minikube-kernel-headers/kernel-headers-linux-4.19.94.tar.lz4 -$ minikube ssh -- sudo mkdir -p /lib/modules/4.19.94/build +minikube ssh -- sudo mkdir -p /lib/modules/4.19.94/build -$ minikube ssh -- sudo tar -I lz4 -C /lib/modules/4.19.94/build -xvf /tmp/kernel-headers-linux-4.19.94.tar.lz4 +minikube ssh -- sudo tar -I lz4 -C /lib/modules/4.19.94/build -xvf /tmp/kernel-headers-linux-4.19.94.tar.lz4 -$ minikube ssh -- rm /tmp/kernel-headers-linux-4.19.94.tar.lz4 +minikube ssh -- rm /tmp/kernel-headers-linux-4.19.94.tar.lz4 ``` You can now run [BCC tools](https://github.com/iovisor/bcc) as a Docker container in minikube: ```shell -$ minikube ssh -- docker run -it --rm --privileged -v /lib/modules:/lib/modules:ro -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro --workdir /usr/share/bcc/tools zlim/bcc ./execsnoop +$ minikube ssh -- docker run --rm --privileged -v /lib/modules:/lib/modules:ro -v /usr/src:/usr/src:ro -v /etc/localtime:/etc/localtime:ro --workdir /usr/share/bcc/tools zlim/bcc ./execsnoop Unable to find image 'zlim/bcc:latest' locally diff --git a/site/layouts/partials/sidebar-tree.html b/site/layouts/partials/sidebar-tree.html new file mode 100644 index 0000000000..7e1fcf4c80 --- /dev/null +++ b/site/layouts/partials/sidebar-tree.html @@ -0,0 +1,59 @@ +{{/* minikube hack: temporarily forked from docsy/layouts/partials/sidebar-tree.html for hugo v0.69 compatibility */}} + +{{/* We cache this partial for bigger sites and set the active class client side. */}} +{{ $shouldDelayActive := ge (len .Site.Pages) 2000 }} +
+{{ define "section-tree-nav-section" }} +{{ $s := .section }} +{{ $p := .page }} +{{ $shouldDelayActive := .delayActive }} +{{ $active := eq $p.CurrentSection $s }} +{{ $show := or (and (not $p.Site.Params.ui.sidebar_menu_compact) ($p.IsAncestor $s)) ($p.IsDescendant $s) }} + +{{/* minikube hack: Override $show due to a Hugo upgrade bug */}} +{{ $show = true }} +{{/* end minikube hack */}} + +{{ $sid := $s.RelPermalink | anchorize }} + +{{ end }} diff --git a/test/integration/start_stop_delete_test.go b/test/integration/start_stop_delete_test.go index dd106484c9..c484a2491b 100644 --- a/test/integration/start_stop_delete_test.go +++ b/test/integration/start_stop_delete_test.go @@ -71,6 +71,9 @@ func TestStartStop(t *testing.T) { "--disable-driver-mounts", "--extra-config=kubeadm.ignore-preflight-errors=SystemVerification", }}, + {"embed-certs", constants.DefaultKubernetesVersion, []string{ + "--embed-certs", + }}, } for _, tc := range tests { diff --git a/translations/de.json b/translations/de.json index 248328d176..6ef08685ac 100644 --- a/translations/de.json +++ b/translations/de.json @@ -7,7 +7,6 @@ "'none' driver does not support 'minikube podman-env' command": "", "'none' driver does not support 'minikube ssh' command": "", "'{{.driver}}' driver reported an issue: {{.error}}": "", - "- {{.profile}}": "", "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/": "", "A firewall is blocking Docker the minikube VM from reaching the internet. You may need to configure it to 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.": "", @@ -147,6 +146,7 @@ "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}}": "Fehler: Sie haben Kubernetes v{{.new}} ausgewählt, aber auf dem vorhandenen Cluster für Ihr Profil wird Kubernetes v{{.old}} ausgeführt. Zerstörungsfreie Downgrades werden nicht unterstützt. Sie können jedoch mit einer der folgenden Optionen fortfahren:\n* Erstellen Sie den Cluster mit Kubernetes v{{.new}} neu: Führen Sie \"minikube delete {{.profile}}\" und dann \"minikube start {{.profile}} - kubernetes-version = {{.new}}\" aus.\n* Erstellen Sie einen zweiten Cluster mit Kubernetes v{{.new}}: Führen Sie \"minikube start -p \u003cnew name\u003e --kubernetes-version = {{.new}}\" aus.\n* Verwenden Sie den vorhandenen Cluster mit Kubernetes v {{.old}} oder höher: Führen Sie \"minikube start {{.profile}} --kubernetes-version = {{.old}}\" aus.", "Error: [{{.id}}] {{.error}}": "", "Examples": "", + "Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "", "Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "", "Exiting": "Wird beendet", "Exiting.": "", @@ -184,6 +184,7 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "", "Failed to update config": "", + "Failed to update kubeconfig file.": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -269,7 +270,6 @@ "Networking and Connectivity Commands:": "", "No minikube profile was found. You can create one using `minikube start`.": "", "Node \"{{.node_name}}\" stopped.": "", - "Node may be unable to resolve external DNS records": "", "Node operations": "", "Node {{.name}} was successfully deleted.": "", "Node {{.nodeName}} does not exist.": "", @@ -331,7 +331,8 @@ "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommended}}MB. Kubernetes may crash unexpectedly.": "", "Requested memory allocation {{.requested_size}} is less than the minimum allowed of {{.minimum_size}}": "Die angeforderte Speicherzuweisung {{.requested_size}} liegt unter dem zulässigen Mindestwert von {{.minimum_size}}.", "Requested memory allocation {{.requested}}MB is less than the usable minimum of {{.minimum}}MB": "", - "Retarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting the {{.name}} service may improve performance.": "", "Retrieve the ssh identity key path of the specified cluster": "", "Retrieve the ssh identity key path of the specified cluster.": "", "Retrieves the IP address of the running cluster": "", @@ -362,6 +363,7 @@ "Show only log entries which point to known problems": "", "Show only the most recent journal entries, and continuously print new entries as they are appended to the journal.": "", "Skipped switching kubectl context for {{.profile_name}} because --keep-context was set.": "", + "Sorry, Kubernetes v{{.k8sVersion}} requires conntrack to be installed in root's path": "", "Sorry, Kubernetes {{.version}} is not supported by this release of minikube": "", "Sorry, completion support is not yet implemented for {{.name}}": "", "Sorry, the kubeadm.{{.parameter_name}} parameter is currently not supported by --extra-config": "Leider wird der Parameter kubeadm.{{.parameter_name}} momentan von --extra-config nicht unterstützt.", @@ -376,6 +378,7 @@ "StartHost failed again: {{.error}}": "", "StartHost failed, but will try again: {{.error}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting {{.controlPlane}}node {{.name}} in cluster {{.cluster}}": "", "Starts a local kubernetes cluster": "Startet einen lokalen Kubernetes-Cluster", "Starts a node.": "", "Starts an existing stopped node in a cluster.": "", @@ -441,7 +444,6 @@ "The node to get logs from. Defaults to the primary control plane.": "", "The node to ssh into. Defaults to the primary control plane.": "", "The none driver is not compatible with multi-node clusters.": "", - "The none driver requires conntrack to be installed for kubernetes version {{.k8sVersion}}": "", "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'": "", @@ -465,6 +467,7 @@ "This will keep the existing kubectl context and will create a minikube context.": "Dadurch wird der vorhandene Kubectl-Kontext beibehalten und ein minikube-Kontext erstellt.", "This will start the mount daemon and automatically mount files into minikube": "Dadurch wird der Mount-Daemon gestartet und die Dateien werden automatisch in minikube geladen", "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": "Tipp: Um diesen Root-Cluster zu entfernen, führen Sie Folgendes aus: sudo {{.cmd}} delete", "To connect to this cluster, use: kubectl --context={{.name}}": "Verwenden Sie zum Herstellen einer Verbindung zu diesem Cluster: kubectl --context = {{.name}}", @@ -473,6 +476,7 @@ "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "", "To fix this, run: {{.command}}": "", "To proceed, either:\n\n1) Delete the existing \"{{.name}}\" cluster using: '{{.delcommand}}'\n\n* or *\n\n2) Start the existing \"{{.name}}\" cluster using: '{{.command}} --driver={{.old}}'": "", + "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 start minikube with HyperV 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:": "Möglicherweise müssen Sie Kubectl- oder minikube-Befehle verschieben, um sie als eigenen Nutzer zu verwenden. Um beispielsweise Ihre eigenen Einstellungen zu überschreiben, führen Sie aus:", @@ -506,7 +510,6 @@ "Unable to pull images, which may be OK: {{.error}}": "Bilder können nicht abgerufen werden, was möglicherweise kein Problem darstellt: {{.error}}", "Unable to remove machine directory": "", "Unable to restart cluster, will reset it: {{.error}}": "", - "Unable to start VM after repeated tries. Please try {{'minikube delete' if possible": "", "Unable to stop VM": "", "Unable to update {{.driver}} driver: {{.error}}": "", "Unable to verify SSH connectivity: {{.error}}. Will retry...": "", @@ -542,7 +545,6 @@ "Using the {{.driver}} driver based on existing profile": "", "Using the {{.driver}} driver based on user configuration": "", "VM driver is one of: %v": "VM-Treiber ist einer von: %v", - "VM is unable to access {{.repository}}, you may need to configure a proxy or set --image-repository": "", "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "", "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "", "Verify the IP address of the running cluster in kubeconfig.": "", diff --git a/translations/es.json b/translations/es.json index ee0814d4a0..094b283d71 100644 --- a/translations/es.json +++ b/translations/es.json @@ -8,7 +8,6 @@ "'none' driver does not support 'minikube podman-env' command": "", "'none' driver does not support 'minikube ssh' command": "", "'{{.driver}}' driver reported an issue: {{.error}}": "", - "- {{.profile}}": "", "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/": "", "A firewall is blocking Docker the minikube VM from reaching the internet. You may need to configure it to 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.": "", @@ -148,6 +147,7 @@ "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}}": "Error: Has seleccionado Kubernetes {{.new}}, pero el clúster de tu perfil utiliza la versión {{.old}}. No se puede cambiar a una versión inferior sin eliminar todos los datos y recursos pertinentes, pero dispones de las siguientes opciones para continuar con la operación:\n* Volver a crear el clúster con Kubernetes {{.new}}: ejecuta \"minikube delete {{.profile}}\" y, luego, \"minikube start {{.profile}} --kubernetes-version={{.new}}\"\n* Crear un segundo clúster con Kubernetes {{.new}}: ejecuta \"minikube start -p \u003cnuevo nombre\u003e --kubernetes-version={{.new}}\"\n* Reutilizar el clúster actual con Kubernetes {{.old}} o una versión posterior: ejecuta \"minikube start {{.profile}} --kubernetes-version={{.old}}", "Error: [{{.id}}] {{.error}}": "", "Examples": "", + "Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "", "Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "", "Exiting": "Saliendo", "Exiting.": "", @@ -185,6 +185,7 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "", "Failed to update config": "", + "Failed to update kubeconfig file.": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -270,7 +271,6 @@ "Networking and Connectivity Commands:": "", "No minikube profile was found. You can create one using `minikube start`.": "", "Node \"{{.node_name}}\" stopped.": "", - "Node may be unable to resolve external DNS records": "", "Node operations": "", "Node {{.name}} was successfully deleted.": "", "Node {{.nodeName}} does not exist.": "", @@ -332,7 +332,8 @@ "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommended}}MB. Kubernetes may crash unexpectedly.": "", "Requested memory allocation {{.requested_size}} is less than the minimum allowed of {{.minimum_size}}": "El valor de la asignación de memoria de {{.requested_size}} solicitada es inferior al valor mínimo de {{.minimum_size}}", "Requested memory allocation {{.requested}}MB is less than the usable minimum of {{.minimum}}MB": "", - "Retarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting the {{.name}} service may improve performance.": "", "Retrieve the ssh identity key path of the specified cluster": "", "Retrieve the ssh identity key path of the specified cluster.": "", "Retrieves the IP address of the running cluster": "", @@ -363,6 +364,7 @@ "Show only log entries which point to known problems": "", "Show only the most recent journal entries, and continuously print new entries as they are appended to the journal.": "", "Skipped switching kubectl context for {{.profile_name}} because --keep-context was set.": "", + "Sorry, Kubernetes v{{.k8sVersion}} requires conntrack to be installed in root's path": "", "Sorry, Kubernetes {{.version}} is not supported by this release of minikube": "", "Sorry, completion support is not yet implemented for {{.name}}": "", "Sorry, the kubeadm.{{.parameter_name}} parameter is currently not supported by --extra-config": "De momento, --extra-config no admite el parámetro kubeadm.{{.parameter_name}}", @@ -377,6 +379,7 @@ "StartHost failed again: {{.error}}": "", "StartHost failed, but will try again: {{.error}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting {{.controlPlane}}node {{.name}} in cluster {{.cluster}}": "", "Starts a local kubernetes cluster": "Inicia un clúster de Kubernetes local", "Starts a node.": "", "Starts an existing stopped node in a cluster.": "", @@ -442,7 +445,6 @@ "The node to get logs from. Defaults to the primary control plane.": "", "The node to ssh into. Defaults to the primary control plane.": "", "The none driver is not compatible with multi-node clusters.": "", - "The none driver requires conntrack to be installed for kubernetes version {{.k8sVersion}}": "", "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'": "", @@ -466,6 +468,7 @@ "This will keep the existing kubectl context and will create a minikube context.": "Se conservará el contexto de kubectl actual y se creará uno de minikube.", "This will start the mount daemon and automatically mount files into minikube": "Se iniciará el daemon de activación y se activarán automáticamente los archivos en 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": "Para eliminar este clúster de raíz, ejecuta: sudo {{.cmd}} delete", "To connect to this cluster, use: kubectl --context={{.name}}": "Para conectarte a este clúster, usa: kubectl --context={{.name}}", @@ -474,6 +477,7 @@ "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "", "To fix this, run: {{.command}}": "", "To proceed, either:\n\n1) Delete the existing \"{{.name}}\" cluster using: '{{.delcommand}}'\n\n* or *\n\n2) Start the existing \"{{.name}}\" cluster using: '{{.command}} --driver={{.old}}'": "", + "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 start minikube with HyperV 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:": "Para usar comandos de kubectl o minikube como tu propio usuario, puede que debas reubicarlos. Por ejemplo, para sobrescribir tu configuración, ejecuta:", @@ -507,7 +511,6 @@ "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 remove machine directory": "", "Unable to restart cluster, will reset it: {{.error}}": "", - "Unable to start VM after repeated tries. Please try {{'minikube delete' if possible": "", "Unable to stop VM": "", "Unable to update {{.driver}} driver: {{.error}}": "", "Unable to verify SSH connectivity: {{.error}}. Will retry...": "", @@ -543,7 +546,6 @@ "Using the {{.driver}} driver based on existing profile": "", "Using the {{.driver}} driver based on user configuration": "", "VM driver is one of: %v": "El controlador de la VM es uno de los siguientes: %v", - "VM is unable to access {{.repository}}, you may need to configure a proxy or set --image-repository": "", "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "", "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "", "Verify the IP address of the running cluster in kubeconfig.": "", diff --git a/translations/fr.json b/translations/fr.json index 3148fd8a0a..fa16b33954 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -7,7 +7,6 @@ "'none' driver does not support 'minikube podman-env' command": "", "'none' driver does not support 'minikube ssh' command": "", "'{{.driver}}' driver reported an issue: {{.error}}": "", - "- {{.profile}}": "", "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/": "", "A firewall is blocking Docker the minikube VM from reaching the internet. You may need to configure it to 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.": "", @@ -84,6 +83,7 @@ "Display dashboard URL instead of opening a browser": "", "Display the kubernetes addons URL in the CLI instead of opening it in the default browser": "", "Display the kubernetes service URL in the CLI instead of opening it in the default browser": "", + "Display values currently set in the minikube config file": "", "Display values currently set in the minikube config file.": "", "Docker inside the VM is unavailable. Try running 'minikube delete' to reset the VM.": "", "Docs have been saved at - {{.path}}": "", @@ -144,6 +144,7 @@ "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}}\".", "Error: [{{.id}}] {{.error}}": "", "Examples": "", + "Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "", "Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "", "Exiting": "Fermeture…", "Exiting.": "", @@ -181,6 +182,7 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "", "Failed to update config": "", + "Failed to update kubeconfig file.": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -266,7 +268,6 @@ "Networking and Connectivity Commands:": "", "No minikube profile was found. You can create one using `minikube start`.": "", "Node \"{{.node_name}}\" stopped.": "Le noeud \"{{.node_name}}\" est arrêté.", - "Node may be unable to resolve external DNS records": "", "Node operations": "", "Node {{.name}} was successfully deleted.": "", "Node {{.nodeName}} does not exist.": "", @@ -329,7 +330,8 @@ "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommended}}MB. Kubernetes may crash unexpectedly.": "", "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 less than the usable minimum of {{.minimum}}MB": "", - "Retarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting the {{.name}} service may improve performance.": "", "Retrieve the ssh identity key path of the specified cluster": "", "Retrieve the ssh identity key path of the specified cluster.": "", "Retrieves the IP address of the running cluster": "", @@ -360,6 +362,7 @@ "Show only log entries which point to known problems": "", "Show only the most recent journal entries, and continuously print new entries as they are appended to the journal.": "", "Skipped switching kubectl context for {{.profile_name}} because --keep-context was set.": "", + "Sorry, Kubernetes v{{.k8sVersion}} requires conntrack to be installed in root's path": "", "Sorry, Kubernetes {{.version}} is not supported by this release of minikube": "", "Sorry, completion support is not yet implemented for {{.name}}": "", "Sorry, the kubeadm.{{.parameter_name}} parameter is currently not supported by --extra-config": "Désolé, le paramètre kubeadm.{{.parameter_name}} ne peut actuellement pas être utilisé avec \"--extra-config\".", @@ -374,6 +377,7 @@ "StartHost failed again: {{.error}}": "", "StartHost failed, but will try again: {{.error}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting {{.controlPlane}}node {{.name}} in cluster {{.cluster}}": "", "Starts a local kubernetes cluster": "Démarre un cluster Kubernetes local.", "Starts a node.": "", "Starts an existing stopped node in a cluster.": "", @@ -437,7 +441,6 @@ "The node to get logs from. Defaults to the primary control plane.": "", "The node to ssh into. Defaults to the primary control plane.": "", "The none driver is not compatible with multi-node clusters.": "", - "The none driver requires conntrack to be installed for kubernetes version {{.k8sVersion}}": "", "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'": "", @@ -461,6 +464,7 @@ "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.": "", + "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": "Conseil : Pour supprimer ce cluster appartenant à la racine, exécutez la commande \"sudo {{.cmd}} delete\".", "To connect to this cluster, use: kubectl --context={{.name}}": "Pour vous connecter à ce cluster, utilisez la commande \"kubectl --context={{.name}}\".", @@ -469,6 +473,7 @@ "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "", "To fix this, run: {{.command}}": "", "To proceed, either:\n\n1) Delete the existing \"{{.name}}\" cluster using: '{{.delcommand}}'\n\n* or *\n\n2) Start the existing \"{{.name}}\" cluster using: '{{.command}} --driver={{.old}}'": "", + "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 start minikube with HyperV 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:": "Pour utiliser les commandes kubectl ou minikube sous votre propre nom d'utilisateur, vous devrez peut-être les déplacer. Par exemple, pour écraser vos propres paramètres, exécutez la commande suivante :", @@ -502,7 +507,6 @@ "Unable to pull images, which may be OK: {{.error}}": "Impossible d'extraire des images, qui sont peut-être au bon format : {{.error}}", "Unable to remove machine directory": "", "Unable to restart cluster, will reset it: {{.error}}": "", - "Unable to start VM after repeated tries. Please try {{'minikube delete' if possible": "", "Unable to stop VM": "", "Unable to update {{.driver}} driver: {{.error}}": "", "Unable to verify SSH connectivity: {{.error}}. Will retry...": "", @@ -538,7 +542,6 @@ "Using the {{.driver}} driver based on existing profile": "", "Using the {{.driver}} driver based on user configuration": "", "VM driver is one of: %v": "Le pilote de la VM appartient à : %v", - "VM is unable to access {{.repository}}, you may need to configure a proxy or set --image-repository": "", "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "", "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "", "Verify the IP address of the running cluster in kubeconfig.": "", @@ -663,4 +666,4 @@ "{{.prefix}}minikube {{.version}} on {{.platform}}": "{{.prefix}}minikube {{.version}} sur {{.platform}}", "{{.type}} is not yet a supported filesystem. We will try anyways!": "", "{{.url}} is not accessible: {{.error}}": "" -} +} \ No newline at end of file diff --git a/translations/ja.json b/translations/ja.json index ae49a12ff5..8f5b3dff5c 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -13,7 +13,6 @@ "'none' driver does not support 'minikube podman-env' command": "", "'none' driver does not support 'minikube ssh' command": "「none」ドライバーは「minikube ssh」コマンドをサポートしていません", "'{{.driver}}' driver reported an issue: {{.error}}": "「{{.driver}}」ドライバーがエラーを報告しました: {{.error}}", - "- {{.profile}}": "", "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/": "", "A firewall is blocking Docker the minikube VM from reaching the internet. You may need to configure it to 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.": "", @@ -153,6 +152,7 @@ "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}}": "エラー: Kubernetes v{{.new}} が選択されましたが、使用しているプロファイルの既存クラスタで実行されているのは Kubernetes v{{.old}} です。非破壊的なダウングレードはサポートされていませんが、以下のいずれかの方法で続行できます。\n* Kubernetes v{{.new}} を使用してクラスタを再作成する: 「minikube delete {{.profile}}」を実行してから、「minikube start {{.profile}} --kubernetes-version={{.new}}」を実行します。\n* Kubernetes v{{.new}} を使用して 2 つ目のクラスタを作成する: 「minikube start -p \u003cnew name\u003e --kubernetes-version={{.new}}」を実行します。\n* Kubernetes v{{.old}} 以降を使用して既存のクラスタを再利用する: 「minikube start {{.profile}} --kubernetes-version={{.old}}」を実行します。", "Error: [{{.id}}] {{.error}}": "", "Examples": "", + "Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "", "Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "", "Exiting": "終了しています", "Exiting.": "終了しています。", @@ -190,6 +190,7 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "", "Failed to update config": "", + "Failed to update kubeconfig file.": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -275,7 +276,6 @@ "Networking and Connectivity Commands:": "", "No minikube profile was found. You can create one using `minikube start`.": "", "Node \"{{.node_name}}\" stopped.": "", - "Node may be unable to resolve external DNS records": "", "Node operations": "", "Node {{.name}} was successfully deleted.": "", "Node {{.nodeName}} does not exist.": "", @@ -337,7 +337,8 @@ "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommended}}MB. Kubernetes may crash unexpectedly.": "", "Requested memory allocation {{.requested_size}} is less than the minimum allowed of {{.minimum_size}}": "リクエストされたメモリ割り当て {{.requested_size}} が許可される最小値 {{.minimum_size}} 未満です", "Requested memory allocation {{.requested}}MB is less than the usable minimum of {{.minimum}}MB": "", - "Retarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting the {{.name}} service may improve performance.": "", "Retrieve the ssh identity key path of the specified cluster": "", "Retrieve the ssh identity key path of the specified cluster.": "", "Retrieves the IP address of the running cluster": "", @@ -368,6 +369,7 @@ "Show only log entries which point to known problems": "", "Show only the most recent journal entries, and continuously print new entries as they are appended to the journal.": "", "Skipped switching kubectl context for {{.profile_name}} because --keep-context was set.": "", + "Sorry, Kubernetes v{{.k8sVersion}} requires conntrack to be installed in root's path": "", "Sorry, Kubernetes {{.version}} is not supported by this release of minikube": "", "Sorry, completion support is not yet implemented for {{.name}}": "", "Sorry, the kubeadm.{{.parameter_name}} parameter is currently not supported by --extra-config": "申し訳ありません。現在、kubeadm.{{.parameter_name}} パラメータは --extra-config でサポートされていません", @@ -382,6 +384,7 @@ "StartHost failed again: {{.error}}": "", "StartHost failed, but will try again: {{.error}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting {{.controlPlane}}node {{.name}} in cluster {{.cluster}}": "", "Starts a local kubernetes cluster": "ローカルの Kubernetes クラスタを起動します", "Starts a node.": "", "Starts an existing stopped node in a cluster.": "", @@ -447,7 +450,6 @@ "The node to get logs from. Defaults to the primary control plane.": "", "The node to ssh into. Defaults to the primary control plane.": "", "The none driver is not compatible with multi-node clusters.": "", - "The none driver requires conntrack to be installed for kubernetes version {{.k8sVersion}}": "", "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'": "", @@ -471,6 +473,7 @@ "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: kubectl --context={{.name}}": "このクラスタに接続するには、「kubectl --context={{.name}}」を使用します", @@ -479,6 +482,7 @@ "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "", "To fix this, run: {{.command}}": "", "To proceed, either:\n\n1) Delete the existing \"{{.name}}\" cluster using: '{{.delcommand}}'\n\n* or *\n\n2) Start the existing \"{{.name}}\" cluster using: '{{.command}} --driver={{.old}}'": "", + "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 start minikube with HyperV 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 コマンドを独自のユーザーとして使用するには、そのコマンドの再配置が必要な場合があります。たとえば、独自の設定を上書きするには、以下を実行します。", @@ -512,7 +516,6 @@ "Unable to pull images, which may be OK: {{.error}}": "イメージを pull できませんが、問題ありません。{{.error}}", "Unable to remove machine directory": "", "Unable to restart cluster, will reset it: {{.error}}": "", - "Unable to start VM after repeated tries. Please try {{'minikube delete' if possible": "", "Unable to stop VM": "", "Unable to update {{.driver}} driver: {{.error}}": "", "Unable to verify SSH connectivity: {{.error}}. Will retry...": "", @@ -548,7 +551,6 @@ "Using the {{.driver}} driver based on existing profile": "", "Using the {{.driver}} driver based on user configuration": "", "VM driver is one of: %v": "VM ドライバは次のいずれかです。%v", - "VM is unable to access {{.repository}}, you may need to configure a proxy or set --image-repository": "", "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "", "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "", "Verify the IP address of the running cluster in kubeconfig.": "", diff --git a/translations/ko.json b/translations/ko.json index 9fdde65376..20aaa2ef59 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -12,7 +12,6 @@ "'none' driver does not support 'minikube ssh' command": "'none' 드라이버는 'minikube ssh' 커맨드를 지원하지 않습니다", "'{{.driver}}' driver reported an issue: {{.error}}": "'{{.driver}}' 드라이버가 다음 이슈를 기록하였습니다: {{.error}}", "'{{.profile}}' is not running": "'{{.profile}}' 이 실행 중이지 않습니다", - "- {{.profile}}": "", "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/": "", "A firewall is blocking Docker the minikube VM from reaching the internet. You may need to configure it to 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.": "", @@ -64,10 +63,10 @@ "Could not process error from failed deletion": "", "Could not process errors from failed deletion": "", "Country code of the image mirror to be used. Leave empty to use the global one. For Chinese mainland users, set it to cn.": "", - "Creating Kubernetes in {{.driver_name}} {{.machine_type}} with (CPUs={{.number_of_cpus}}) ({{.number_of_host_cpus}} available), Memory={{.memory_size}}MB ({{.host_memory_size}}MB available) ...": "", + "Creating Kubernetes in {{.driver_name}} {{.machine_type}} with (CPUs={{.number_of_cpus}}) ({{.number_of_host_cpus}} available), Memory={{.memory_size}}MB ({{.host_memory_size}}MB available) ...": "{{.driver_name}} {{.machine_type}} (CPUs={{.number_of_cpus}}, Memory={{.memory_size}}MB, Disk={{.disk_size}}MB) 에 쿠버네티스를 설치하는 중 ...", "Creating mount {{.name}} ...": "", "Creating {{.driver_name}} VM (CPUs={{.number_of_cpus}}, Memory={{.memory_size}}MB, Disk={{.disk_size}}MB) ...": "{{.driver_name}} VM (CPUs={{.number_of_cpus}}, Memory={{.memory_size}}MB, Disk={{.disk_size}}MB) 를 생성하는 중 ...", - "Creating {{.driver_name}} {{.machine_type}} (CPUs={{.number_of_cpus}}, Memory={{.memory_size}}MB, Disk={{.disk_size}}MB) ...": "", + "Creating {{.driver_name}} {{.machine_type}} (CPUs={{.number_of_cpus}}, Memory={{.memory_size}}MB, Disk={{.disk_size}}MB) ...": "{{.driver_name}} {{.machine_type}} (CPUs={{.number_of_cpus}}, Memory={{.memory_size}}MB, Disk={{.disk_size}}MB) 를 생성하는 중 ...", "DEPRECATED, use `driver` instead.": "DEPRECATED 되었습니다, 'driver' 를 사용하세요", "Default group id used for the mount": "마운트를 위한 디폴트 group id", "Default user id used for the mount": "마운트를 위한 디폴트 user id", @@ -154,6 +153,7 @@ "Error writing mount pid": "", "Error: [{{.id}}] {{.error}}": "", "Examples": "예시", + "Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "", "Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "", "Exiting": "", "Exiting.": "", @@ -193,6 +193,7 @@ "Failed to stop node {{.name}}": "노드 {{.name}} 중지에 실패하였습니다", "Failed to update cluster": "클러스터를 수정하는 데 실패하였습니다", "Failed to update config": "컨피그를 수정하는 데 실패하였습니다", + "Failed to update kubeconfig file.": "", "Failed unmount: {{.error}}": "마운트 해제에 실패하였습니다: {{.error}}", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -260,8 +261,8 @@ "Log into or run a command on a machine with SSH; similar to 'docker-machine ssh'": "", "Log into or run a command on a machine with SSH; similar to 'docker-machine ssh'.": "", "Message Size: {{.size}}": "", - "Minikube is a CLI tool that provisions and manages single-node Kubernetes clusters optimized for development workflows.": "", - "Minikube is a tool for managing local Kubernetes clusters.": "", + "Minikube is a CLI tool that provisions and manages single-node Kubernetes clusters optimized for development workflows.": "Minikube 는 개발용으로 최적화된 싱글 노드 쿠버네티스 클러스터 제공 및 관리 CLI 툴입니다", + "Minikube is a tool for managing local Kubernetes clusters.": "Minikube 는 로컬 쿠버네티스 클러스터 관리 툴입니다", "Modify minikube config": "", "Modify minikube's kubernetes addons": "", "Mount type: {{.name}}": "", @@ -275,7 +276,6 @@ "Networking and Connectivity Commands:": "", "No minikube profile was found. You can create one using `minikube start`.": "", "Node \"{{.node_name}}\" stopped.": "", - "Node may be unable to resolve external DNS records": "", "Node operations": "", "Node {{.name}} was successfully deleted.": "", "Node {{.nodeName}} does not exist.": "", @@ -309,7 +309,7 @@ "Please specify the directory to be mounted: \n\tminikube mount \u003csource directory\u003e:\u003ctarget directory\u003e (example: \"/host-home:/vm-home\")": "", "Populates the specified folder with documentation in markdown about minikube": "", "Powering off \"{{.profile_name}}\" via SSH ...": "", - "Preparing Kubernetes {{.k8sVersion}} on {{.runtime}} {{.runtimeVersion}} ...": "", + "Preparing Kubernetes {{.k8sVersion}} on {{.runtime}} {{.runtimeVersion}} ...": "쿠버네티스 {{.k8sVersion}} 을 {{.runtime}} {{.runtimeVersion}} 런타임으로 설치하는 중", "Print current and latest version number": "현재 그리고 최신 버전을 출력합니다", "Print the version of minikube": "minikube 의 버전을 출력합니다", "Print the version of minikube.": "minikube 의 버전을 출력합니다.", @@ -326,13 +326,14 @@ "Reinstall VirtualBox and reboot. Alternatively, try the kvm2 driver: https://minikube.sigs.k8s.io/docs/reference/drivers/kvm2/": "", "Reinstall VirtualBox and verify that it is not blocked: System Preferences -\u003e Security \u0026 Privacy -\u003e General -\u003e Some system software was blocked from loading": "", "Related issues:": "", - "Removed all traces of the \"{{.name}}\" cluster.": "", + "Removed all traces of the \"{{.name}}\" cluster.": "\"{{.name}}\" 클러스터 관련 정보가 모두 삭제되었습니다", "Removing {{.directory}} ...": "", "Requested cpu count {{.requested_cpus}} is less than the minimum allowed of {{.minimum_cpus}}": "", "Requested disk size {{.requested_size}} is less than minimum of {{.minimum_size}}": "", "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommended}}MB. Kubernetes may crash unexpectedly.": "", "Requested memory allocation {{.requested}}MB is less than the usable minimum of {{.minimum}}MB": "", - "Retarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting the {{.name}} service may improve performance.": "", "Retrieve the ssh identity key path of the specified cluster": "", "Retrieve the ssh identity key path of the specified cluster.": "", "Retrieves the IP address of the running cluster": "", @@ -363,6 +364,7 @@ "Show only log entries which point to known problems": "", "Show only the most recent journal entries, and continuously print new entries as they are appended to the journal.": "", "Skipped switching kubectl context for {{.profile_name}} because --keep-context was set.": "", + "Sorry, Kubernetes v{{.k8sVersion}} requires conntrack to be installed in root's path": "", "Sorry, Kubernetes {{.version}} is not supported by this release of minikube": "죄송합니다, 쿠버네티스 {{.version}} 는 해당 minikube 버전에서 지원하지 않습니다", "Sorry, completion support is not yet implemented for {{.name}}": "", "Sorry, the kubeadm.{{.parameter_name}} parameter is currently not supported by --extra-config": "", @@ -378,6 +380,7 @@ "StartHost failed, but will try again: {{.error}}": "", "Starting node": "노드를 시작하는 중", "Starting tunnel for service {{.service}}.": "", + "Starting {{.controlPlane}}node {{.name}} in cluster {{.cluster}}": "", "Starts a local kubernetes cluster": "로컬 쿠버네티스 클러스터를 시작합니다", "Starts a node.": "노드를 시작합니다", "Starts an existing stopped node in a cluster.": "클러스터의 중지된 노드를 시작합니다", @@ -434,7 +437,6 @@ "The node to get logs from. Defaults to the primary control plane.": "", "The node to ssh into. Defaults to the primary control plane.": "", "The none driver is not compatible with multi-node clusters.": "", - "The none driver requires conntrack to be installed for kubernetes version {{.k8sVersion}}": "", "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'": "", @@ -455,12 +457,14 @@ "This is unusual - you may want to investigate using \"{{.command}}\"": "", "This will keep the existing kubectl context and will create a minikube context.": "", "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}}": "", "To connect to this cluster, use: kubectl --context={{.name}}": "", "To connect to this cluster, use: kubectl --context={{.profile_name}}": "", "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "", "To fix this, run: {{.command}}": "", "To proceed, either:\n\n1) Delete the existing \"{{.name}}\" cluster using: '{{.delcommand}}'\n\n* or *\n\n2) Start the existing \"{{.name}}\" cluster using: '{{.command}} --driver={{.old}}'": "", + "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 start minikube with HyperV 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:": "", @@ -494,7 +498,6 @@ "Unable to remove machine directory": "", "Unable to remove machine directory: %v": "머신 디렉토리를 제거할 수 없습니다: %v", "Unable to restart cluster, will reset it: {{.error}}": "", - "Unable to start VM after repeated tries. Please try {{'minikube delete' if possible": "", "Unable to start VM. Please investigate and run 'minikube delete' if possible": "가상 머신을 시작할 수 없습니다. 확인 후 가능하면 'minikube delete' 를 실행하세요", "Unable to stop VM": "가상 머신을 중지할 수 없습니다", "Unable to update {{.driver}} driver: {{.error}}": "{{.driver}} 를 수정할 수 없습니다: {{.error}}", @@ -519,7 +522,7 @@ "Usage: minikube node stop [name]": "", "Use \"{{.CommandPath}} [command] --help\" for more information about a command.": "", "Use 'kubect get po -A' to find the correct and namespace name": "", - "Use -A to specify all namespaces": "", + "Use -A to specify all namespaces": "모든 namespace 를 확인하려면 -A 를 사용하세요", "Use VirtualBox to remove the conflicting VM and/or network interfaces": "", "Use native Golang SSH client (default true). Set to 'false' to use the command line 'ssh' command when accessing the docker machine. Useful for the machine drivers when they will not start with 'Waiting for SSH'.": "", "User ID: {{.userID}}": "", @@ -527,9 +530,8 @@ "Userspace file server:": "", "Using image repository {{.name}}": "", "Using the '{{.runtime}}' runtime with the 'none' driver is an untested configuration!": "", - "Using the {{.driver}} driver based on existing profile": "", - "Using the {{.driver}} driver based on user configuration": "", - "VM is unable to access {{.repository}}, you may need to configure a proxy or set --image-repository": "", + "Using the {{.driver}} driver based on existing profile": "기존 프로필에 기반하여 {{.driver}} 드라이버를 사용하는 중", + "Using the {{.driver}} driver based on user configuration": "유저 환경 설정 정보에 기반하여 {{.driver}} 드라이버를 사용하는 중", "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "", "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "", "Verify the IP address of the running cluster in kubeconfig.": "", @@ -548,7 +550,7 @@ "Where to root the NFS Shares, defaults to /nfsshares (hyperkit driver only)": "", "Whether to use external switch over Default Switch if virtual switch not explicitly specified. (hyperv driver only)": "", "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": "", - "You can also use 'minikube kubectl -- get pods' to invoke a matching version": "", + "You can also use 'minikube kubectl -- get pods' to invoke a matching version": "맞는 버전의 kubectl 을 사용하기 위해서는 다음과 같이 사용 가능합니다. minikube kubectl -- get pods'", "You can delete them using the following command(s):": "다음 커맨드(들)을 사용하여 제거할 수 있습니다", "You have selected Kubernetes v{{.new}}, but the existing cluster is running Kubernetes v{{.old}}": "", "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "", @@ -603,7 +605,7 @@ "minikube is unable to connect to the VM: {{.error}}\n\n\tThis is likely due to one of two reasons:\n\n\t- VPN or firewall interference\n\t- {{.hypervisor}} network configuration issue\n\n\tSuggested workarounds:\n\n\t- Disable your local VPN or firewall software\n\t- Configure your local VPN or firewall to allow access to {{.ip}}\n\t- Restart or reinstall {{.hypervisor}}\n\t- Use an alternative --vm-driver\n\t- Use --force to override this connectivity check": "", "minikube profile was successfully set to {{.profile_name}}": "", "minikube status --output OUTPUT. json, text": "", - "minikube {{.version}} is available! Download it: {{.url}}": "", + "minikube {{.version}} is available! Download it: {{.url}}": "minikube {{.version}} 이 사용가능합니다! 다음 경로에서 다운받으세요: {{.url}}", "mkcmp is used to compare performance of two minikube binaries": "", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "", "mount failed": "", @@ -642,7 +644,7 @@ "usage: minikube config unset PROPERTY_NAME": "", "usage: minikube delete": "", "usage: minikube profile [MINIKUBE_PROFILE_NAME]": "", - "zsh completion failed": "", + "zsh completion failed": "zsh 완성이 실패하였습니다", "{{.cluster}} IP has been updated to point at {{.ip}}": "", "{{.cluster}} IP was already correctly configured for {{.ip}}": "", "{{.driver_name}} \"{{.cluster}}\" {{.machine_type}} is missing, will recreate.": "", @@ -653,8 +655,8 @@ "{{.name}} has no available configuration options": "{{.driver}} 이 사용 가능한 환경 정보 옵션이 없습니다", "{{.name}} is already running": "{{.driver}} 이 이미 실행 중입니다", "{{.name}} was successfully configured": "{{.driver}} 이 성공적으로 설정되었습니다", - "{{.path}} is v{{.client_version}}, which may be incompatible with Kubernetes v{{.cluster_version}}.": "", - "{{.prefix}}minikube {{.version}} on {{.platform}}": "", + "{{.path}} is v{{.client_version}}, which may be incompatible with Kubernetes v{{.cluster_version}}.": "{{.path}} 의 버전은 v{{.client_version}} 이므로, 쿠버네티스 버전 v{{.cluster_version}} 과 호환되지 않을 수 있습니다", + "{{.prefix}}minikube {{.version}} on {{.platform}}": "{{.prefix}}{{.platform}} 위의 minikube {{.version}}", "{{.type}} is not yet a supported filesystem. We will try anyways!": "", "{{.url}} is not accessible: {{.error}}": "{{.url}} 이 접근 불가능합니다: {{.error}}" } \ No newline at end of file diff --git a/translations/pl.json b/translations/pl.json index 0a0d296553..a171c7311c 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -12,7 +12,6 @@ "'none' driver does not support 'minikube podman-env' command": "", "'none' driver does not support 'minikube ssh' command": "sterownik 'none' nie wspiera komendy 'minikube ssh'", "'{{.driver}}' driver reported an issue: {{.error}}": "", - "- {{.profile}}": "", "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/": "", "A firewall is blocking Docker the minikube VM from reaching the internet. You may need to configure it to 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.": "", @@ -153,6 +152,7 @@ "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}}\".", "Error: [{{.id}}] {{.error}}": "", "Examples": "Przykłady", + "Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "", "Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "", "Exiting": "", "Exiting.": "", @@ -190,6 +190,7 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "Aktualizacja klastra nie powiodła się", "Failed to update config": "Aktualizacja konfiguracji nie powiodła się", + "Failed to update kubeconfig file.": "", "Failed unmount: {{.error}}": "", "File permissions used for the mount": "", "Filter to use only VM Drivers": "", @@ -274,7 +275,6 @@ "Networking and Connectivity Commands:": "", "No minikube profile was found. You can create one using `minikube start`.": "", "Node \"{{.node_name}}\" stopped.": "", - "Node may be unable to resolve external DNS records": "", "Node operations": "", "Node {{.name}} was successfully deleted.": "", "Node {{.nodeName}} does not exist.": "", @@ -335,7 +335,8 @@ "Requested disk size {{.requested_size}} is less than minimum of {{.minimum_size}}": "", "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommended}}MB. Kubernetes may crash unexpectedly.": "", "Requested memory allocation {{.requested}}MB is less than the usable minimum of {{.minimum}}MB": "", - "Retarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting the {{.name}} service may improve performance.": "", "Retrieve the ssh identity key path of the specified cluster": "Pozyskuje ścieżkę do klucza ssh dla wyspecyfikowanego klastra", "Retrieve the ssh identity key path of the specified cluster.": "Pozyskuje ścieżkę do klucza ssh dla wyspecyfikowanego klastra.", "Retrieves the IP address of the running cluster": "Pobiera adres IP aktualnie uruchomionego klastra", @@ -366,6 +367,7 @@ "Show only log entries which point to known problems": "Pokaż logi które wskazują na znane problemy", "Show only the most recent journal entries, and continuously print new entries as they are appended to the journal.": "", "Skipped switching kubectl context for {{.profile_name}} because --keep-context was set.": "Zignorowano zmianę kontekstu kubectl ponieważ --keep-context zostało przekazane", + "Sorry, Kubernetes v{{.k8sVersion}} requires conntrack to be installed in root's path": "", "Sorry, Kubernetes {{.version}} is not supported by this release of minikube": "", "Sorry, completion support is not yet implemented for {{.name}}": "", "Sorry, the kubeadm.{{.parameter_name}} parameter is currently not supported by --extra-config": "", @@ -380,6 +382,7 @@ "StartHost failed again: {{.error}}": "", "StartHost failed, but will try again: {{.error}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting {{.controlPlane}}node {{.name}} in cluster {{.cluster}}": "", "Starts a local kubernetes cluster": "Uruchamianie lokalnego klastra kubernetesa", "Starts a node.": "", "Starts an existing stopped node in a cluster.": "", @@ -443,7 +446,6 @@ "The node to get logs from. Defaults to the primary control plane.": "", "The node to ssh into. Defaults to the primary control plane.": "", "The none driver is not compatible with multi-node clusters.": "", - "The none driver requires conntrack to be installed for kubernetes version {{.k8sVersion}}": "", "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'": "", @@ -465,6 +467,7 @@ "This is unusual - you may want to investigate using \"{{.command}}\"": "", "This will keep the existing kubectl context and will create a minikube context.": "", "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}}": "", "To connect to this cluster, use: kubectl --context={{.name}}": "Aby połączyć się z klastrem użyj: kubectl --context={{.name}}", "To connect to this cluster, use: kubectl --context={{.profile_name}}": "Aby połaczyć się z klastem uzyj: kubectl --context={{.profile_name}}", @@ -472,6 +475,7 @@ "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "", "To fix this, run: {{.command}}": "", "To proceed, either:\n\n1) Delete the existing \"{{.name}}\" cluster using: '{{.delcommand}}'\n\n* or *\n\n2) Start the existing \"{{.name}}\" cluster using: '{{.command}} --driver={{.old}}'": "", + "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 start minikube with HyperV Powershell must be in your PATH`": "Aby uruchomić minikube z HyperV Powershell musi znajdować się w zmiennej 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:": "", @@ -504,7 +508,6 @@ "Unable to remove machine directory": "", "Unable to restart cluster, will reset it: {{.error}}": "", "Unable to start VM": "Nie można uruchomić maszyny wirtualnej", - "Unable to start VM after repeated tries. Please try {{'minikube delete' if possible": "", "Unable to stop VM": "Nie można zatrzymać maszyny wirtualnej", "Unable to update {{.driver}} driver: {{.error}}": "", "Unable to verify SSH connectivity: {{.error}}. Will retry...": "", @@ -539,7 +542,6 @@ "Using the {{.driver}} driver based on existing profile": "", "Using the {{.driver}} driver based on user configuration": "", "VM driver is one of: %v": "Sterownik wirtualnej maszyny to jeden z: %v", - "VM is unable to access {{.repository}}, you may need to configure a proxy or set --image-repository": "", "Validation unable to parse disk size '{{.diskSize}}': {{.error}}": "", "Verify that your HTTP_PROXY and HTTPS_PROXY environment variables are set correctly.": "Weryfikuję czy zmienne HTTP_PROXY i HTTPS_PROXY sa ustawione poprawnie", "Verify the IP address of the running cluster in kubeconfig.": "Weryfikuję adres IP działającego klastra w kubeconfig", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index 10d574dc6e..072bb50ab5 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -13,7 +13,6 @@ "'none' driver does not support 'minikube podman-env' command": "", "'none' driver does not support 'minikube ssh' command": "'none' 驱动不支持 'minikube ssh' 命令", "'{{.driver}}' driver reported an issue: {{.error}}": "'{{.driver}}' 驱动程序报告了一个问题: {{.error}}", - "- {{.profile}}": "", "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 或者防火墙正在干扰对 minikube 虚拟机的 HTTP 访问。或者,您可以使用其它的虚拟机驱动:https://minikube.sigs.k8s.io/docs/start/", "A firewall is blocking Docker the minikube VM from reaching the internet. You may need to configure it to use a proxy.": "防火墙正在阻止 minikube 虚拟机中的 Docker 访问互联网。您可能需要对其进行配置为使用代理", "A firewall is blocking Docker within the minikube VM from reaching the internet. You may need to configure it to use a proxy.": "防火墙正在阻止 minikube 虚拟机中的 Docker 访问互联网,您可能需要对其进行配置为使用代理", @@ -193,6 +192,7 @@ "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}}": "错误:您已选择 Kubernetes v{{.new}},但您的配置文件的现有集群正在运行 Kubernetes v{{.old}}。非破坏性降级不受支持,但若要继续操作,您可以执行以下选项之一:\n* 使用 Kubernetes v{{.new}} 重新创建现有集群:运行“minikube delete {{.profile}}”,然后运行“minikube start {{.profile}} --kubernetes-version={{.new}}”\n* 使用 Kubernetes v{{.new}} 再创建一个集群:运行“minikube start -p \u003cnew name\u003e --kubernetes-version={{.new}}”\n* 通过 Kubernetes v{{.old}} 或更高版本重复使用现有集群:运行“minikube start {{.profile}} --kubernetes-version={{.old}}”", "Error: [{{.id}}] {{.error}}": "错误:[{{.id}}] {{.error}}", "Examples": "示例", + "Executing \"{{.command}}\" took an unusually long time: {{.duration}}": "", "Existing disk is missing new features ({{.error}}). To upgrade, run 'minikube delete'": "", "Exiting": "正在退出", "Exiting due to driver incompatibility": "由于驱动程序不兼容而退出", @@ -235,6 +235,7 @@ "Failed to stop node {{.name}}": "", "Failed to update cluster": "更新 cluster 失败", "Failed to update config": "更新 config 失败", + "Failed to update kubeconfig file.": "", "Failed unmount: {{.error}}": "unmount 失败:{{.error}}", "File permissions used for the mount": "用于 mount 的文件权限", "Filter to use only VM Drivers": "", @@ -323,7 +324,6 @@ "Networking and Connectivity Commands:": "网络和连接命令:", "No minikube profile was found. You can create one using `minikube start`.": "", "Node \"{{.node_name}}\" stopped.": "", - "Node may be unable to resolve external DNS records": "", "Node operations": "", "Node {{.name}} was successfully deleted.": "", "Node {{.nodeName}} does not exist.": "", @@ -387,7 +387,8 @@ "Requested memory allocation ({{.requested}}MB) is less than the recommended minimum {{.recommended}}MB. Kubernetes may crash unexpectedly.": "", "Requested memory allocation {{.requested_size}} is less than the minimum allowed of {{.minimum_size}}": "请求的内存分配 {{.requested_size}} 小于允许的 {{.minimum_size}} 最小值", "Requested memory allocation {{.requested}}MB is less than the usable minimum of {{.minimum}}MB": "", - "Retarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting existing {{.driver_name}} {{.machine_type}} for \"{{.cluster}}\" ...": "", + "Restarting the {{.name}} service may improve performance.": "", "Retrieve the ssh identity key path of the specified cluster": "检索指定集群的 ssh 密钥路径", "Retrieve the ssh identity key path of the specified cluster.": "检索指定集群的 ssh 密钥路径。", "Retrieves the IP address of the running cluster": "检索正在运行的群集的 IP 地址", @@ -420,6 +421,7 @@ "Show only log entries which point to known problems": "", "Show only the most recent journal entries, and continuously print new entries as they are appended to the journal.": "", "Skipped switching kubectl context for {{.profile_name}} because --keep-context was set.": "", + "Sorry, Kubernetes v{{.k8sVersion}} requires conntrack to be installed in root's path": "", "Sorry, Kubernetes {{.version}} is not supported by this release of minikube": "", "Sorry, completion support is not yet implemented for {{.name}}": "", "Sorry, the kubeadm.{{.parameter_name}} parameter is currently not supported by --extra-config": "抱歉,--extra-config 目前不支持 kubeadm.{{.parameter_name}} 参数", @@ -434,6 +436,7 @@ "StartHost failed again: {{.error}}": "", "StartHost failed, but will try again: {{.error}}": "", "Starting tunnel for service {{.service}}.": "", + "Starting {{.controlPlane}}node {{.name}} in cluster {{.cluster}}": "", "Starts a local kubernetes cluster": "启动本地 kubernetes 集群", "Starts a node.": "", "Starts an existing stopped node in a cluster.": "", @@ -503,7 +506,6 @@ "The node to get logs from. Defaults to the primary control plane.": "", "The node to ssh into. Defaults to the primary control plane.": "", "The none driver is not compatible with multi-node clusters.": "", - "The none driver requires conntrack to be installed for kubernetes version {{.k8sVersion}}": "", "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'": "输出的格式。'json' 或者 'table'", @@ -527,6 +529,7 @@ "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": "提示:要移除这个由根用户拥有的集群,请运行 sudo {{.cmd}} delete", "To connect to this cluster, use: kubectl --context={{.name}}": "如需连接到此集群,请使用 kubectl --context={{.name}}", @@ -535,6 +538,7 @@ "To disable this notice, run: 'minikube config set WantUpdateNotification false'\\n": "", "To fix this, run: {{.command}}": "", "To proceed, either:\n\n1) Delete the existing \"{{.name}}\" cluster using: '{{.delcommand}}'\n\n* or *\n\n2) Start the existing \"{{.name}}\" cluster using: '{{.command}} --driver={{.old}}'": "", + "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 start minikube with HyperV 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 命令,您可能需要重新定位该命令。例如,如需覆盖您的自定义设置,请运行:", @@ -570,7 +574,6 @@ "Unable to pull images, which may be OK: {{.error}}": "无法拉取镜像,有可能是正常状况:{{.error}}", "Unable to remove machine directory": "", "Unable to restart cluster, will reset it: {{.error}}": "", - "Unable to start VM after repeated tries. Please try {{'minikube delete' if possible": "", "Unable to start VM. Please investigate and run 'minikube delete' if possible": "无法启动虚拟机。可能的话请检查后执行 'minikube delete'", "Unable to stop VM": "无法停止虚拟机", "Unable to update {{.driver}} driver: {{.error}}": "",