From 2f1a11d8d379bf971e44b228d642746d92b50547 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Fri, 9 Aug 2019 15:04:07 -0700 Subject: [PATCH 01/40] Move reusable files (images, binaries, certs) to /data --- pkg/drivers/none/none.go | 4 +- pkg/minikube/assets/addons.go | 74 ++++---- pkg/minikube/assets/addons_test.go | 8 +- pkg/minikube/assets/vm_assets.go | 10 +- pkg/minikube/bootstrapper/bootstrapper.go | 2 +- pkg/minikube/bootstrapper/certs.go | 17 +- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 165 +++++++++++------- .../bootstrapper/kubeadm/templates.go | 14 +- pkg/minikube/bootstrapper/kubeadm/versions.go | 4 +- pkg/minikube/command/ssh_runner.go | 48 +++-- pkg/minikube/constants/constants.go | 36 ++-- pkg/minikube/logs/logs.go | 2 +- pkg/minikube/machine/cache_binaries.go | 7 +- pkg/minikube/machine/cache_images.go | 19 +- pkg/util/constants.go | 1 - 15 files changed, 224 insertions(+), 187 deletions(-) diff --git a/pkg/drivers/none/none.go b/pkg/drivers/none/none.go index dd18634d4a..6c3a5cfef4 100644 --- a/pkg/drivers/none/none.go +++ b/pkg/drivers/none/none.go @@ -38,8 +38,8 @@ const driverName = constants.DriverNone // cleanupPaths are paths to be removed by cleanup, and are used by both kubeadm and minikube. var cleanupPaths = []string{ - "/data/minikube", - "/etc/kubernetes/manifests", + constants.GuestEphemeralDir, + constants.GuestManifestsDir, "/var/lib/minikube", } diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go index 969d5e30d9..ec72f813e3 100644 --- a/pkg/minikube/assets/addons.go +++ b/pkg/minikube/assets/addons.go @@ -70,7 +70,7 @@ var Addons = map[string]*Addon{ "addon-manager": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/addon-manager.yaml.tmpl", - "/etc/kubernetes/manifests/", + constants.GuestManifestsDir, "addon-manager.yaml.tmpl", "0640", true), @@ -78,13 +78,13 @@ var Addons = map[string]*Addon{ "dashboard": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/dashboard/dashboard-dp.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "dashboard-dp.yaml", "0640", true), MustBinAsset( "deploy/addons/dashboard/dashboard-svc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "dashboard-svc.yaml", "0640", false), @@ -92,7 +92,7 @@ var Addons = map[string]*Addon{ "default-storageclass": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/storageclass/storageclass.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "storageclass.yaml", "0640", false), @@ -100,7 +100,7 @@ var Addons = map[string]*Addon{ "storage-provisioner": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/storage-provisioner/storage-provisioner.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "storage-provisioner.yaml", "0640", true), @@ -108,25 +108,25 @@ var Addons = map[string]*Addon{ "storage-provisioner-gluster": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/storage-provisioner-gluster/storage-gluster-ns.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "storage-gluster-ns.yaml", "0640", false), MustBinAsset( "deploy/addons/storage-provisioner-gluster/glusterfs-daemonset.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "glusterfs-daemonset.yaml", "0640", false), MustBinAsset( "deploy/addons/storage-provisioner-gluster/heketi-deployment.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "heketi-deployment.yaml", "0640", false), MustBinAsset( "deploy/addons/storage-provisioner-gluster/storage-provisioner-glusterfile.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "storage-privisioner-glusterfile.yaml", "0640", false), @@ -134,31 +134,31 @@ var Addons = map[string]*Addon{ "heapster": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/heapster/influx-grafana-rc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "influxGrafana-rc.yaml", "0640", true), MustBinAsset( "deploy/addons/heapster/grafana-svc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "grafana-svc.yaml", "0640", false), MustBinAsset( "deploy/addons/heapster/influxdb-svc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "influxdb-svc.yaml", "0640", false), MustBinAsset( "deploy/addons/heapster/heapster-rc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "heapster-rc.yaml", "0640", true), MustBinAsset( "deploy/addons/heapster/heapster-svc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "heapster-svc.yaml", "0640", false), @@ -166,37 +166,37 @@ var Addons = map[string]*Addon{ "efk": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/efk/elasticsearch-rc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "elasticsearch-rc.yaml", "0640", true), MustBinAsset( "deploy/addons/efk/elasticsearch-svc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "elasticsearch-svc.yaml", "0640", false), MustBinAsset( "deploy/addons/efk/fluentd-es-rc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "fluentd-es-rc.yaml", "0640", true), MustBinAsset( "deploy/addons/efk/fluentd-es-configmap.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "fluentd-es-configmap.yaml", "0640", false), MustBinAsset( "deploy/addons/efk/kibana-rc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "kibana-rc.yaml", "0640", false), MustBinAsset( "deploy/addons/efk/kibana-svc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "kibana-svc.yaml", "0640", false), @@ -204,19 +204,19 @@ var Addons = map[string]*Addon{ "ingress": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/ingress/ingress-configmap.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "ingress-configmap.yaml", "0640", false), MustBinAsset( "deploy/addons/ingress/ingress-rbac.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "ingress-rbac.yaml", "0640", false), MustBinAsset( "deploy/addons/ingress/ingress-dp.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "ingress-dp.yaml", "0640", true), @@ -224,19 +224,19 @@ var Addons = map[string]*Addon{ "metrics-server": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/metrics-server/metrics-apiservice.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "metrics-apiservice.yaml", "0640", false), MustBinAsset( "deploy/addons/metrics-server/metrics-server-deployment.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "metrics-server-deployment.yaml", "0640", true), MustBinAsset( "deploy/addons/metrics-server/metrics-server-service.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "metrics-server-service.yaml", "0640", false), @@ -244,19 +244,19 @@ var Addons = map[string]*Addon{ "registry": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/registry/registry-rc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "registry-rc.yaml", "0640", false), MustBinAsset( "deploy/addons/registry/registry-svc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "registry-svc.yaml", "0640", false), MustBinAsset( "deploy/addons/registry/registry-proxy.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "registry-proxy.yaml", "0640", false), @@ -264,7 +264,7 @@ var Addons = map[string]*Addon{ "registry-creds": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/registry-creds/registry-creds-rc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "registry-creds-rc.yaml", "0640", false), @@ -272,7 +272,7 @@ var Addons = map[string]*Addon{ "freshpod": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/freshpod/freshpod-rc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "freshpod-rc.yaml", "0640", true), @@ -280,7 +280,7 @@ var Addons = map[string]*Addon{ "nvidia-driver-installer": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/gpu/nvidia-driver-installer.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "nvidia-driver-installer.yaml", "0640", true), @@ -288,7 +288,7 @@ var Addons = map[string]*Addon{ "nvidia-gpu-device-plugin": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/gpu/nvidia-gpu-device-plugin.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "nvidia-gpu-device-plugin.yaml", "0640", true), @@ -296,13 +296,13 @@ var Addons = map[string]*Addon{ "logviewer": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/logviewer/logviewer-dp-and-svc.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "logviewer-dp-and-svc.yaml", "0640", false), MustBinAsset( "deploy/addons/logviewer/logviewer-rbac.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "logviewer-rbac.yaml", "0640", false), @@ -310,7 +310,7 @@ var Addons = map[string]*Addon{ "gvisor": NewAddon([]*BinAsset{ MustBinAsset( "deploy/addons/gvisor/gvisor-pod.yaml.tmpl", - constants.AddonsPath, + constants.GuestAddonsDir, "gvisor-pod.yaml", "0640", true), @@ -332,7 +332,7 @@ var Addons = map[string]*Addon{ // AddMinikubeDirAssets adds all addons and files to the list // of files to be copied to the vm. func AddMinikubeDirAssets(assets *[]CopyableFile) error { - if err := addMinikubeDirToAssets(constants.MakeMiniPath("addons"), constants.AddonsPath, assets); err != nil { + if err := addMinikubeDirToAssets(constants.MakeMiniPath("addons"), constants.GuestAddonsDir, assets); err != nil { return errors.Wrap(err, "adding addons folder to assets") } if err := addMinikubeDirToAssets(constants.MakeMiniPath("files"), "", assets); err != nil { diff --git a/pkg/minikube/assets/addons_test.go b/pkg/minikube/assets/addons_test.go index eccdbf2ad8..55d073b10b 100644 --- a/pkg/minikube/assets/addons_test.go +++ b/pkg/minikube/assets/addons_test.go @@ -56,18 +56,18 @@ func TestAddMinikubeDirAssets(t *testing.T) { }{ { relativePath: "/dir1/file1.txt", - expectedPath: constants.AddonsPath, + expectedPath: constants.GuestAddonsDir, }, { relativePath: "/dir1/file2.txt", - expectedPath: constants.AddonsPath, + expectedPath: constants.GuestAddonsDir, }, { relativePath: "/dir2/file1.txt", - expectedPath: constants.AddonsPath, + expectedPath: constants.GuestAddonsDir, }, }, - vmPath: constants.AddonsPath, + vmPath: constants.GuestAddonsDir, }, { description: "absolute path assets", diff --git a/pkg/minikube/assets/vm_assets.go b/pkg/minikube/assets/vm_assets.go index 2dcec3d3ac..f73a86bf3d 100644 --- a/pkg/minikube/assets/vm_assets.go +++ b/pkg/minikube/assets/vm_assets.go @@ -23,6 +23,7 @@ import ( "io" "os" "path" + "path/filepath" "github.com/golang/glog" "github.com/pkg/errors" @@ -78,14 +79,15 @@ func NewMemoryAssetTarget(d []byte, targetPath, permissions string) *MemoryAsset } // NewFileAsset creates a new FileAsset -func NewFileAsset(path, targetDir, targetName, permissions string) (*FileAsset, error) { - f, err := os.Open(path) +func NewFileAsset(src, targetDir, targetName, permissions string) (*FileAsset, error) { + glog.Infof("NewFileAsset: %s -> %s", src, filepath.Join(targetDir, targetName)) + f, err := os.Open(src) if err != nil { - return nil, errors.Wrapf(err, "Error opening file asset: %s", path) + return nil, errors.Wrapf(err, "Error opening file asset: %s", src) } return &FileAsset{ BaseAsset: BaseAsset{ - AssetName: path, + AssetName: src, TargetDir: targetDir, TargetName: targetName, Permissions: permissions, diff --git a/pkg/minikube/bootstrapper/bootstrapper.go b/pkg/minikube/bootstrapper/bootstrapper.go index b3ff31095d..25a0b3a396 100644 --- a/pkg/minikube/bootstrapper/bootstrapper.go +++ b/pkg/minikube/bootstrapper/bootstrapper.go @@ -56,7 +56,7 @@ const ( func GetCachedBinaryList(bootstrapper string) []string { switch bootstrapper { case BootstrapperTypeKubeadm: - return constants.GetKubeadmCachedBinaries() + return constants.KubeadmBinaries default: return []string{} } diff --git a/pkg/minikube/bootstrapper/certs.go b/pkg/minikube/bootstrapper/certs.go index b24f2e7d83..64b2a912c3 100644 --- a/pkg/minikube/bootstrapper/certs.go +++ b/pkg/minikube/bootstrapper/certs.go @@ -50,7 +50,9 @@ func SetupCerts(cmd command.Runner, k8s config.KubernetesConfig) error { if err := generateCerts(k8s); err != nil { return errors.Wrap(err, "Error generating certs") } - + if err := cmd.Run(fmt.Sprintf("sudo mkdir -p %s", constants.GuestCertsDir)); err != nil { + return errors.Wrap(err, "mkdir") + } copyableFiles := []assets.CopyableFile{} for _, cert := range certs { @@ -59,7 +61,7 @@ func SetupCerts(cmd command.Runner, k8s config.KubernetesConfig) error { if strings.HasSuffix(cert, ".key") { perms = "0600" } - certFile, err := assets.NewFileAsset(p, util.DefaultCertPath, cert, perms) + certFile, err := assets.NewFileAsset(p, constants.GuestCertsDir, cert, perms) if err != nil { return err } @@ -69,9 +71,9 @@ func SetupCerts(cmd command.Runner, k8s config.KubernetesConfig) error { kubeCfgSetup := &util.KubeConfigSetup{ ClusterName: k8s.NodeName, ClusterServerAddress: fmt.Sprintf("https://localhost:%d", k8s.NodePort), - ClientCertificate: path.Join(util.DefaultCertPath, "apiserver.crt"), - ClientKey: path.Join(util.DefaultCertPath, "apiserver.key"), - CertificateAuthority: path.Join(util.DefaultCertPath, "ca.crt"), + ClientCertificate: path.Join(constants.GuestCertsDir, "apiserver.crt"), + ClientKey: path.Join(constants.GuestCertsDir, "apiserver.key"), + CertificateAuthority: path.Join(constants.GuestCertsDir, "ca.crt"), KeepContext: false, } @@ -85,13 +87,12 @@ func SetupCerts(cmd command.Runner, k8s config.KubernetesConfig) error { return errors.Wrap(err, "encoding kubeconfig") } - kubeCfgFile := assets.NewMemoryAsset(data, - util.DefaultMinikubeDirectory, "kubeconfig", "0644") + kubeCfgFile := assets.NewMemoryAsset(data, constants.GuestEphemeralDir, "kubeconfig", "0644") copyableFiles = append(copyableFiles, kubeCfgFile) for _, f := range copyableFiles { if err := cmd.Copy(f); err != nil { - return err + return errors.Wrapf(err, "Copy %s", f.GetAssetName()) } } return nil diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index 9e45a9f963..2b7f15adb2 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -22,6 +22,7 @@ import ( "fmt" "net" "net/http" + "path/filepath" "runtime" "strings" "time" @@ -90,6 +91,9 @@ var PodsByLayer = []pod{ {"dns", "k8s-app", "kube-dns"}, } +// yamlConfigPath is the path to the kubeadm configuration +var yamlConfigPath = filepath.Join(constants.GuestEphemeralDir, "kubeadm.yaml") + // SkipAdditionalPreflights are additional preflights we skip depending on the runtime in use. var SkipAdditionalPreflights = map[string][]string{} @@ -206,8 +210,8 @@ func (k *Bootstrapper) StartCluster(k8s config.KubernetesConfig) error { } ignore := []string{ - "DirAvailable--etc-kubernetes-manifests", // Addons are stored in /etc/kubernetes/manifests - "DirAvailable--data-minikube", + fmt.Sprintf("DirAvailable-%s", strings.Replace(constants.GuestManifestsDir, "/", "-", -1)), + fmt.Sprintf("DirAvailable-%s", strings.Replace(constants.GuestPersistentDir, "/", "-", -1)), "FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml", "FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml", "FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml", @@ -223,8 +227,8 @@ func (k *Bootstrapper) StartCluster(k8s config.KubernetesConfig) error { ignore = append(ignore, "SystemVerification") } - cmd := fmt.Sprintf("sudo /usr/bin/kubeadm init --config %s %s --ignore-preflight-errors=%s", - constants.KubeadmConfigFile, extraFlags, strings.Join(ignore, ",")) + cmd := fmt.Sprintf("%s init --config %s %s --ignore-preflight-errors=%s", + invokeKubeadm(k8s.KubernetesVersion), yamlConfigPath, extraFlags, strings.Join(ignore, ",")) out, err := k.c.CombinedOutput(cmd) if err != nil { return errors.Wrapf(err, "cmd failed: %s\n%s\n", cmd, out) @@ -347,13 +351,12 @@ func (k *Bootstrapper) RestartCluster(k8s config.KubernetesConfig) error { controlPlane = "control-plane" } - configPath := constants.KubeadmConfigFile - baseCmd := fmt.Sprintf("sudo kubeadm %s", phase) + baseCmd := fmt.Sprintf("%s %s", invokeKubeadm(k8s.KubernetesVersion), phase) cmds := []string{ - fmt.Sprintf("%s phase certs all --config %s", baseCmd, configPath), - fmt.Sprintf("%s phase kubeconfig all --config %s", baseCmd, configPath), - fmt.Sprintf("%s phase %s all --config %s", baseCmd, controlPlane, configPath), - fmt.Sprintf("%s phase etcd local --config %s", baseCmd, configPath), + fmt.Sprintf("%s phase certs all --config %s", baseCmd, yamlConfigPath), + fmt.Sprintf("%s phase kubeconfig all --config %s", baseCmd, yamlConfigPath), + fmt.Sprintf("%s phase %s all --config %s", baseCmd, controlPlane, yamlConfigPath), + fmt.Sprintf("%s phase etcd local --config %s", baseCmd, yamlConfigPath), } // Run commands one at a time so that it is easier to root cause failures. @@ -367,7 +370,7 @@ func (k *Bootstrapper) RestartCluster(k8s config.KubernetesConfig) error { return errors.Wrap(err, "waiting for apiserver") } // restart the proxy and coredns - if err := k.c.Run(fmt.Sprintf("%s phase addon all --config %s", baseCmd, configPath)); err != nil { + if err := k.c.Run(fmt.Sprintf("%s phase addon all --config %s", baseCmd, yamlConfigPath)); err != nil { return errors.Wrapf(err, "addon phase") } @@ -379,8 +382,21 @@ func (k *Bootstrapper) RestartCluster(k8s config.KubernetesConfig) error { // waitForAPIServer waits for the apiserver to start up func (k *Bootstrapper) waitForAPIServer(k8s config.KubernetesConfig) error { - glog.Infof("Waiting for apiserver ...") - return wait.PollImmediate(time.Millisecond*300, time.Minute*3, func() (bool, error) { + glog.Infof("Waiting for apiserver process ...") + // To give a better error message, first check for process existence via ssh + err := wait.PollImmediate(time.Millisecond*300, time.Minute*2, func() (bool, error) { + ierr := k.c.Run(`pgrep apiserver`) + if ierr != nil { + return false, ierr + } + return true, nil + }) + if err != nil { + return fmt.Errorf("apiserver process never appeared") + } + + glog.Infof("Waiting for apiserver status ...") + return wait.PollImmediate(time.Millisecond*300, time.Minute*1, func() (bool, error) { status, err := k.GetAPIServerStatus(net.ParseIP(k8s.NodeIP), k8s.NodePort) glog.Infof("apiserver status: %s, err: %v", status, err) if err != nil { @@ -395,7 +411,7 @@ func (k *Bootstrapper) waitForAPIServer(k8s config.KubernetesConfig) error { // DeleteCluster removes the components that were started earlier func (k *Bootstrapper) DeleteCluster(k8s config.KubernetesConfig) error { - cmd := fmt.Sprintf("sudo kubeadm reset --force") + cmd := fmt.Sprintf("%s reset --force", invokeKubeadm(k8s.KubernetesVersion)) out, err := k.c.CombinedOutput(cmd) if err != nil { return errors.Wrapf(err, "kubeadm reset: %s\n%s\n", cmd, out) @@ -414,7 +430,7 @@ func (k *Bootstrapper) PullImages(k8s config.KubernetesConfig) error { return fmt.Errorf("pull command is not supported by kubeadm v%s", version) } - cmd := fmt.Sprintf("sudo kubeadm config images pull --config %s", constants.KubeadmConfigFile) + cmd := fmt.Sprintf("%s config images pull --config %s", invokeKubeadm(k8s.KubernetesVersion), yamlConfigPath) if err := k.c.Run(cmd); err != nil { return errors.Wrapf(err, "running cmd: %s", cmd) } @@ -428,15 +444,15 @@ func (k *Bootstrapper) SetupCerts(k8s config.KubernetesConfig) error { // NewKubeletConfig generates a new systemd unit containing a configured kubelet // based on the options present in the KubernetesConfig. -func NewKubeletConfig(k8s config.KubernetesConfig, r cruntime.Manager) (string, error) { +func NewKubeletConfig(k8s config.KubernetesConfig, r cruntime.Manager) ([]byte, error) { version, err := ParseKubernetesVersion(k8s.KubernetesVersion) if err != nil { - return "", errors.Wrap(err, "parsing kubernetes version") + return nil, errors.Wrap(err, "parsing kubernetes version") } extraOpts, err := ExtraConfigForComponent(Kubelet, k8s.ExtraOptions, version) if err != nil { - return "", errors.Wrap(err, "generating extra configuration for kubelet") + return nil, errors.Wrap(err, "generating extra configuration for kubelet") } for k, v := range r.KubeletOptions() { @@ -454,28 +470,28 @@ func NewKubeletConfig(k8s config.KubernetesConfig, r cruntime.Manager) (string, // parses a map of the feature gates for kubelet _, kubeletFeatureArgs, err := ParseFeatureArgs(k8s.FeatureGates) if err != nil { - return "", errors.Wrap(err, "parses feature gate config for kubelet") + return nil, errors.Wrap(err, "parses feature gate config for kubelet") } if kubeletFeatureArgs != "" { extraOpts["feature-gates"] = kubeletFeatureArgs } - extraFlags := convertToFlags(extraOpts) - b := bytes.Buffer{} opts := struct { ExtraOptions string ContainerRuntime string + KubeletPath string }{ - ExtraOptions: extraFlags, + ExtraOptions: convertToFlags(extraOpts), ContainerRuntime: k8s.ContainerRuntime, + KubeletPath: filepath.Join(binRoot(k8s.KubernetesVersion), "kubelet"), } if err := kubeletSystemdTemplate.Execute(&b, opts); err != nil { - return "", err + return nil, err } - return b.String(), nil + return b.Bytes(), nil } // UpdateCluster updates the cluster @@ -499,32 +515,35 @@ func (k *Bootstrapper) UpdateCluster(cfg config.KubernetesConfig) error { if err != nil { return errors.Wrap(err, "generating kubelet config") } - glog.Infof("kubelet %s config:\n%s", cfg.KubernetesVersion, kubeletCfg) - var files []assets.CopyableFile - files = copyConfig(cfg, files, kubeadmCfg, kubeletCfg) - - if err := downloadBinaries(cfg, k.c); err != nil { - return errors.Wrap(err, "downloading binaries") + kubeletService, err := NewKubeletService(cfg) + if err != nil { + return errors.Wrap(err, "generating kubelet service") } + glog.Infof("kubelet %s config:\n%s", cfg.KubernetesVersion, kubeletCfg) + + // stop kubelet to avoid "Text File Busy" error + err = k.c.Run(`pgrep kubelet && sudo systemctl stop kubelet`) + if err != nil { + glog.Warningf("unable to stop kubelet: %s", err) + } + if err := transferBinaries(cfg, k.c); err != nil { + return errors.Wrap(err, "downloading binaries") + } + files := configFiles(cfg, kubeadmCfg, kubeletCfg, kubeletService) if err := addAddons(&files, assets.GenerateTemplateData(cfg)); err != nil { return errors.Wrap(err, "adding addons") } - for _, f := range files { if err := k.c.Copy(f); err != nil { return errors.Wrapf(err, "copy") } } - err = k.c.Run(` -sudo systemctl daemon-reload && -sudo systemctl start kubelet -`) - if err != nil { + + if err := k.c.Run(`sudo systemctl daemon-reload && sudo systemctl start kubelet`); err != nil { return errors.Wrap(err, "starting kubelet") } - return nil } @@ -547,21 +566,22 @@ func createExtraComponentConfig(extraOptions util.ExtraOptionSlice, version semv return extraArgsSlice, nil } -func generateConfig(k8s config.KubernetesConfig, r cruntime.Manager) (string, error) { +// generateConfig generates the kubeadm.yaml file +func generateConfig(k8s config.KubernetesConfig, r cruntime.Manager) ([]byte, error) { version, err := ParseKubernetesVersion(k8s.KubernetesVersion) if err != nil { - return "", errors.Wrap(err, "parsing kubernetes version") + return nil, errors.Wrap(err, "parsing kubernetes version") } // parses a map of the feature gates for kubeadm and component kubeadmFeatureArgs, componentFeatureArgs, err := ParseFeatureArgs(k8s.FeatureGates) if err != nil { - return "", errors.Wrap(err, "parses feature gate config for kubeadm and component") + return nil, errors.Wrap(err, "parses feature gate config for kubeadm and component") } extraComponentConfig, err := createExtraComponentConfig(k8s.ExtraOptions, version, componentFeatureArgs) if err != nil { - return "", errors.Wrap(err, "generating extra component config for kubeadm") + return nil, errors.Wrap(err, "generating extra component config for kubeadm") } // In case of no port assigned, use util.APIServerPort @@ -585,13 +605,13 @@ func generateConfig(k8s config.KubernetesConfig, r cruntime.Manager) (string, er FeatureArgs map[string]bool NoTaintMaster bool }{ - CertDir: util.DefaultCertPath, + CertDir: constants.GuestCertsDir, ServiceCIDR: util.DefaultServiceCIDR, PodSubnet: k8s.ExtraOptions.Get("pod-network-cidr", Kubeadm), AdvertiseAddress: k8s.NodeIP, APIServerPort: nodePort, KubernetesVersion: k8s.KubernetesVersion, - EtcdDataDir: "/data/minikube", //TODO(r2d4): change to something else persisted + EtcdDataDir: filepath.Join(constants.GuestPersistentDir, "etcd"), NodeName: k8s.NodeName, CRISocket: r.SocketPath(), ImageRepository: k8s.ImageRepository, @@ -618,41 +638,62 @@ func generateConfig(k8s config.KubernetesConfig, r cruntime.Manager) (string, er configTmpl = configTmplV1Beta1 } if err := configTmpl.Execute(&b, opts); err != nil { - return "", err + return nil, err } - return b.String(), nil + return b.Bytes(), nil } -func copyConfig(cfg config.KubernetesConfig, files []assets.CopyableFile, kubeadmCfg string, kubeletCfg string) []assets.CopyableFile { - files = append(files, - assets.NewMemoryAssetTarget([]byte(kubeletService), constants.KubeletServiceFile, "0640"), - assets.NewMemoryAssetTarget([]byte(kubeletCfg), constants.KubeletSystemdConfFile, "0640"), - assets.NewMemoryAssetTarget([]byte(kubeadmCfg), constants.KubeadmConfigFile, "0640")) +// NewKubeletService returns a generated systemd unit file for the kubelet +func NewKubeletService(cfg config.KubernetesConfig) ([]byte, error) { + var b bytes.Buffer + opts := struct{ KubeletPath string }{KubeletPath: filepath.Join(binRoot(cfg.KubernetesVersion), "kubelet")} + if err := kubeletServiceTemplate.Execute(&b, opts); err != nil { + return nil, errors.Wrap(err, "template execute") + } + return b.Bytes(), nil +} +// configFiles returns configuration file assets +func configFiles(cfg config.KubernetesConfig, kubeadm []byte, kubelet []byte, kubeletSvc []byte) []assets.CopyableFile { + fs := []assets.CopyableFile{ + assets.NewMemoryAssetTarget(kubeadm, yamlConfigPath, "0640"), + assets.NewMemoryAssetTarget(kubelet, constants.KubeletSystemdConfFile, "0640"), + assets.NewMemoryAssetTarget(kubeletSvc, constants.KubeletServiceFile, "0640"), + } // Copy the default CNI config (k8s.conf), so that kubelet can successfully // start a Pod in the case a user hasn't manually installed any CNI plugin // and minikube was started with "--extra-config=kubelet.network-plugin=cni". if cfg.EnableDefaultCNI { - files = append(files, - assets.NewMemoryAssetTarget([]byte(defaultCNIConfig), constants.DefaultCNIConfigPath, "0644")) + fs = append(fs, assets.NewMemoryAssetTarget([]byte(defaultCNIConfig), constants.DefaultCNIConfigPath, "0644")) } - - return files + return fs } -func downloadBinaries(cfg config.KubernetesConfig, c command.Runner) error { +// binDir returns the persistant path binaries are stored in +func binRoot(version string) string { + return filepath.Join(constants.GuestPersistentDir, "binaries", version) +} + +// invokeKubeadm returns the invocation command for Kubeadm +func invokeKubeadm(version string) string { + return fmt.Sprintf("sudo env PATH=%s:$PATH kubeadm", binRoot(version)) +} + +// transferBinaries transfers all required Kubernetes binaries +func transferBinaries(cfg config.KubernetesConfig, c command.Runner) error { var g errgroup.Group - for _, bin := range constants.GetKubeadmCachedBinaries() { - bin := bin + for _, name := range constants.KubeadmBinaries { + name := name g.Go(func() error { - path, err := machine.CacheBinary(bin, cfg.KubernetesVersion, "linux", runtime.GOARCH) + src, err := machine.CacheBinary(name, cfg.KubernetesVersion, "linux", runtime.GOARCH) if err != nil { - return errors.Wrapf(err, "downloading %s", bin) + return errors.Wrapf(err, "downloading %s", name) } - err = machine.CopyBinary(c, bin, path) - if err != nil { - return errors.Wrapf(err, "copying %s", bin) + + dst := filepath.Join(binRoot(cfg.KubernetesVersion), name) + if err := machine.CopyBinary(c, src, dst); err != nil { + return errors.Wrapf(err, "copybinary %s -> %s", src, dst) } return nil }) diff --git a/pkg/minikube/bootstrapper/kubeadm/templates.go b/pkg/minikube/bootstrapper/kubeadm/templates.go index 70ae1aad28..dd1bfe6590 100644 --- a/pkg/minikube/bootstrapper/kubeadm/templates.go +++ b/pkg/minikube/bootstrapper/kubeadm/templates.go @@ -151,24 +151,24 @@ evictionHard: imagefs.available: "0%" `)) -var kubeletSystemdTemplate = template.Must(template.New("kubeletSystemdTemplate").Parse(` -[Unit] +// kubeletSystemdTemplate hosts the override kubelet flags, written to constants.KubeletSystemdConfFile +var kubeletSystemdTemplate = template.Must(template.New("kubeletSystemdTemplate").Parse(`[Unit] {{if or (eq .ContainerRuntime "cri-o") (eq .ContainerRuntime "cri")}}Wants=crio.service{{else if eq .ContainerRuntime "containerd"}}Wants=containerd.service{{else}}Wants=docker.socket{{end}} [Service] ExecStart= -ExecStart=/usr/bin/kubelet{{if .ExtraOptions}} {{.ExtraOptions}}{{end}} +ExecStart={{.KubeletPath}}{{if .ExtraOptions}} {{.ExtraOptions}}{{end}} [Install] `)) -const kubeletService = ` -[Unit] +// kubeletServiceTemplate is the base kubelet systemd template, written to constanst.KubeletServiceFile +var kubeletServiceTemplate = template.Must(template.New("kubeletServiceTemplate").Parse(`[Unit] Description=kubelet: The Kubernetes Node Agent Documentation=http://kubernetes.io/docs/ [Service] -ExecStart=/usr/bin/kubelet +ExecStart={{.KubeletPath}} Restart=always StartLimitInterval=0 # Tuned for local dev: faster than upstream default (10s), but slower than systemd default (100ms) @@ -176,7 +176,7 @@ RestartSec=600ms [Install] WantedBy=multi-user.target -` +`)) // printMapInOrder sorts the keys and prints the map in order, combining key // value pairs with the separator character diff --git a/pkg/minikube/bootstrapper/kubeadm/versions.go b/pkg/minikube/bootstrapper/kubeadm/versions.go index 2c7c9a97f9..02d0de884f 100644 --- a/pkg/minikube/bootstrapper/kubeadm/versions.go +++ b/pkg/minikube/bootstrapper/kubeadm/versions.go @@ -241,7 +241,7 @@ var versionSpecificOpts = []VersionedExtraOption{ NewUnversionedOption(Kubelet, "hostname-override", constants.DefaultNodeName), // System pods args - NewUnversionedOption(Kubelet, "pod-manifest-path", "/etc/kubernetes/manifests"), + NewUnversionedOption(Kubelet, "pod-manifest-path", constants.GuestManifestsDir), { Option: util.ExtraOption{ Component: Kubelet, @@ -257,7 +257,7 @@ var versionSpecificOpts = []VersionedExtraOption{ // Auth args NewUnversionedOption(Kubelet, "authorization-mode", "Webhook"), - NewUnversionedOption(Kubelet, "client-ca-file", path.Join(util.DefaultCertPath, "ca.crt")), + NewUnversionedOption(Kubelet, "client-ca-file", path.Join(constants.GuestCertsDir, "ca.crt")), // Cgroup args NewUnversionedOption(Kubelet, "cgroup-driver", "cgroupfs"), diff --git a/pkg/minikube/command/ssh_runner.go b/pkg/minikube/command/ssh_runner.go index a07e3ad985..ad94c2036f 100644 --- a/pkg/minikube/command/ssh_runner.go +++ b/pkg/minikube/command/ssh_runner.go @@ -21,11 +21,13 @@ import ( "fmt" "io" "path" + "path/filepath" "sync" "github.com/golang/glog" "github.com/pkg/errors" "golang.org/x/crypto/ssh" + "golang.org/x/sync/errgroup" "k8s.io/minikube/pkg/minikube/assets" "k8s.io/minikube/pkg/util" ) @@ -152,14 +154,6 @@ func (s *SSHRunner) CombinedOutput(cmd string) (string, error) { // Copy copies a file to the remote over SSH. func (s *SSHRunner) Copy(f assets.CopyableFile) error { - deleteCmd := fmt.Sprintf("sudo rm -f %s", path.Join(f.GetTargetDir(), f.GetTargetName())) - mkdirCmd := fmt.Sprintf("sudo mkdir -p %s", f.GetTargetDir()) - for _, cmd := range []string{deleteCmd, mkdirCmd} { - if err := s.Run(cmd); err != nil { - return errors.Wrapf(err, "pre-copy") - } - } - sess, err := s.c.NewSession() if err != nil { return errors.Wrap(err, "NewSession") @@ -170,40 +164,38 @@ func (s *SSHRunner) Copy(f assets.CopyableFile) error { return errors.Wrap(err, "StdinPipe") } // The scpcmd below *should not* return until all data is copied and the - // StdinPipe is closed. But let's use a WaitGroup to make it expicit. - var wg sync.WaitGroup - wg.Add(1) - var ierr error + // StdinPipe is closed. But let's use errgroup to make it expicit. + var g errgroup.Group var copied int64 + dst := filepath.Join(path.Join(f.GetTargetDir(), f.GetTargetName())) + glog.Infof("Transferring %d bytes to %s", f.GetLength(), dst) - go func() { - defer wg.Done() + g.Go(func() error { defer w.Close() - glog.Infof("Transferring %d bytes to %s", f.GetLength(), f.GetTargetName()) header := fmt.Sprintf("C%s %d %s\n", f.GetPermissions(), f.GetLength(), f.GetTargetName()) fmt.Fprint(w, header) if f.GetLength() == 0 { glog.Warningf("%s is a 0 byte asset!", f.GetTargetName()) fmt.Fprint(w, "\x00") - return + return nil } - copied, ierr = io.Copy(w, f) + copied, err = io.Copy(w, f) + if err != nil { + return errors.Wrap(err, "io.Copy") + } if copied != int64(f.GetLength()) { - glog.Warningf("%s: expected to copy %d bytes, but copied %d instead", f.GetTargetName(), f.GetLength(), copied) - } else { - glog.Infof("%s: copied %d bytes", f.GetTargetName(), copied) - } - if ierr != nil { - glog.Errorf("io.Copy failed: %v", ierr) + return fmt.Errorf("%s: expected to copy %d bytes, but copied %d instead", f.GetTargetName(), f.GetLength(), copied) } + glog.Infof("%s: copied %d bytes", f.GetTargetName(), copied) fmt.Fprint(w, "\x00") - }() + return nil + }) - _, err = sess.CombinedOutput(fmt.Sprintf("sudo scp -t %s", f.GetTargetDir())) + scp := fmt.Sprintf("sudo mkdir -p %s && sudo scp -t %s", f.GetTargetDir(), f.GetTargetDir()) + out, err := sess.CombinedOutput(scp) if err != nil { - return err + return fmt.Errorf("%s: %s\noutput: %s", scp, err, out) } - wg.Wait() - return ierr + return g.Wait() } diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index b2cbd0680d..2a1ec7eef0 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -208,12 +208,6 @@ func GetProfilePath(profile string, miniHome ...string) string { return filepath.Join(miniPath, "profiles", profile) } -// AddonsPath is the default path of the addons configuration -const AddonsPath = "/etc/kubernetes/addons" - -// FilesPath is the default path of files -const FilesPath = "/files" - const ( // KubeletServiceFile is the path to the kubelet systemd service KubeletServiceFile = "/lib/systemd/system/kubelet.service" @@ -223,9 +217,17 @@ const ( KubeadmConfigFile = "/var/lib/kubeadm.yaml" // DefaultCNIConfigPath is the path to the CNI configuration DefaultCNIConfigPath = "/etc/cni/net.d/k8s.conf" -) + // GuestAddonsDir is the default path of the addons configuration + GuestAddonsDir = "/etc/kubernetes/addons" + // GuestManifestsDir is where the kubelet should look for static Pod manifests + GuestManifestsDir = "/etc/kubernetes/manifests" + // PersistentDir is the path where persistant data should be stored within the VM (not tmpfs) + GuestPersistentDir = "/data/minikube" + // GuestEphemeralDir is the path where ephemeral data should be stored within the VM + GuestEphemeralDir = "/var/tmp/minikube" + // GuestCertsDir are where Kubernetes certificates are kept on the guest + GuestCertsDir = "/data/minikube/certs" -const ( // DefaultUfsPort is the default port of UFS DefaultUfsPort = "5640" // DefaultUfsDebugLvl is the default debug level of UFS @@ -236,6 +238,12 @@ const ( DefaultMsize = 262144 // DefaultMountVersion is the default 9p version to use for mount DefaultMountVersion = "9p2000.L" + + // IsMinikubeChildProcess is the name of "is minikube child process" variable + IsMinikubeChildProcess = "IS_MINIKUBE_CHILD_PROCESS" + + // FileScheme is the file scheme + FileScheme = "file" ) // ImageRepositories contains all known image repositories @@ -254,16 +262,8 @@ func GetKubernetesReleaseURLSHA1(binaryName, version, osName, archName string) s return fmt.Sprintf("%s.sha1", GetKubernetesReleaseURL(binaryName, version, osName, archName)) } -// IsMinikubeChildProcess is the name of "is minikube child process" variable -const IsMinikubeChildProcess = "IS_MINIKUBE_CHILD_PROCESS" - -// FileScheme is the file scheme -const FileScheme = "file" - -// GetKubeadmCachedBinaries gets the binaries to cache for kubeadm -func GetKubeadmCachedBinaries() []string { - return []string{"kubelet", "kubeadm"} -} +// KubeadmBinaries are Kubernetes release binaries required for kubeadm +var KubeadmBinaries = []string{"kubelet", "kubeadm"} // GetKubeadmCachedImages gets the images to cache for kubeadm for a version func GetKubeadmCachedImages(imageRepository string, kubernetesVersionStr string) (string, []string) { diff --git a/pkg/minikube/logs/logs.go b/pkg/minikube/logs/logs.go index 6af57a34d4..05775f8779 100644 --- a/pkg/minikube/logs/logs.go +++ b/pkg/minikube/logs/logs.go @@ -34,7 +34,7 @@ import ( ) // rootCauseRe is a regular expression that matches known failure root causes -var rootCauseRe = regexp.MustCompile(`^error: |eviction manager: pods.* evicted|unknown flag: --|forbidden.*no providers available|eviction manager:.*evicted|tls: bad certificate`) +var rootCauseRe = regexp.MustCompile(`^error: |eviction manager: pods.* evicted|unknown flag: --|forbidden.*no providers available|eviction manager:.*evicted|tls: bad certificate|kubelet.*no API client|kubelet.*No api server`) // ignoreRe is a regular expression that matches spurious errors to not surface var ignoreCauseRe = regexp.MustCompile("error: no objects passed to apply") diff --git a/pkg/minikube/machine/cache_binaries.go b/pkg/minikube/machine/cache_binaries.go index a31cde810a..8dd2c03ff4 100644 --- a/pkg/minikube/machine/cache_binaries.go +++ b/pkg/minikube/machine/cache_binaries.go @@ -20,6 +20,7 @@ import ( "crypto" "os" "path" + "path/filepath" "runtime" "github.com/golang/glog" @@ -90,9 +91,9 @@ func CacheBinary(binary, version, osName, archName string) (string, error) { return targetFilepath, nil } -// CopyBinary copies previously cached binaries into the path -func CopyBinary(cr command.Runner, binary, path string) error { - f, err := assets.NewFileAsset(path, "/usr/bin", binary, "0755") +// CopyBinary copies a locally cached binary to the guest VM +func CopyBinary(cr command.Runner, src string, dest string) error { + f, err := assets.NewFileAsset(src, filepath.Dir(dest), filepath.Base(dest), "0755") if err != nil { return errors.Wrap(err, "new file asset") } diff --git a/pkg/minikube/machine/cache_images.go b/pkg/minikube/machine/cache_images.go index 3456e2270c..b3fcf45e1a 100644 --- a/pkg/minikube/machine/cache_images.go +++ b/pkg/minikube/machine/cache_images.go @@ -41,7 +41,8 @@ import ( "k8s.io/minikube/pkg/minikube/cruntime" ) -const tempLoadDir = "/tmp" +// loadRoot is where images should be loaded from within the guest VM +var loadRoot = filepath.Join(constants.GuestPersistentDir, "images") var getWindowsVolumeName = getWindowsVolumeNameCmd @@ -86,6 +87,9 @@ func CacheImages(images []string, cacheDir string) error { // LoadImages loads previously cached images into the container runtime func LoadImages(cmd command.Runner, images []string, cacheDir string) error { + glog.Infof("LoadImages start: %s", images) + defer glog.Infof("LoadImages end") + var g errgroup.Group // Load profile cluster config from file cc, err := config.Load() @@ -97,7 +101,7 @@ func LoadImages(cmd command.Runner, images []string, cacheDir string) error { g.Go(func() error { src := filepath.Join(cacheDir, image) src = sanitizeCacheDir(src) - if err := loadImageFromCache(cmd, cc.KubernetesConfig, src); err != nil { + if err := transferAndLoadImage(cmd, cc.KubernetesConfig, src); err != nil { glog.Warningf("Failed to load %s: %v", src, err) return errors.Wrapf(err, "loading image %s", src) } @@ -194,15 +198,15 @@ func getWindowsVolumeNameCmd(d string) (string, error) { return vname, nil } -// loadImageFromCache loads a single image from the cache -func loadImageFromCache(cr command.Runner, k8s config.KubernetesConfig, src string) error { +// transferAndLoadImage transfers and loads a single image from the cache +func transferAndLoadImage(cr command.Runner, k8s config.KubernetesConfig, src string) error { glog.Infof("Loading image from cache: %s", src) filename := filepath.Base(src) if _, err := os.Stat(src); err != nil { return err } - dst := path.Join(tempLoadDir, filename) - f, err := assets.NewFileAsset(src, tempLoadDir, filename, "0777") + dst := path.Join(loadRoot, filename) + f, err := assets.NewFileAsset(src, loadRoot, filename, "0644") if err != nil { return errors.Wrapf(err, "creating copyable file asset: %s", filename) } @@ -222,9 +226,6 @@ func loadImageFromCache(cr command.Runner, k8s config.KubernetesConfig, src stri return errors.Wrapf(err, "%s load %s", r.Name(), dst) } - if err := cr.Run("sudo rm -rf " + dst); err != nil { - return errors.Wrap(err, "deleting temp docker image location") - } glog.Infof("Successfully loaded image %s from cache", src) return nil } diff --git a/pkg/util/constants.go b/pkg/util/constants.go index 92f0c29bf5..9ca61ffb8b 100644 --- a/pkg/util/constants.go +++ b/pkg/util/constants.go @@ -26,7 +26,6 @@ import ( const ( APIServerPort = 8443 DefaultMinikubeDirectory = "/var/lib/minikube" - DefaultCertPath = DefaultMinikubeDirectory + "/certs/" DefaultKubeConfigPath = DefaultMinikubeDirectory + "/kubeconfig" DefaultDNSDomain = "cluster.local" DefaultServiceCIDR = "10.96.0.0/12" From 7c865c27cfc5cd06bab8ab00b9d009e0c7ef2cba Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Fri, 9 Aug 2019 15:19:23 -0700 Subject: [PATCH 02/40] Merge DefaultMinikubeDirectory with GuestPersistentDir --- pkg/minikube/constants/constants.go | 11 ++++------- pkg/util/constants.go | 8 +++----- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 2a1ec7eef0..710e098b79 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -213,21 +213,19 @@ const ( KubeletServiceFile = "/lib/systemd/system/kubelet.service" // KubeletSystemdConfFile is the path to the kubelet systemd configuration KubeletSystemdConfFile = "/etc/systemd/system/kubelet.service.d/10-kubeadm.conf" - // KubeadmConfigFile is the path to the kubeadm configuration - KubeadmConfigFile = "/var/lib/kubeadm.yaml" // DefaultCNIConfigPath is the path to the CNI configuration DefaultCNIConfigPath = "/etc/cni/net.d/k8s.conf" + // GuestAddonsDir is the default path of the addons configuration GuestAddonsDir = "/etc/kubernetes/addons" // GuestManifestsDir is where the kubelet should look for static Pod manifests GuestManifestsDir = "/etc/kubernetes/manifests" - // PersistentDir is the path where persistant data should be stored within the VM (not tmpfs) - GuestPersistentDir = "/data/minikube" // GuestEphemeralDir is the path where ephemeral data should be stored within the VM GuestEphemeralDir = "/var/tmp/minikube" + // PersistentDir is the path where persistant data should be stored within the VM (not tmpfs) + GuestPersistentDir = "/var/lib/minikube" // GuestCertsDir are where Kubernetes certificates are kept on the guest - GuestCertsDir = "/data/minikube/certs" - + GuestCertsDir = GuestPersistentDir + "/certs" // DefaultUfsPort is the default port of UFS DefaultUfsPort = "5640" // DefaultUfsDebugLvl is the default debug level of UFS @@ -241,7 +239,6 @@ const ( // IsMinikubeChildProcess is the name of "is minikube child process" variable IsMinikubeChildProcess = "IS_MINIKUBE_CHILD_PROCESS" - // FileScheme is the file scheme FileScheme = "file" ) diff --git a/pkg/util/constants.go b/pkg/util/constants.go index 9ca61ffb8b..f1132155c4 100644 --- a/pkg/util/constants.go +++ b/pkg/util/constants.go @@ -24,11 +24,9 @@ import ( // These constants are used by both minikube const ( - APIServerPort = 8443 - DefaultMinikubeDirectory = "/var/lib/minikube" - DefaultKubeConfigPath = DefaultMinikubeDirectory + "/kubeconfig" - DefaultDNSDomain = "cluster.local" - DefaultServiceCIDR = "10.96.0.0/12" + APIServerPort = 8443 + DefaultDNSDomain = "cluster.local" + DefaultServiceCIDR = "10.96.0.0/12" ) // DefaultV114AdmissionControllers are admission controllers we default to in v1.14.x From 3d1797606207c454c0d3653c6444ff0eb86a2e89 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Fri, 9 Aug 2019 16:24:49 -0700 Subject: [PATCH 03/40] lint and change detector test updates --- pkg/minikube/bootstrapper/certs.go | 4 ---- pkg/minikube/bootstrapper/certs_test.go | 3 ++- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 2 +- .../bootstrapper/kubeadm/kubeadm_test.go | 24 ++++++++----------- .../testdata/v1.10/containerd-api-port.yaml | 4 ++-- .../v1.10/containerd-pod-network-cidr.yaml | 4 ++-- .../kubeadm/testdata/v1.10/containerd.yaml | 4 ++-- .../testdata/v1.10/crio-options-gates.yaml | 4 ++-- .../kubeadm/testdata/v1.10/crio.yaml | 4 ++-- .../kubeadm/testdata/v1.10/default.yaml | 4 ++-- .../testdata/v1.10/image-repository.yaml | 4 ++-- .../kubeadm/testdata/v1.10/options.yaml | 4 ++-- .../testdata/v1.11/containerd-api-port.yaml | 4 ++-- .../v1.11/containerd-pod-network-cidr.yaml | 4 ++-- .../kubeadm/testdata/v1.11/containerd.yaml | 4 ++-- .../testdata/v1.11/crio-options-gates.yaml | 4 ++-- .../kubeadm/testdata/v1.11/crio.yaml | 4 ++-- .../kubeadm/testdata/v1.11/default.yaml | 4 ++-- .../testdata/v1.11/image-repository.yaml | 4 ++-- .../kubeadm/testdata/v1.11/options.yaml | 4 ++-- .../testdata/v1.12/containerd-api-port.yaml | 4 ++-- .../v1.12/containerd-pod-network-cidr.yaml | 4 ++-- .../kubeadm/testdata/v1.12/containerd.yaml | 4 ++-- .../testdata/v1.12/crio-options-gates.yaml | 4 ++-- .../kubeadm/testdata/v1.12/crio.yaml | 4 ++-- .../kubeadm/testdata/v1.12/default.yaml | 4 ++-- .../testdata/v1.12/image-repository.yaml | 4 ++-- .../kubeadm/testdata/v1.12/options.yaml | 4 ++-- .../testdata/v1.13/containerd-api-port.yaml | 4 ++-- .../v1.13/containerd-pod-network-cidr.yaml | 4 ++-- .../kubeadm/testdata/v1.13/containerd.yaml | 4 ++-- .../testdata/v1.13/crio-options-gates.yaml | 4 ++-- .../kubeadm/testdata/v1.13/crio.yaml | 4 ++-- .../kubeadm/testdata/v1.13/default.yaml | 4 ++-- .../testdata/v1.13/image-repository.yaml | 4 ++-- .../kubeadm/testdata/v1.13/options.yaml | 4 ++-- .../testdata/v1.14/containerd-api-port.yaml | 4 ++-- .../v1.14/containerd-pod-network-cidr.yaml | 4 ++-- .../kubeadm/testdata/v1.14/containerd.yaml | 4 ++-- .../testdata/v1.14/crio-options-gates.yaml | 4 ++-- .../kubeadm/testdata/v1.14/crio.yaml | 4 ++-- .../kubeadm/testdata/v1.14/default.yaml | 4 ++-- .../testdata/v1.14/image-repository.yaml | 4 ++-- .../kubeadm/testdata/v1.14/options.yaml | 4 ++-- .../testdata/v1.15/containerd-api-port.yaml | 4 ++-- .../v1.15/containerd-pod-network-cidr.yaml | 4 ++-- .../kubeadm/testdata/v1.15/containerd.yaml | 4 ++-- .../testdata/v1.15/crio-options-gates.yaml | 4 ++-- .../kubeadm/testdata/v1.15/crio.yaml | 4 ++-- .../kubeadm/testdata/v1.15/default.yaml | 4 ++-- .../testdata/v1.15/image-repository.yaml | 4 ++-- .../kubeadm/testdata/v1.15/options.yaml | 4 ++-- pkg/minikube/constants/constants.go | 2 +- 53 files changed, 110 insertions(+), 117 deletions(-) diff --git a/pkg/minikube/bootstrapper/certs.go b/pkg/minikube/bootstrapper/certs.go index 64b2a912c3..d235c1eadf 100644 --- a/pkg/minikube/bootstrapper/certs.go +++ b/pkg/minikube/bootstrapper/certs.go @@ -50,11 +50,7 @@ func SetupCerts(cmd command.Runner, k8s config.KubernetesConfig) error { if err := generateCerts(k8s); err != nil { return errors.Wrap(err, "Error generating certs") } - if err := cmd.Run(fmt.Sprintf("sudo mkdir -p %s", constants.GuestCertsDir)); err != nil { - return errors.Wrap(err, "mkdir") - } copyableFiles := []assets.CopyableFile{} - for _, cert := range certs { p := filepath.Join(localPath, cert) perms := "0644" diff --git a/pkg/minikube/bootstrapper/certs_test.go b/pkg/minikube/bootstrapper/certs_test.go index 893c7a0832..6cd39e5cf3 100644 --- a/pkg/minikube/bootstrapper/certs_test.go +++ b/pkg/minikube/bootstrapper/certs_test.go @@ -32,7 +32,6 @@ func TestSetupCerts(t *testing.T) { tempDir := tests.MakeTempDir() defer os.RemoveAll(tempDir) - f := command.NewFakeCommandRunner() k8s := config.KubernetesConfig{ APIServerName: constants.APIServerName, DNSDomain: constants.ClusterDNSDomain, @@ -44,6 +43,8 @@ func TestSetupCerts(t *testing.T) { filesToBeTransferred = append(filesToBeTransferred, filepath.Join(constants.GetMinipath(), cert)) } + f := command.NewFakeCommandRunner() + f.SetCommandToOutput(map[string]string{"sudo mkdir -p /var/lib/minikube/certs": ""}) if err := SetupCerts(f, k8s); err != nil { t.Fatalf("Error starting cluster: %v", err) } diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index 2b7f15adb2..d96fe6ea99 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -670,7 +670,7 @@ func configFiles(cfg config.KubernetesConfig, kubeadm []byte, kubelet []byte, ku return fs } -// binDir returns the persistant path binaries are stored in +// binDir returns the persistent path binaries are stored in func binRoot(version string) string { return filepath.Join(constants.GuestPersistentDir, "binaries", version) } diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go index 5e6389f993..dd9e095eae 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go @@ -44,13 +44,12 @@ func TestGenerateKubeletConfig(t *testing.T) { NodeName: "minikube", ContainerRuntime: "docker", }, - expected: ` -[Unit] + expected: `[Unit] Wants=docker.socket [Service] ExecStart= -ExecStart=/usr/bin/kubelet --allow-privileged=true --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cadvisor-port=0 --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=docker --fail-swap-on=false --hostname-override=minikube --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests +ExecStart=/var/lib/minikube/binaries/v1.10.13/kubelet --allow-privileged=true --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cadvisor-port=0 --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=docker --fail-swap-on=false --hostname-override=minikube --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests [Install] `, @@ -63,13 +62,12 @@ ExecStart=/usr/bin/kubelet --allow-privileged=true --authorization-mode=Webhook NodeName: "minikube", ContainerRuntime: "cri-o", }, - expected: ` -[Unit] + expected: `[Unit] Wants=crio.service [Service] ExecStart= -ExecStart=/usr/bin/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=remote --container-runtime-endpoint=/var/run/crio/crio.sock --fail-swap-on=false --hostname-override=minikube --image-service-endpoint=/var/run/crio/crio.sock --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --runtime-request-timeout=15m +ExecStart=/var/lib/minikube/binaries/v1.15.2/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=remote --container-runtime-endpoint=/var/run/crio/crio.sock --fail-swap-on=false --hostname-override=minikube --image-service-endpoint=/var/run/crio/crio.sock --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --runtime-request-timeout=15m [Install] `, @@ -82,13 +80,12 @@ ExecStart=/usr/bin/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/ NodeName: "minikube", ContainerRuntime: "containerd", }, - expected: ` -[Unit] + expected: `[Unit] Wants=containerd.service [Service] ExecStart= -ExecStart=/usr/bin/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --fail-swap-on=false --hostname-override=minikube --image-service-endpoint=unix:///run/containerd/containerd.sock --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --runtime-request-timeout=15m +ExecStart=/var/lib/minikube/binaries/v1.15.2/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock --fail-swap-on=false --hostname-override=minikube --image-service-endpoint=unix:///run/containerd/containerd.sock --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --runtime-request-timeout=15m [Install] `, @@ -102,13 +99,12 @@ ExecStart=/usr/bin/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/ ContainerRuntime: "docker", ImageRepository: "docker-proxy-image.io/google_containers", }, - expected: ` -[Unit] + expected: `[Unit] Wants=docker.socket [Service] ExecStart= -ExecStart=/usr/bin/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=docker --fail-swap-on=false --hostname-override=minikube --kubeconfig=/etc/kubernetes/kubelet.conf --pod-infra-container-image=docker-proxy-image.io/google_containers/pause:3.1 --pod-manifest-path=/etc/kubernetes/manifests +ExecStart=/var/lib/minikube/binaries/v1.15.2/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=docker --fail-swap-on=false --hostname-override=minikube --kubeconfig=/etc/kubernetes/kubelet.conf --pod-infra-container-image=docker-proxy-image.io/google_containers/pause:3.1 --pod-manifest-path=/etc/kubernetes/manifests [Install] `, @@ -134,7 +130,7 @@ ExecStart=/usr/bin/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/ diff, err := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{ A: difflib.SplitLines(tc.expected), - B: difflib.SplitLines(got), + B: difflib.SplitLines(string(got)), FromFile: "Expected", ToFile: "Got", Context: 1, @@ -267,7 +263,7 @@ func TestGenerateConfig(t *testing.T) { } diff, err := difflib.GetUnifiedDiffString(difflib.UnifiedDiff{ A: difflib.SplitLines(string(expected)), - B: difflib.SplitLines(got), + B: difflib.SplitLines(string(got)), FromFile: "Expected", ToFile: "Got", Context: 1, diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml index 40c91637f3..877e831b4b 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml @@ -6,11 +6,11 @@ api: bindPort: 12345 controlPlaneEndpoint: localhost kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /run/containerd/containerd.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml index b2d73f912b..2741f3dfbe 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /run/containerd/containerd.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml index b2d73f912b..2741f3dfbe 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /run/containerd/containerd.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml index e71f7dde0f..f4f766a146 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /var/run/crio/crio.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml index f68df3416f..4f689e42cd 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /var/run/crio/crio.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml index 9f0ea00701..1db5fb0711 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk apiServerExtraArgs: admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml index cebbc924ed..077385fcd6 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk imageRepository: test/repo apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml index 97fcc2e56e..d52687fa94 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk apiServerExtraArgs: admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml index c7edeea5f2..cb5e0e62e5 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml @@ -6,11 +6,11 @@ api: bindPort: 12345 controlPlaneEndpoint: localhost kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /run/containerd/containerd.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml index 320c885927..a78261c550 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /run/containerd/containerd.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml index 320c885927..a78261c550 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /run/containerd/containerd.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml index 37e2d4729a..15bb16aaa1 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /var/run/crio/crio.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml index 2b394b5335..7e33c3c861 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk criSocket: /var/run/crio/crio.sock apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml index f831b4e46e..13ea3d1c53 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml index 72ac00feb7..5e121b085d 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk imageRepository: test/repo apiServerExtraArgs: diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml index 653a3e4428..aac8924cbe 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml @@ -6,11 +6,11 @@ api: bindPort: 8443 controlPlaneEndpoint: localhost kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs networking: serviceSubnet: 10.96.0.0/12 etcd: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd nodeName: mk apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml index 7d84e36369..2c7ad8fc47 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:12345 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.12.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml index 64bf678f02..c13a251804 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.12.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml index 4e4b1e4830..1398527e91 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.12.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml index 6f933f84cc..d33f0e13dc 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml @@ -27,12 +27,12 @@ controllerManagerExtraArgs: schedulerExtraArgs: feature-gates: "a=b" scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.12.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml index 033a7aefe2..c076b8ad9f 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.12.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml index d9ba1066a5..36856509b9 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.12.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml index bf00349785..dab9a37c23 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml @@ -20,12 +20,12 @@ kind: ClusterConfiguration imageRepository: test/repo apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.12.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml index 3e9052efa8..3a6ff1aeed 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml @@ -24,12 +24,12 @@ controllerManagerExtraArgs: kube-api-burst: "32" schedulerExtraArgs: scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.12.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml index e776755631..f365193c61 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:12345 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.13.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml index ecc9a14631..d5f799e56f 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.13.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml index a852561fbe..806106b3b7 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.13.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml index 9e5812dbda..e602810b0d 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml @@ -27,12 +27,12 @@ controllerManagerExtraArgs: schedulerExtraArgs: feature-gates: "a=b" scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.13.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml index 57b9f1b122..b82b3bf69b 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.13.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml index db611e2263..9995a46c14 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml @@ -19,12 +19,12 @@ apiVersion: kubeadm.k8s.io/v1alpha3 kind: ClusterConfiguration apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.13.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml index 037dd6add2..b2b8b6e3fb 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml @@ -20,12 +20,12 @@ kind: ClusterConfiguration imageRepository: test/repo apiServerExtraArgs: enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.13.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml index f1df66954d..484dd5a352 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml @@ -24,12 +24,12 @@ controllerManagerExtraArgs: kube-api-burst: "32" schedulerExtraArgs: scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.13.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml index cc96f136ac..5755f5641d 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:12345 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.14.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml index 147a6ccbec..f4ff177f67 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.14.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml index 147a6ccbec..f4ff177f67 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.14.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml index 1b35bce5c6..6f46996151 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml @@ -30,14 +30,14 @@ scheduler: extraArgs: feature-gates: "a=b" scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.14.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml index 66dac1c8af..47cfd0ecbb 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.14.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml index d88c0efebf..57371bf704 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.14.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml index bf53791b71..2c1a895bca 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml @@ -21,14 +21,14 @@ imageRepository: test/repo apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.14.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml index a85a2447b2..325265c2c6 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml @@ -27,14 +27,14 @@ controllerManager: scheduler: extraArgs: scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.14.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml index 0fbf400ebf..9f08022e33 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:12345 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.15.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml index c6354e860b..30e3b200f1 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.15.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml index c6354e860b..30e3b200f1 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.15.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml index 78bbe09f1c..bcc3e64b00 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml @@ -30,14 +30,14 @@ scheduler: extraArgs: feature-gates: "a=b" scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.15.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml index b956109b81..7cc895ca15 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.15.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml index 46d6e4e78c..f31d943013 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.15.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml index 8ab50ff902..aec5820a00 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml @@ -21,14 +21,14 @@ imageRepository: test/repo apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.15.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml index 2e6f561dd4..eb354d47ee 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml @@ -27,14 +27,14 @@ controllerManager: scheduler: extraArgs: scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.15.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 710e098b79..bc2085e8e0 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -222,7 +222,7 @@ const ( GuestManifestsDir = "/etc/kubernetes/manifests" // GuestEphemeralDir is the path where ephemeral data should be stored within the VM GuestEphemeralDir = "/var/tmp/minikube" - // PersistentDir is the path where persistant data should be stored within the VM (not tmpfs) + // PersistentDir is the path where persistent data should be stored within the VM (not tmpfs) GuestPersistentDir = "/var/lib/minikube" // GuestCertsDir are where Kubernetes certificates are kept on the guest GuestCertsDir = GuestPersistentDir + "/certs" From 03ebad25ab79e63ab85dd5385476ae9c9e23d648 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Wed, 14 Aug 2019 08:14:03 -0700 Subject: [PATCH 04/40] merge conflict --- pkg/minikube/constants/constants.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index d861681bc3..118a1eb1f5 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -210,12 +210,6 @@ func GetProfilePath(profile string, miniHome ...string) string { return filepath.Join(miniPath, "profiles", profile) } -// AddonsPath is the default path of the addons configuration -const AddonsPath = "/etc/kubernetes/addons" - -// FilesPath is the default path of files -const FilesPath = "/files" - const ( // KubeletServiceFile is the path to the kubelet systemd service KubeletServiceFile = "/lib/systemd/system/kubelet.service" From 1d6699f0dabae907477e170340a850a6e2c5daf1 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Fri, 16 Aug 2019 15:21:58 -0700 Subject: [PATCH 05/40] kubeconfig needs to live persistently --- pkg/minikube/bootstrapper/certs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/bootstrapper/certs.go b/pkg/minikube/bootstrapper/certs.go index 9a690f5b44..3ad2740bef 100644 --- a/pkg/minikube/bootstrapper/certs.go +++ b/pkg/minikube/bootstrapper/certs.go @@ -84,7 +84,7 @@ func SetupCerts(cmd command.Runner, k8s config.KubernetesConfig) error { return errors.Wrap(err, "encoding kubeconfig") } - kubeCfgFile := assets.NewMemoryAsset(data, constants.GuestEphemeralDir, "kubeconfig", "0644") + kubeCfgFile := assets.NewMemoryAsset(data, constants.GuestPersistentDir, "kubeconfig", "0644") copyableFiles = append(copyableFiles, kubeCfgFile) for _, f := range copyableFiles { From b17d377d68a0d96ebbb6723ea4045f9f66f97ca7 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Fri, 16 Aug 2019 15:22:27 -0700 Subject: [PATCH 06/40] Detect when the addon-manager isn't able to process --- pkg/minikube/logs/logs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/logs/logs.go b/pkg/minikube/logs/logs.go index 05775f8779..8897c4e0c2 100644 --- a/pkg/minikube/logs/logs.go +++ b/pkg/minikube/logs/logs.go @@ -34,7 +34,7 @@ import ( ) // rootCauseRe is a regular expression that matches known failure root causes -var rootCauseRe = regexp.MustCompile(`^error: |eviction manager: pods.* evicted|unknown flag: --|forbidden.*no providers available|eviction manager:.*evicted|tls: bad certificate|kubelet.*no API client|kubelet.*No api server`) +var rootCauseRe = regexp.MustCompile(`^error: |eviction manager: pods.* evicted|unknown flag: --|forbidden.*no providers available|eviction manager:.*evicted|tls: bad certificate|kubelet.*no API client|kubelet.*No api server|STDIN.*127.0.0.1:8080`) // ignoreRe is a regular expression that matches spurious errors to not surface var ignoreCauseRe = regexp.MustCompile("error: no objects passed to apply") From d11804e83f412672ec788ec101e699f0df422d8f Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Fri, 16 Aug 2019 16:45:59 -0700 Subject: [PATCH 07/40] Fix certs_test merge conflict --- pkg/minikube/bootstrapper/certs_test.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/minikube/bootstrapper/certs_test.go b/pkg/minikube/bootstrapper/certs_test.go index 58a0d97823..db4d2e4bec 100644 --- a/pkg/minikube/bootstrapper/certs_test.go +++ b/pkg/minikube/bootstrapper/certs_test.go @@ -52,7 +52,9 @@ func TestSetupCerts(t *testing.T) { t.Fatalf("error generating certificate: %v", err) } - cmdMap := map[string]string{} + cmdMap := map[string]string{ + "sudo mkdir -p /var/lib/minikube/certs": "", + } certFilenames := map[string]string{"ca.crt": "minikubeCA.pem", "mycert.pem": "mycert.pem"} for _, dst := range certFilenames { certFile := path.Join(CACertificatesDir, dst) @@ -63,6 +65,7 @@ func TestSetupCerts(t *testing.T) { cmdMap[fmt.Sprintf("openssl x509 -hash -noout -in '%s'", certFile)] = certNameHash cmdMap[fmt.Sprintf("sudo ln -s '%s' '%s'", certStorePath, remoteCertHashLink)] = "1" } + f := command.NewFakeCommandRunner() f.SetCommandToOutput(cmdMap) var filesToBeTransferred []string @@ -72,8 +75,6 @@ func TestSetupCerts(t *testing.T) { filesToBeTransferred = append(filesToBeTransferred, filepath.Join(constants.GetMinipath(), "ca.crt")) filesToBeTransferred = append(filesToBeTransferred, filepath.Join(constants.GetMinipath(), "certs", "mycert.pem")) - f := command.NewFakeCommandRunner() - f.SetCommandToOutput(map[string]string{"sudo mkdir -p /var/lib/minikube/certs": ""}) if err := SetupCerts(f, k8s); err != nil { t.Fatalf("Error starting cluster: %v", err) } From 417feb6f1f79b2858261440d8e30d589f4bdb58f Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 14:35:33 -0700 Subject: [PATCH 08/40] adding travisbuddy bot for lint error comment --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index d2edd1570c..0da54a2646 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,3 +18,5 @@ script: - make test after_success: - bash <(curl -s https://codecov.io/bash) +notifications: + webhooks: https://www.travisbuddy.com/ \ No newline at end of file From 3b0ae8371d76145b9eb243b02c2134aa3b8033b8 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 14:44:06 -0700 Subject: [PATCH 09/40] making test fail on purpose to see travis buddy --- pkg/minikube/proxy/proxy_test.go | 2 +- pkg/minikube/service/service_test.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/minikube/proxy/proxy_test.go b/pkg/minikube/proxy/proxy_test.go index 25dccce10d..cd081248c3 100644 --- a/pkg/minikube/proxy/proxy_test.go +++ b/pkg/minikube/proxy/proxy_test.go @@ -34,7 +34,7 @@ func TestIsValidEnv(t *testing.T) { for _, tc := range testCases { t.Run(tc.env, func(t *testing.T) { got := isValidEnv(tc.env) - if got != tc.want { + if got == tc.want { // Making it fail just to see travisbuddy work t.Errorf("isValidEnv(\"%v\") got %v; want %v", tc.env, got, tc.want) } diff --git a/pkg/minikube/service/service_test.go b/pkg/minikube/service/service_test.go index 2b6702baa5..0cd5a5d3e9 100644 --- a/pkg/minikube/service/service_test.go +++ b/pkg/minikube/service/service_test.go @@ -343,7 +343,7 @@ func TestOptionallyHttpsFormattedUrlString(t *testing.T) { t.Errorf("\nhttpsFormattedURLString, Expected %v \nActual: %v \n\n", test.expectedHTTPSFormattedURLString, httpsFormattedURLString) } - if isHTTPSchemedURL != test.expectedIsHTTPSchemedURL { + if isHTTPSchemedURL == test.expectedIsHTTPSchemedURL { t.Errorf("\nisHTTPSchemedURL, Expected %v \nActual: %v \n\n", test.expectedHTTPSFormattedURLString, httpsFormattedURLString) } From bcef943becaa7d1fcf39b06529b4c5150f9a3825 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 15:00:00 -0700 Subject: [PATCH 10/40] make travisbuddy only to comment on failure --- .travis.yml | 3 ++- pkg/minikube/proxy/proxy_test.go | 2 +- pkg/minikube/service/service_test.go | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0da54a2646..6bbc93422d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,4 +19,5 @@ script: after_success: - bash <(curl -s https://codecov.io/bash) notifications: - webhooks: https://www.travisbuddy.com/ \ No newline at end of file + webhooks: https://www.travisbuddy.com/ + on_success: never # travisbuddy don't comment on successfull \ No newline at end of file diff --git a/pkg/minikube/proxy/proxy_test.go b/pkg/minikube/proxy/proxy_test.go index cd081248c3..25dccce10d 100644 --- a/pkg/minikube/proxy/proxy_test.go +++ b/pkg/minikube/proxy/proxy_test.go @@ -34,7 +34,7 @@ func TestIsValidEnv(t *testing.T) { for _, tc := range testCases { t.Run(tc.env, func(t *testing.T) { got := isValidEnv(tc.env) - if got == tc.want { // Making it fail just to see travisbuddy work + if got != tc.want { t.Errorf("isValidEnv(\"%v\") got %v; want %v", tc.env, got, tc.want) } diff --git a/pkg/minikube/service/service_test.go b/pkg/minikube/service/service_test.go index 0cd5a5d3e9..2b6702baa5 100644 --- a/pkg/minikube/service/service_test.go +++ b/pkg/minikube/service/service_test.go @@ -343,7 +343,7 @@ func TestOptionallyHttpsFormattedUrlString(t *testing.T) { t.Errorf("\nhttpsFormattedURLString, Expected %v \nActual: %v \n\n", test.expectedHTTPSFormattedURLString, httpsFormattedURLString) } - if isHTTPSchemedURL == test.expectedIsHTTPSchemedURL { + if isHTTPSchemedURL != test.expectedIsHTTPSchemedURL { t.Errorf("\nisHTTPSchemedURL, Expected %v \nActual: %v \n\n", test.expectedHTTPSFormattedURLString, httpsFormattedURLString) } From e325516ab1e4915d6c3480bd6f27d7c9ef502c05 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Tue, 20 Aug 2019 15:24:30 -0700 Subject: [PATCH 11/40] remove retry start from integeration tests --- test/integration/util/minikube_runner.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/test/integration/util/minikube_runner.go b/test/integration/util/minikube_runner.go index 95bcfb603b..48d6bb549f 100644 --- a/test/integration/util/minikube_runner.go +++ b/test/integration/util/minikube_runner.go @@ -125,8 +125,7 @@ func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun .. } // RunCommandRetriable executes a command, returns error -// the purpose of this command is to make it retriable and -// better logging for retrying +// the purpose of this command is to make it retriable by returning error func (m *MinikubeRunner) RunCommandRetriable(cmdStr string, waitForRun ...bool) (stdout string, stderr string, err error) { profileArg := fmt.Sprintf("-p=%s ", m.Profile) cmdStr = profileArg + cmdStr @@ -231,11 +230,10 @@ func (m *MinikubeRunner) SSH(cmdStr string) (string, error) { // Start starts the cluster func (m *MinikubeRunner) Start(opts ...string) (stdout string, stderr string, err error) { cmd := fmt.Sprintf("start %s %s %s", m.StartArgs, m.GlobalArgs, strings.Join(opts, " ")) - s := func() error { - stdout, stderr, err = m.RunCommandRetriable(cmd) - return err - } - err = retry.Expo(s, 10*time.Second, m.TimeOutStart) + ctx := context.Background() + ctx, cancel := context.WithTimeout(ctx, m.TimeOutStart) + defer cancel() + stdout, stderr, err = m.RunWithContext(ctx, cmd, true) return stdout, stderr, err } From 441f999e1dca3929231d744819fe3d35e95a2c9a Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Tue, 20 Aug 2019 16:23:14 -0700 Subject: [PATCH 12/40] Add better logging --- test/integration/util/minikube_runner.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/integration/util/minikube_runner.go b/test/integration/util/minikube_runner.go index 48d6bb549f..7dc09b02c9 100644 --- a/test/integration/util/minikube_runner.go +++ b/test/integration/util/minikube_runner.go @@ -100,7 +100,7 @@ func (m *MinikubeRunner) teeRun(cmd *exec.Cmd, waitForRun ...bool) (string, stri // RunCommand executes a command, optionally checking for error and by default waits for run to finish func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun ...bool) (string, string) { - profileArg := fmt.Sprintf("-p=%s ", m.Profile) + profileArg := fmt.Sprintf(" -p=%s ", m.Profile) cmdStr = profileArg + cmdStr cmdArgs := strings.Split(cmdStr, " ") path, _ := filepath.Abs(m.BinaryPath) @@ -127,13 +127,13 @@ func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun .. // RunCommandRetriable executes a command, returns error // the purpose of this command is to make it retriable by returning error func (m *MinikubeRunner) RunCommandRetriable(cmdStr string, waitForRun ...bool) (stdout string, stderr string, err error) { - profileArg := fmt.Sprintf("-p=%s ", m.Profile) + profileArg := fmt.Sprintf(" -p=%s ", m.Profile) cmdStr = profileArg + cmdStr cmdArgs := strings.Split(cmdStr, " ") path, _ := filepath.Abs(m.BinaryPath) cmd := exec.Command(path, cmdArgs...) - Logf("Run: %s", cmd.Args) + Logf("RunCommandRetriable: %s", cmd.Args) stdout, stderr, err = m.teeRun(cmd, waitForRun...) if err != nil { if exitError, ok := err.(*exec.ExitError); ok { @@ -147,13 +147,13 @@ func (m *MinikubeRunner) RunCommandRetriable(cmdStr string, waitForRun ...bool) // RunWithContext calls the minikube command with a context, useful for timeouts. func (m *MinikubeRunner) RunWithContext(ctx context.Context, cmdStr string, wait ...bool) (string, string, error) { - profileArg := fmt.Sprintf("-p=%s ", m.Profile) + profileArg := fmt.Sprintf(" -p=%s ", m.Profile) cmdStr = profileArg + cmdStr cmdArgs := strings.Split(cmdStr, " ") path, _ := filepath.Abs(m.BinaryPath) cmd := exec.CommandContext(ctx, path, cmdArgs...) - Logf("Run: %s", cmd.Args) + Logf("RunWithContext: %s", cmd.Args) return m.teeRun(cmd, wait...) } From 0e13fecd8ba1915035cc8bfdb1bf0301bcbe5e95 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Tue, 20 Aug 2019 17:56:47 -0700 Subject: [PATCH 13/40] fix replace --- test/integration/version_upgrade_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/version_upgrade_test.go b/test/integration/version_upgrade_test.go index 7e45ec28fa..86cabba679 100644 --- a/test/integration/version_upgrade_test.go +++ b/test/integration/version_upgrade_test.go @@ -80,7 +80,7 @@ func TestVersionUpgrade(t *testing.T) { // because the --wait-timeout is a new flag and the current latest release (1.3.1) doesn't have it // this won't be necessary after we release the change with --wait-timeout flag - mkRelease.StartArgs = strings.Replace("mkRelease.StartArgs", "--wait-timeout=13m", "", 1) + mkRelease.StartArgs = strings.Replace(mkRelease.StartArgs, "--wait-timeout=13m", "", 1) mkRelease.BinaryPath = fname // For full coverage: also test upgrading from oldest to newest supported k8s release stdout, stderr, err := mkRelease.Start(fmt.Sprintf("--kubernetes-version=%s", constants.OldestKubernetesVersion)) From 8923e4b5cda71122e31bcb45ba4c19ef81864289 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Tue, 20 Aug 2019 18:04:56 -0700 Subject: [PATCH 14/40] Fix string replace --- test/integration/util/minikube_runner.go | 10 +++++----- test/integration/version_upgrade_test.go | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/integration/util/minikube_runner.go b/test/integration/util/minikube_runner.go index 7dc09b02c9..105f7f5887 100644 --- a/test/integration/util/minikube_runner.go +++ b/test/integration/util/minikube_runner.go @@ -100,7 +100,7 @@ func (m *MinikubeRunner) teeRun(cmd *exec.Cmd, waitForRun ...bool) (string, stri // RunCommand executes a command, optionally checking for error and by default waits for run to finish func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun ...bool) (string, string) { - profileArg := fmt.Sprintf(" -p=%s ", m.Profile) + profileArg := fmt.Sprintf("-p=%s ", m.Profile) cmdStr = profileArg + cmdStr cmdArgs := strings.Split(cmdStr, " ") path, _ := filepath.Abs(m.BinaryPath) @@ -111,9 +111,9 @@ func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun .. if err != nil { errMsg := "" if exitError, ok := err.(*exec.ExitError); ok { - errMsg = fmt.Sprintf("Error running command: %s %s. Output: %s Stderr: %s", cmdStr, exitError.Stderr, stdout, stderr) + errMsg = fmt.Sprintf("Error RunCommand: %q : %q. Output: %q Stderr: %q", cmdStr, exitError.Stderr, stdout, stderr) } else { - errMsg = fmt.Sprintf("Error running command: %s %s. Output: %s", cmdStr, stderr, stdout) + errMsg = fmt.Sprintf("Error RunCommand: %q : %q. Output: %q", cmdStr, stderr, stdout) } if failError { m.T.Fatalf(errMsg) @@ -127,7 +127,7 @@ func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun .. // RunCommandRetriable executes a command, returns error // the purpose of this command is to make it retriable by returning error func (m *MinikubeRunner) RunCommandRetriable(cmdStr string, waitForRun ...bool) (stdout string, stderr string, err error) { - profileArg := fmt.Sprintf(" -p=%s ", m.Profile) + profileArg := fmt.Sprintf("-p=%s ", m.Profile) cmdStr = profileArg + cmdStr cmdArgs := strings.Split(cmdStr, " ") path, _ := filepath.Abs(m.BinaryPath) @@ -147,7 +147,7 @@ func (m *MinikubeRunner) RunCommandRetriable(cmdStr string, waitForRun ...bool) // RunWithContext calls the minikube command with a context, useful for timeouts. func (m *MinikubeRunner) RunWithContext(ctx context.Context, cmdStr string, wait ...bool) (string, string, error) { - profileArg := fmt.Sprintf(" -p=%s ", m.Profile) + profileArg := fmt.Sprintf("-p=%s ", m.Profile) cmdStr = profileArg + cmdStr cmdArgs := strings.Split(cmdStr, " ") path, _ := filepath.Abs(m.BinaryPath) diff --git a/test/integration/version_upgrade_test.go b/test/integration/version_upgrade_test.go index 86cabba679..a9c0da2453 100644 --- a/test/integration/version_upgrade_test.go +++ b/test/integration/version_upgrade_test.go @@ -85,7 +85,7 @@ func TestVersionUpgrade(t *testing.T) { // For full coverage: also test upgrading from oldest to newest supported k8s release stdout, stderr, err := mkRelease.Start(fmt.Sprintf("--kubernetes-version=%s", constants.OldestKubernetesVersion)) if err != nil { - t.Fatalf("TestVersionUpgrade minikube start failed : %v\nstdout: %s\nstderr: %s", err, stdout, stderr) + t.Fatalf("minikube start (%s) failed : %v\nstdout: %s\nstderr: %s", t.Name(), err, stdout, stderr) } mkRelease.CheckStatus(state.Running.String()) From 5f0b0c1b90ea632b4d13192e7f22154f33f23808 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Tue, 20 Aug 2019 19:37:04 -0700 Subject: [PATCH 15/40] Added duration metric for elevate priv --- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 2 +- pkg/minikube/bootstrapper/kubeadm/util.go | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index 736cdd4f25..ce7cf5c614 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -244,7 +244,7 @@ func (k *Bootstrapper) StartCluster(k8s config.KubernetesConfig) error { glog.Infof("Configuring cluster permissions ...") - if err := retry.Expo(elevateKubeSystemPrivileges, time.Millisecond*500, 40*time.Second); err != nil { + if err := retry.Expo(elevateKubeSystemPrivileges, time.Millisecond*500, 60*time.Second); err != nil { return errors.Wrap(err, "timed out waiting to elevate kube-system RBAC privileges") } diff --git a/pkg/minikube/bootstrapper/kubeadm/util.go b/pkg/minikube/bootstrapper/kubeadm/util.go index 3814cef7d5..b6c56ad39d 100644 --- a/pkg/minikube/bootstrapper/kubeadm/util.go +++ b/pkg/minikube/bootstrapper/kubeadm/util.go @@ -19,6 +19,7 @@ package kubeadm import ( "encoding/json" "net" + "time" "github.com/golang/glog" "github.com/pkg/errors" @@ -89,6 +90,7 @@ func unmarkMaster() error { // elevateKubeSystemPrivileges gives the kube-system service account // cluster admin privileges to work with RBAC. func elevateKubeSystemPrivileges() error { + start := time.Now() k8s := service.K8s client, err := k8s.GetClientset(constants.DefaultK8sClientTimeout) if err != nil { @@ -123,5 +125,6 @@ func elevateKubeSystemPrivileges() error { } return errors.Wrap(err, "creating clusterrolebinding") } + glog.Infof("duration metric: took %s to wait for elevateKubeSystemPrivileges.", time.Since(start)) return nil } From eef31403b4e665fe6d7437ab55303654461e23d7 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 08:45:17 -0700 Subject: [PATCH 16/40] Unified StartFail Logging, more t.Error and Added download only test, --- test/integration/a_download_only_test.go | 38 +++++++++++++++++----- test/integration/containerd_test.go | 11 ++----- test/integration/docker_test.go | 7 ++-- test/integration/functional_test.go | 5 +-- test/integration/iso_test.go | 2 +- test/integration/none_test.go | 2 +- test/integration/persistence_test.go | 10 ++---- test/integration/start_stop_delete_test.go | 26 ++++++++------- test/integration/util/minikube_runner.go | 16 ++++++--- test/integration/version_upgrade_test.go | 11 ++----- test/integration/z_proxy_test.go | 5 +-- 11 files changed, 69 insertions(+), 64 deletions(-) diff --git a/test/integration/a_download_only_test.go b/test/integration/a_download_only_test.go index 3060b72636..a03344f99f 100644 --- a/test/integration/a_download_only_test.go +++ b/test/integration/a_download_only_test.go @@ -43,22 +43,44 @@ func TestDownloadOnly(t *testing.T) { if !isTestNoneDriver(t) { // none driver doesnt need to be deleted defer mk.TearDown(t) } + minHome := constants.GetMinipath() t.Run("Oldest", func(t *testing.T) { - stdout, stderr, err := mk.Start("--download-only", fmt.Sprintf("--kubernetes-version=%s", constants.OldestKubernetesVersion)) - if err != nil { - t.Errorf("%s minikube --download-only failed : %v\nstdout: %s\nstderr: %s", p, err, stdout, stderr) - } + mk.StartWithFail("--download-only", fmt.Sprintf("--kubernetes-version=%s", constants.OldestKubernetesVersion)) }) t.Run("Newest", func(t *testing.T) { - stdout, stderr, err := mk.Start("--download-only", fmt.Sprintf("--kubernetes-version=%s", constants.NewestKubernetesVersion)) - if err != nil { - t.Errorf("%s minikube --download-only failed : %v\nstdout: %s\nstderr: %s", p, err, stdout, stderr) + v := constants.NewestKubernetesVersion + mk.StartWithFail("--download-only", fmt.Sprintf("--kubernetes-version=%s", v)) + + // checking binaries downloaded + _, imgs := constants.GetKubeadmCachedImages("", v) + for _, img := range imgs { + _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("images/%s", img))) + if err != nil { + t.Errorf("error expected download-only to cachne image %q but got error %v", img, err) + } } - // TODO: add test to check if files are downloaded + + // checking binaries downloaded (kubelet,kubeadm) + for _, bin := range constants.GetKubeadmCachedBinaries() { + _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("cache/%s/%s", v, bin))) + if err != nil { + t.Errorf("error expected download-only to cachne binary %q but got error %v", bin, err) + } + } + + // checking binaries downloaded + for _, bin := range []string{"kublet,kbueadm"} { + _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("cache/%s/%s", v, bin))) + if err != nil { + t.Errorf("error expected download-only to cachne binary %q but got error %v", bin, err) + } + } + }) + // this downloads the latest published binary from where we publish the minikube binary t.Run("DownloadLatestRelease", func(t *testing.T) { dest := filepath.Join(*testdataDir, fmt.Sprintf("minikube-%s-%s-latest-stable", runtime.GOOS, runtime.GOARCH)) err := downloadMinikubeBinary(t, dest, "latest") diff --git a/test/integration/containerd_test.go b/test/integration/containerd_test.go index 7c72a13491..293f6f053c 100644 --- a/test/integration/containerd_test.go +++ b/test/integration/containerd_test.go @@ -48,11 +48,7 @@ func testGvisorRestart(t *testing.T) { mk := NewMinikubeRunner(t, p, "--wait=false") defer mk.TearDown(t) - stdout, stderr, err := mk.Start("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") - if err != nil { - t.Fatalf("failed to start minikube (for profile %s) failed : %v\nstdout: %s\nstderr: %s", p, err, stdout, stderr) - } - + mk.StartWithFail("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") mk.RunCommand("cache add gcr.io/k8s-minikube/gvisor-addon:latest", true) mk.RunCommand("addons enable gvisor", true) @@ -69,10 +65,7 @@ func testGvisorRestart(t *testing.T) { deleteUntrustedWorkload(t, p) mk.RunCommand("delete", true) - stdout, stderr, err = mk.Start("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") - if err != nil { - t.Fatalf("failed to start minikube (for profile %s) failed : %v \nstdout: %s \nstderr: %s", t.Name(), err, stdout, stderr) - } + mk.StartWithFail("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") mk.CheckStatus(state.Running.String()) t.Log("waiting for gvisor controller to come up") diff --git a/test/integration/docker_test.go b/test/integration/docker_test.go index c7d02c36a3..5d90987f09 100644 --- a/test/integration/docker_test.go +++ b/test/integration/docker_test.go @@ -46,14 +46,11 @@ func TestDocker(t *testing.T) { t.Logf("pre-delete failed (probably ok): %v", err) } - stdout, stderr, err := mk.Start("--docker-env=FOO=BAR", "--docker-env=BAZ=BAT", "--docker-opt=debug", " --docker-opt=icc=true") - if err != nil { - t.Fatalf("TestDocker minikube start failed : %v\nstdout: %s\nstderr: %s", err, stdout, stderr) - } + mk.StartWithFail("--docker-env=FOO=BAR", "--docker-env=BAZ=BAT", "--docker-opt=debug", " --docker-opt=icc=true") mk.CheckStatus(state.Running.String()) - stdout, stderr, err = mk.RunWithContext(ctx, "ssh -- systemctl show docker --property=Environment --no-pager") + stdout, stderr, err := mk.RunWithContext(ctx, "ssh -- systemctl show docker --property=Environment --no-pager") if err != nil { t.Errorf("docker env: %v\nstderr: %s", err, stderr) } diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index bae1efded5..8dd5cc57ba 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -25,10 +25,7 @@ import ( func TestFunctional(t *testing.T) { p := profileName(t) mk := NewMinikubeRunner(t, p) - stdout, stderr, err := mk.Start() - if err != nil { - t.Fatalf("failed to start minikube failed : %v\nstdout: %s\nstderr: %s", err, stdout, stderr) - } + mk.StartWithFail() if !isTestNoneDriver(t) { // none driver doesn't need to be deleted defer mk.TearDown(t) } diff --git a/test/integration/iso_test.go b/test/integration/iso_test.go index 94092e1b5a..e2e8d6f01f 100644 --- a/test/integration/iso_test.go +++ b/test/integration/iso_test.go @@ -32,7 +32,7 @@ func TestISO(t *testing.T) { mk := NewMinikubeRunner(t, p, "--wait=false") mk.RunCommand("delete", false) - stdout, stderr, err := mk.Start() + stdout, stderr := mk.StartWithFail() if err != nil { t.Fatalf("failed to start minikube (for profile %s) %s) failed : %v\nstdout: %s\nstderr: %s", t.Name(), err, stdout, stderr) } diff --git a/test/integration/none_test.go b/test/integration/none_test.go index ec7f33ebc0..8371b65980 100644 --- a/test/integration/none_test.go +++ b/test/integration/none_test.go @@ -47,7 +47,7 @@ func TestNone(t *testing.T) { p := profileName(t) mk := NewMinikubeRunner(t, p, "--wait=false") mk.RunCommand("delete", false) - stdout, stderr, err := mk.Start() + stdout, stderr := mk.StartWithFail() if err != nil { t.Fatalf("failed to start minikube (for profile %s) failed : %v\nstdout: %s\nstderr: %s", p, err, stdout, stderr) } diff --git a/test/integration/persistence_test.go b/test/integration/persistence_test.go index c88e1b6cbf..097211b9fa 100644 --- a/test/integration/persistence_test.go +++ b/test/integration/persistence_test.go @@ -38,10 +38,7 @@ func TestPersistence(t *testing.T) { mk := NewMinikubeRunner(t, p, "--wait=false") defer mk.TearDown(t) - stdout, stderr, err := mk.Start() - if err != nil { - t.Fatalf("failed to start minikube (for profile %s) failed : %v\nstdout: %s\nstderr: %s", t.Name(), err, stdout, stderr) - } + mk.StartWithFail() kr := util.NewKubectlRunner(t, p) if _, err := kr.RunCommand([]string{"create", "-f", filepath.Join(*testdataDir, "busybox.yaml")}); err != nil { t.Fatalf("creating busybox pod: %s", err) @@ -58,10 +55,7 @@ func TestPersistence(t *testing.T) { mk.RunCommand("stop", true) mk.CheckStatus(state.Stopped.String()) - stdout, stderr, err = mk.Start() - if err != nil { - t.Fatalf("failed to start minikube (for profile %s) failed : %v\nstdout: %s\nstderr: %s", t.Name(), err, stdout, stderr) - } + mk.StartWithFail() mk.CheckStatus(state.Running.String()) // Make sure the same things come up after we've restarted. diff --git a/test/integration/start_stop_delete_test.go b/test/integration/start_stop_delete_test.go index 19cb44535a..303de31cfe 100644 --- a/test/integration/start_stop_delete_test.go +++ b/test/integration/start_stop_delete_test.go @@ -87,10 +87,7 @@ func TestStartStop(t *testing.T) { } mk.RunCommand("config set WantReportErrorPrompt false", true) - stdout, stderr, err := mk.Start(tc.args...) - if err != nil { - t.Fatalf("failed to start minikube (for profile %s) failed : %v\nstdout: %s\nstderr: %s", pn, err, stdout, stderr) - } + mk.StartWithFail(tc.args...) mk.CheckStatus(state.Running.String()) @@ -101,20 +98,25 @@ func TestStartStop(t *testing.T) { } stop := func() error { - stdout, stderr, err = mk.RunCommandRetriable("stop") - return mk.CheckStatusNoFail(state.Stopped.String()) + _, _, err := mk.RunCommandRetriable("stop", true) + if err != nil { + t.Errorf("minikube stop error %v ( will retry up to 3 times) ", err) + } + err = mk.CheckStatusNoFail(state.Stopped.String()) + if err != nil { + t.Errorf("expected status to be stoped but got error %v ", err) + } + return err } - err = retry.Expo(stop, 10*time.Second, 5*time.Minute) - mk.CheckStatus(state.Stopped.String()) - - stdout, stderr, err = mk.Start(tc.args...) + err := retry.Expo(stop, 10*time.Second, 5*time.Minute, 3) // max retry 3 if err != nil { - t.Fatalf("failed to start minikube (for profile %s) failed : %v\nstdout: %s\nstderr: %s", t.Name(), err, stdout, stderr) + t.Errorf("expected status to be stoped but got error: %v ", err) } + mk.CheckStatus(state.Stopped.String()) + mk.StartWithFail(tc.args...) mk.CheckStatus(state.Running.String()) - mk.RunCommand("delete", true) mk.CheckStatus(state.None.String()) }) diff --git a/test/integration/util/minikube_runner.go b/test/integration/util/minikube_runner.go index 105f7f5887..c8fd71c85f 100644 --- a/test/integration/util/minikube_runner.go +++ b/test/integration/util/minikube_runner.go @@ -228,13 +228,21 @@ func (m *MinikubeRunner) SSH(cmdStr string) (string, error) { } // Start starts the cluster -func (m *MinikubeRunner) Start(opts ...string) (stdout string, stderr string, err error) { +func (m *MinikubeRunner) start(opts ...string) (stdout string, stderr string, err error) { cmd := fmt.Sprintf("start %s %s %s", m.StartArgs, m.GlobalArgs, strings.Join(opts, " ")) ctx := context.Background() ctx, cancel := context.WithTimeout(ctx, m.TimeOutStart) defer cancel() - stdout, stderr, err = m.RunWithContext(ctx, cmd, true) - return stdout, stderr, err + return m.RunWithContext(ctx, cmd, true) +} + +// StartWithFail starts the cluster and fail the test if error +func (m *MinikubeRunner) StartWithFail(opts ...string) (stdout string, stderr string) { + stdout, stderr, err := m.start(opts...) + if err != nil { + m.T.Fatalf("%s Failed to start minikube (for profile %s) error: %v \n\twith opts %v, \n\t Global Args: %s \n\t Driver Args: %s \n\t STDOUT: \n\t\t %s \n\t STDERR: \n\t\t %s", m.T.Name(), m.Profile, err, strings.Join(opts, " "), m.GlobalArgs, m.StartArgs, stdout, stderr) + } + return stdout, stderr } // TearDown deletes minikube without waiting for it. used to free up ram/cpu after each test @@ -255,7 +263,7 @@ func (m *MinikubeRunner) EnsureRunning(opts ...string) { m.T.Errorf("error getting status for ensure running: %v", err) } if s != state.Running.String() { - stdout, stderr, err := m.Start(opts...) + stdout, stderr, err := m.start(opts...) if err != nil { m.T.Errorf("error starting while running EnsureRunning : %v , stdout %s stderr %s", err, stdout, stderr) } diff --git a/test/integration/version_upgrade_test.go b/test/integration/version_upgrade_test.go index a9c0da2453..e66c2b2f3b 100644 --- a/test/integration/version_upgrade_test.go +++ b/test/integration/version_upgrade_test.go @@ -83,19 +83,14 @@ func TestVersionUpgrade(t *testing.T) { mkRelease.StartArgs = strings.Replace(mkRelease.StartArgs, "--wait-timeout=13m", "", 1) mkRelease.BinaryPath = fname // For full coverage: also test upgrading from oldest to newest supported k8s release - stdout, stderr, err := mkRelease.Start(fmt.Sprintf("--kubernetes-version=%s", constants.OldestKubernetesVersion)) - if err != nil { - t.Fatalf("minikube start (%s) failed : %v\nstdout: %s\nstderr: %s", t.Name(), err, stdout, stderr) - } + mkRelease.StartWithFail(fmt.Sprintf("--kubernetes-version=%s", constants.OldestKubernetesVersion)) mkRelease.CheckStatus(state.Running.String()) mkRelease.RunCommand("stop", true) mkRelease.CheckStatus(state.Stopped.String()) // Trim the leading "v" prefix to assert that we handle it properly. - stdout, stderr, err = mkHead.Start(fmt.Sprintf("--kubernetes-version=%s", strings.TrimPrefix(constants.NewestKubernetesVersion, "v"))) - if err != nil { - t.Fatalf("TestVersionUpgrade mkCurrent.Start start failed : %v\nstdout: %s\nstderr: %s", err, stdout, stderr) - } + mkHead.StartWithFail(fmt.Sprintf("--kubernetes-version=%s", strings.TrimPrefix(constants.NewestKubernetesVersion, "v"))) + mkHead.CheckStatus(state.Running.String()) } diff --git a/test/integration/z_proxy_test.go b/test/integration/z_proxy_test.go index 86b9e2e1fc..8c991d8fd6 100644 --- a/test/integration/z_proxy_test.go +++ b/test/integration/z_proxy_test.go @@ -112,10 +112,7 @@ func TestProxy(t *testing.T) { func testProxyWarning(t *testing.T) { p := profileName(t) // profile name mk := NewMinikubeRunner(t, p) - stdout, stderr, err := mk.Start("--wait=false") - if err != nil { - t.Fatalf("failed to start minikube (for profile %s) failed : %v\nstdout: %s\nstderr: %s", t.Name(), err, stdout, stderr) - } + stdout, stderr := mk.StartWithFail("--wait=false") msg := "Found network options:" if !strings.Contains(stdout, msg) { From c7e0d3aa8e9df7f06d27c485ed048f74bcb25c4b Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 08:58:11 -0700 Subject: [PATCH 17/40] lint and simplify download_only --- test/integration/a_download_only_test.go | 49 +++++++++--------------- test/integration/none_test.go | 3 -- 2 files changed, 18 insertions(+), 34 deletions(-) diff --git a/test/integration/a_download_only_test.go b/test/integration/a_download_only_test.go index a03344f99f..2f5679cb78 100644 --- a/test/integration/a_download_only_test.go +++ b/test/integration/a_download_only_test.go @@ -43,41 +43,28 @@ func TestDownloadOnly(t *testing.T) { if !isTestNoneDriver(t) { // none driver doesnt need to be deleted defer mk.TearDown(t) } - minHome := constants.GetMinipath() - t.Run("Oldest", func(t *testing.T) { - mk.StartWithFail("--download-only", fmt.Sprintf("--kubernetes-version=%s", constants.OldestKubernetesVersion)) - }) + t.Run("OldestNewest", func(t *testing.T) { + minHome := constants.GetMinipath() + for _, v := range []string{constants.OldestKubernetesVersion, constants.NewestKubernetesVersion} { + mk.StartWithFail("--download-only", fmt.Sprintf("--kubernetes-version=%s", v)) + // checking if cached images are downloaded to + _, imgs := constants.GetKubeadmCachedImages("", v) + for _, img := range imgs { + _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("images/%s", img))) + if err != nil { + t.Errorf("error expected download-only to cachne image %q but got error %v", img, err) + } + } - t.Run("Newest", func(t *testing.T) { - v := constants.NewestKubernetesVersion - mk.StartWithFail("--download-only", fmt.Sprintf("--kubernetes-version=%s", v)) - - // checking binaries downloaded - _, imgs := constants.GetKubeadmCachedImages("", v) - for _, img := range imgs { - _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("images/%s", img))) - if err != nil { - t.Errorf("error expected download-only to cachne image %q but got error %v", img, err) + // checking binaries downloaded (kubelet,kubeadm) + for _, bin := range constants.GetKubeadmCachedBinaries() { + _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("cache/%s/%s", v, bin))) + if err != nil { + t.Errorf("error expected download-only to cachne binary %q but got error %v", bin, err) + } } } - - // checking binaries downloaded (kubelet,kubeadm) - for _, bin := range constants.GetKubeadmCachedBinaries() { - _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("cache/%s/%s", v, bin))) - if err != nil { - t.Errorf("error expected download-only to cachne binary %q but got error %v", bin, err) - } - } - - // checking binaries downloaded - for _, bin := range []string{"kublet,kbueadm"} { - _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("cache/%s/%s", v, bin))) - if err != nil { - t.Errorf("error expected download-only to cachne binary %q but got error %v", bin, err) - } - } - }) // this downloads the latest published binary from where we publish the minikube binary diff --git a/test/integration/none_test.go b/test/integration/none_test.go index 8371b65980..720772a509 100644 --- a/test/integration/none_test.go +++ b/test/integration/none_test.go @@ -48,9 +48,6 @@ func TestNone(t *testing.T) { mk := NewMinikubeRunner(t, p, "--wait=false") mk.RunCommand("delete", false) stdout, stderr := mk.StartWithFail() - if err != nil { - t.Fatalf("failed to start minikube (for profile %s) failed : %v\nstdout: %s\nstderr: %s", p, err, stdout, stderr) - } msg := "Configuring local host environment" if !strings.Contains(stdout, msg) { t.Errorf("Expected: stdout to contain %q, got: %s", msg, stdout) From b3c9eea3d8042a1f6b7a2eab8099b726ce4d97d9 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 09:58:22 -0700 Subject: [PATCH 18/40] improve logging, fix expected filename for downloadonly --- test/integration/a_download_only_test.go | 14 +++++++++----- test/integration/util/minikube_runner.go | 3 ++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/test/integration/a_download_only_test.go b/test/integration/a_download_only_test.go index 2f5679cb78..b21b14148b 100644 --- a/test/integration/a_download_only_test.go +++ b/test/integration/a_download_only_test.go @@ -24,6 +24,7 @@ import ( "os" "path/filepath" "runtime" + "strings" "testing" "time" @@ -48,20 +49,23 @@ func TestDownloadOnly(t *testing.T) { minHome := constants.GetMinipath() for _, v := range []string{constants.OldestKubernetesVersion, constants.NewestKubernetesVersion} { mk.StartWithFail("--download-only", fmt.Sprintf("--kubernetes-version=%s", v)) - // checking if cached images are downloaded to + // checking if cached images are downloaded for example (kube-apiserver_v1.15.2, kube-scheduler_v1.15.2, ...) _, imgs := constants.GetKubeadmCachedImages("", v) for _, img := range imgs { - _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("images/%s", img))) + img = strings.Replace(img, ":", "_", 1) // for example kube-scheduler:v1.15.2 --> kube-scheduler_v1.15.2 + fp := filepath.Join(minHome, "cache", "images", img) + _, err := os.Stat(fp) if err != nil { - t.Errorf("error expected download-only to cachne image %q but got error %v", img, err) + t.Errorf("expected image file exist at %q but got error: %v", fp, err) } } // checking binaries downloaded (kubelet,kubeadm) for _, bin := range constants.GetKubeadmCachedBinaries() { - _, err := os.Stat(filepath.Join(minHome, fmt.Sprintf("cache/%s/%s", v, bin))) + fp := filepath.Join(minHome, "cache", v, bin) + _, err := os.Stat(fp) if err != nil { - t.Errorf("error expected download-only to cachne binary %q but got error %v", bin, err) + t.Errorf("expected the file for binary exist at %q but got error %v", fp, err) } } } diff --git a/test/integration/util/minikube_runner.go b/test/integration/util/minikube_runner.go index c8fd71c85f..a8fb81d683 100644 --- a/test/integration/util/minikube_runner.go +++ b/test/integration/util/minikube_runner.go @@ -239,8 +239,9 @@ func (m *MinikubeRunner) start(opts ...string) (stdout string, stderr string, er // StartWithFail starts the cluster and fail the test if error func (m *MinikubeRunner) StartWithFail(opts ...string) (stdout string, stderr string) { stdout, stderr, err := m.start(opts...) + // the reason for this formatting is, the logs are very big but useful and also in parallel testing logs are harder to identify if err != nil { - m.T.Fatalf("%s Failed to start minikube (for profile %s) error: %v \n\twith opts %v, \n\t Global Args: %s \n\t Driver Args: %s \n\t STDOUT: \n\t\t %s \n\t STDERR: \n\t\t %s", m.T.Name(), m.Profile, err, strings.Join(opts, " "), m.GlobalArgs, m.StartArgs, stdout, stderr) + m.T.Fatalf("%s Failed to start minikube With error: %v \n\t Start log block ---> \n\t With Profile: %s \n\t With Args: %v \n\t With Global Args: %s \n\t With Driver Args: %s \n\t With STDOUT: \n \t %s \n\t With STDERR: \n \t %s \n\t <--- End of log block", m.T.Name(), err, m.Profile, strings.Join(opts, " "), m.GlobalArgs, m.StartArgs, stdout, stderr) } return stdout, stderr } From 8796539112d922699a3e4fc4725a7669b831edec Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 10:19:02 -0700 Subject: [PATCH 19/40] skip cache imge test for none --- test/integration/a_download_only_test.go | 47 +++++++++++++----------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/test/integration/a_download_only_test.go b/test/integration/a_download_only_test.go index b21b14148b..b3f2a96bf7 100644 --- a/test/integration/a_download_only_test.go +++ b/test/integration/a_download_only_test.go @@ -44,31 +44,36 @@ func TestDownloadOnly(t *testing.T) { if !isTestNoneDriver(t) { // none driver doesnt need to be deleted defer mk.TearDown(t) } - - t.Run("OldestNewest", func(t *testing.T) { - minHome := constants.GetMinipath() - for _, v := range []string{constants.OldestKubernetesVersion, constants.NewestKubernetesVersion} { - mk.StartWithFail("--download-only", fmt.Sprintf("--kubernetes-version=%s", v)) - // checking if cached images are downloaded for example (kube-apiserver_v1.15.2, kube-scheduler_v1.15.2, ...) - _, imgs := constants.GetKubeadmCachedImages("", v) - for _, img := range imgs { - img = strings.Replace(img, ":", "_", 1) // for example kube-scheduler:v1.15.2 --> kube-scheduler_v1.15.2 - fp := filepath.Join(minHome, "cache", "images", img) - _, err := os.Stat(fp) - if err != nil { - t.Errorf("expected image file exist at %q but got error: %v", fp, err) - } + t.Run("group", func(t *testing.T) { + t.Run("CacheOldestNewest", func(t *testing.T) { + if !isTestNoneDriver(t) { // don't cache images + t.Skip("skipping test for none driver as it doesn't cache images") } - // checking binaries downloaded (kubelet,kubeadm) - for _, bin := range constants.GetKubeadmCachedBinaries() { - fp := filepath.Join(minHome, "cache", v, bin) - _, err := os.Stat(fp) - if err != nil { - t.Errorf("expected the file for binary exist at %q but got error %v", fp, err) + minHome := constants.GetMinipath() + for _, v := range []string{constants.OldestKubernetesVersion, constants.NewestKubernetesVersion} { + mk.StartWithFail("--download-only", fmt.Sprintf("--kubernetes-version=%s", v)) + // checking if cached images are downloaded for example (kube-apiserver_v1.15.2, kube-scheduler_v1.15.2, ...) + _, imgs := constants.GetKubeadmCachedImages("", v) + for _, img := range imgs { + img = strings.Replace(img, ":", "_", 1) // for example kube-scheduler:v1.15.2 --> kube-scheduler_v1.15.2 + fp := filepath.Join(minHome, "cache", "images", img) + _, err := os.Stat(fp) + if err != nil { + t.Errorf("expected image file exist at %q but got error: %v", fp, err) + } + } + + // checking binaries downloaded (kubelet,kubeadm) + for _, bin := range constants.GetKubeadmCachedBinaries() { + fp := filepath.Join(minHome, "cache", v, bin) + _, err := os.Stat(fp) + if err != nil { + t.Errorf("expected the file for binary exist at %q but got error %v", fp, err) + } } } - } + }) }) // this downloads the latest published binary from where we publish the minikube binary From 246f33f52bedea1974ba8f616c5a65d51a1aeaae Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 11:19:03 -0700 Subject: [PATCH 20/40] Less Retry on minikube, new auto fail helpers MustStart,MustRun --- test/integration/a_download_only_test.go | 2 +- test/integration/containerd_test.go | 10 ++-- test/integration/docker_test.go | 2 +- test/integration/fn_addons.go | 15 +++--- test/integration/fn_cluster_env.go | 2 +- test/integration/fn_cluster_logs.go | 6 +-- test/integration/fn_cluster_ssh.go | 2 +- test/integration/fn_profile.go | 2 +- test/integration/fn_tunnel.go | 2 +- test/integration/functional_test.go | 2 +- test/integration/iso_test.go | 5 +- test/integration/none_test.go | 2 +- test/integration/persistence_test.go | 6 +-- test/integration/start_stop_delete_test.go | 31 +++-------- test/integration/util/minikube_runner.go | 62 +++++++++------------- test/integration/version_upgrade_test.go | 6 +-- test/integration/z_proxy_test.go | 2 +- 17 files changed, 67 insertions(+), 92 deletions(-) diff --git a/test/integration/a_download_only_test.go b/test/integration/a_download_only_test.go index b3f2a96bf7..9cf1b1f8ea 100644 --- a/test/integration/a_download_only_test.go +++ b/test/integration/a_download_only_test.go @@ -52,7 +52,7 @@ func TestDownloadOnly(t *testing.T) { minHome := constants.GetMinipath() for _, v := range []string{constants.OldestKubernetesVersion, constants.NewestKubernetesVersion} { - mk.StartWithFail("--download-only", fmt.Sprintf("--kubernetes-version=%s", v)) + mk.MustStart("--download-only", fmt.Sprintf("--kubernetes-version=%s", v)) // checking if cached images are downloaded for example (kube-apiserver_v1.15.2, kube-scheduler_v1.15.2, ...) _, imgs := constants.GetKubeadmCachedImages("", v) for _, img := range imgs { diff --git a/test/integration/containerd_test.go b/test/integration/containerd_test.go index 293f6f053c..8ee9863db1 100644 --- a/test/integration/containerd_test.go +++ b/test/integration/containerd_test.go @@ -48,9 +48,9 @@ func testGvisorRestart(t *testing.T) { mk := NewMinikubeRunner(t, p, "--wait=false") defer mk.TearDown(t) - mk.StartWithFail("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") - mk.RunCommand("cache add gcr.io/k8s-minikube/gvisor-addon:latest", true) - mk.RunCommand("addons enable gvisor", true) + mk.MustStart("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") + mk.MustRun("cache add gcr.io/k8s-minikube/gvisor-addon:latest") + mk.MustRun("addons enable gvisor") t.Log("waiting for gvisor controller to come up") if err := waitForGvisorControllerRunning(p); err != nil { @@ -64,8 +64,8 @@ func testGvisorRestart(t *testing.T) { } deleteUntrustedWorkload(t, p) - mk.RunCommand("delete", true) - mk.StartWithFail("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") + mk.MustRun("delete") + mk.MustStart("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") mk.CheckStatus(state.Running.String()) t.Log("waiting for gvisor controller to come up") diff --git a/test/integration/docker_test.go b/test/integration/docker_test.go index 5d90987f09..818bcbf5bb 100644 --- a/test/integration/docker_test.go +++ b/test/integration/docker_test.go @@ -46,7 +46,7 @@ func TestDocker(t *testing.T) { t.Logf("pre-delete failed (probably ok): %v", err) } - mk.StartWithFail("--docker-env=FOO=BAR", "--docker-env=BAZ=BAT", "--docker-opt=debug", " --docker-opt=icc=true") + mk.MustStart("--docker-env=FOO=BAR", "--docker-env=BAZ=BAT", "--docker-opt=debug", " --docker-opt=icc=true") mk.CheckStatus(state.Running.String()) diff --git a/test/integration/fn_addons.go b/test/integration/fn_addons.go index 0ecc1ecba4..c6f3a1cea7 100644 --- a/test/integration/fn_addons.go +++ b/test/integration/fn_addons.go @@ -128,7 +128,7 @@ func testIngressController(t *testing.T) { mk := NewMinikubeRunner(t, p, "--wait=false") kr := util.NewKubectlRunner(t, p) - mk.RunCommand("addons enable ingress", true) + mk.MustRun("addons enable ingress") if err := waitForIngressControllerRunning(p); err != nil { t.Fatalf("Failed waiting for ingress-controller to be up: %v", err) } @@ -168,7 +168,7 @@ func testIngressController(t *testing.T) { } } }() - mk.RunCommand("addons disable ingress", true) + mk.MustRun("addons disable ingress") } func testServicesList(t *testing.T) { @@ -177,7 +177,10 @@ func testServicesList(t *testing.T) { mk := NewMinikubeRunner(t, p) checkServices := func() error { - output, stderr := mk.RunCommand("service list", false) + output, stderr, err := mk.RunCommand("service list", false) + if err != nil { + return err + } if !strings.Contains(output, "kubernetes") { return fmt.Errorf("error, kubernetes service missing from output: %s, \n stderr: %s", output, stderr) } @@ -191,7 +194,7 @@ func testRegistry(t *testing.T) { t.Parallel() p := profileName(t) mk := NewMinikubeRunner(t, p) - mk.RunCommand("addons enable registry", true) + mk.MustRun("addons enable registry") client, err := kapi.Client(p) if err != nil { t.Fatalf("getting kubernetes client: %v", err) @@ -210,7 +213,7 @@ func testRegistry(t *testing.T) { if err := kapi.WaitForPodsWithLabelRunning(client, "kube-system", ps); err != nil { t.Fatalf("waiting for registry-proxy pods: %v", err) } - ip, stderr := mk.RunCommand("ip", true) + ip, stderr := mk.MustRun("ip") ip = strings.TrimSpace(ip) endpoint := fmt.Sprintf("http://%s:%d", ip, 5000) u, err := url.Parse(endpoint) @@ -259,7 +262,7 @@ func testRegistry(t *testing.T) { t.Errorf("failed to delete pod registry-test") } }() - mk.RunCommand("addons disable registry", true) + mk.MustRun("addons disable registry") } // waitForNginxRunning waits for nginx service to be up diff --git a/test/integration/fn_cluster_env.go b/test/integration/fn_cluster_env.go index 9a5e66a0ae..7144000616 100644 --- a/test/integration/fn_cluster_env.go +++ b/test/integration/fn_cluster_env.go @@ -34,7 +34,7 @@ func testClusterEnv(t *testing.T) { mk := NewMinikubeRunner(t, p, "--wait=false") // Set a specific shell syntax so that we don't have to handle every possible user shell - envOut, stderr := mk.RunCommand("docker-env --shell=bash", true) + envOut, stderr := mk.MustRun("docker-env --shell=bash") vars := mk.ParseEnvCmdOutput(envOut) if len(vars) == 0 { t.Fatalf("Failed to parse env vars:\n%s, \n stderr: %s ", envOut, stderr) diff --git a/test/integration/fn_cluster_logs.go b/test/integration/fn_cluster_logs.go index c97912a916..c4b0b9cb13 100644 --- a/test/integration/fn_cluster_logs.go +++ b/test/integration/fn_cluster_logs.go @@ -27,13 +27,13 @@ func testClusterLogs(t *testing.T) { t.Parallel() p := profileName(t) mk := NewMinikubeRunner(t, p) - logsCmdOutput := mk.GetLogs() + logsCmdStdout, _ := mk.GetLogs() // check for # of lines or check for strings logWords := []string{"minikube", ".go"} for _, logWord := range logWords { - if !strings.Contains(logsCmdOutput, logWord) { - t.Fatalf("Error in logsCmdOutput, expected to find: %s. Output: %s", logWord, logsCmdOutput) + if !strings.Contains(logsCmdStdout, logWord) { + t.Fatalf("Error in logsCmdOutput, expected to find: %s. Output: %s", logWord, logsCmdStdout) } } } diff --git a/test/integration/fn_cluster_ssh.go b/test/integration/fn_cluster_ssh.go index cb2744ae96..4c98d24a46 100644 --- a/test/integration/fn_cluster_ssh.go +++ b/test/integration/fn_cluster_ssh.go @@ -28,7 +28,7 @@ func testClusterSSH(t *testing.T) { p := profileName(t) mk := NewMinikubeRunner(t, p, "--wait=false") expectedStr := "hello" - sshCmdOutput, stderr := mk.RunCommand("ssh echo "+expectedStr, true) + sshCmdOutput, stderr := mk.MustRun("ssh echo " + expectedStr) if !strings.Contains(sshCmdOutput, expectedStr) { t.Fatalf("ExpectedStr sshCmdOutput to be: %s. Output was: %s Stderr: %s", expectedStr, sshCmdOutput, stderr) } diff --git a/test/integration/fn_profile.go b/test/integration/fn_profile.go index 9160a21190..3e9d108700 100644 --- a/test/integration/fn_profile.go +++ b/test/integration/fn_profile.go @@ -28,7 +28,7 @@ func testProfileList(t *testing.T) { p := profileName(t) t.Parallel() mk := NewMinikubeRunner(t, p, "--wait=false") - out, stderr := mk.RunCommand("profile list", true) + out, stderr := mk.MustRun("profile list") if !strings.Contains(out, p) { t.Errorf("Error , failed to read profile name (%s) in `profile list` command output : \n %q : \n stderr: %s ", p, out, stderr) } diff --git a/test/integration/fn_tunnel.go b/test/integration/fn_tunnel.go index d3721c71bf..534bb5bf24 100644 --- a/test/integration/fn_tunnel.go +++ b/test/integration/fn_tunnel.go @@ -49,7 +49,7 @@ func testTunnel(t *testing.T) { p := profileName(t) mk := NewMinikubeRunner(t, p, "--wait=false") go func() { - output, stderr := mk.RunCommand("tunnel --alsologtostderr -v 8 --logtostderr", true) + output, stderr := mk.MustRun("tunnel --alsologtostderr -v 8 --logtostderr") if t.Failed() { t.Errorf("tunnel stderr : %s", stderr) t.Errorf("tunnel output : %s", output) diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 8dd5cc57ba..a9a3d61bea 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -25,7 +25,7 @@ import ( func TestFunctional(t *testing.T) { p := profileName(t) mk := NewMinikubeRunner(t, p) - mk.StartWithFail() + mk.MustStart() if !isTestNoneDriver(t) { // none driver doesn't need to be deleted defer mk.TearDown(t) } diff --git a/test/integration/iso_test.go b/test/integration/iso_test.go index e2e8d6f01f..1febd5b023 100644 --- a/test/integration/iso_test.go +++ b/test/integration/iso_test.go @@ -29,10 +29,9 @@ func TestISO(t *testing.T) { if shouldRunInParallel(t) { t.Parallel() } - mk := NewMinikubeRunner(t, p, "--wait=false") - mk.RunCommand("delete", false) - stdout, stderr := mk.StartWithFail() + mk.RunCommand("delete", false) // will error if not exist, but ignored. + stdout, stderr := mk.MustStart() if err != nil { t.Fatalf("failed to start minikube (for profile %s) %s) failed : %v\nstdout: %s\nstderr: %s", t.Name(), err, stdout, stderr) } diff --git a/test/integration/none_test.go b/test/integration/none_test.go index 720772a509..5062ed0d49 100644 --- a/test/integration/none_test.go +++ b/test/integration/none_test.go @@ -47,7 +47,7 @@ func TestNone(t *testing.T) { p := profileName(t) mk := NewMinikubeRunner(t, p, "--wait=false") mk.RunCommand("delete", false) - stdout, stderr := mk.StartWithFail() + stdout, stderr := mk.MustStart() msg := "Configuring local host environment" if !strings.Contains(stdout, msg) { t.Errorf("Expected: stdout to contain %q, got: %s", msg, stdout) diff --git a/test/integration/persistence_test.go b/test/integration/persistence_test.go index 097211b9fa..d2c576fbdc 100644 --- a/test/integration/persistence_test.go +++ b/test/integration/persistence_test.go @@ -38,7 +38,7 @@ func TestPersistence(t *testing.T) { mk := NewMinikubeRunner(t, p, "--wait=false") defer mk.TearDown(t) - mk.StartWithFail() + mk.MustStart() kr := util.NewKubectlRunner(t, p) if _, err := kr.RunCommand([]string{"create", "-f", filepath.Join(*testdataDir, "busybox.yaml")}); err != nil { t.Fatalf("creating busybox pod: %s", err) @@ -52,10 +52,10 @@ func TestPersistence(t *testing.T) { // Make sure everything is up before we stop. verifyBusybox(t) - mk.RunCommand("stop", true) + mk.MustRun("stop") mk.CheckStatus(state.Stopped.String()) - mk.StartWithFail() + mk.MustStart() mk.CheckStatus(state.Running.String()) // Make sure the same things come up after we've restarted. diff --git a/test/integration/start_stop_delete_test.go b/test/integration/start_stop_delete_test.go index 303de31cfe..19b0e6f2aa 100644 --- a/test/integration/start_stop_delete_test.go +++ b/test/integration/start_stop_delete_test.go @@ -23,11 +23,9 @@ import ( "net" "strings" "testing" - "time" "github.com/docker/machine/libmachine/state" "k8s.io/minikube/pkg/minikube/constants" - "k8s.io/minikube/pkg/util/retry" ) func TestStartStop(t *testing.T) { @@ -86,38 +84,25 @@ func TestStartStop(t *testing.T) { t.Skipf("skipping %s - incompatible with none driver", t.Name()) } - mk.RunCommand("config set WantReportErrorPrompt false", true) - mk.StartWithFail(tc.args...) + mk.MustRun("config set WantReportErrorPrompt false") + mk.MustStart(tc.args...) mk.CheckStatus(state.Running.String()) - ip, stderr := mk.RunCommand("ip", true) + ip, stderr := mk.MustRun("ip") ip = strings.TrimRight(ip, "\n") if net.ParseIP(ip) == nil { t.Fatalf("IP command returned an invalid address: %s \n %s", ip, stderr) } - stop := func() error { - _, _, err := mk.RunCommandRetriable("stop", true) - if err != nil { - t.Errorf("minikube stop error %v ( will retry up to 3 times) ", err) - } - err = mk.CheckStatusNoFail(state.Stopped.String()) - if err != nil { - t.Errorf("expected status to be stoped but got error %v ", err) - } - return err - } - - err := retry.Expo(stop, 10*time.Second, 5*time.Minute, 3) // max retry 3 + mk.MustRun("stop") + err := mk.CheckStatusNoFail(state.Stopped.String()) if err != nil { - t.Errorf("expected status to be stoped but got error: %v ", err) + t.Errorf("expected status to be %s but got error %v ", state.Stopped.String(), err) } - - mk.CheckStatus(state.Stopped.String()) - mk.StartWithFail(tc.args...) + mk.MustStart(tc.args...) mk.CheckStatus(state.Running.String()) - mk.RunCommand("delete", true) + mk.MustRun("delete") mk.CheckStatus(state.None.String()) }) } diff --git a/test/integration/util/minikube_runner.go b/test/integration/util/minikube_runner.go index a8fb81d683..6e1d7381aa 100644 --- a/test/integration/util/minikube_runner.go +++ b/test/integration/util/minikube_runner.go @@ -98,8 +98,17 @@ func (m *MinikubeRunner) teeRun(cmd *exec.Cmd, waitForRun ...bool) (string, stri return "", "", err } +// MustRun executes a command and fails if error, and and unless waitForRun is set to false it waits for it finish. +func (m *MinikubeRunner) MustRun(cmdStr string, waitForRun ...bool) (string, string) { + stdout, stderr, err := m.RunCommand(cmdStr, true, waitForRun...) + if err != nil { + m.T.Logf("MusRun error: %v", err) + } + return stdout, stderr +} + // RunCommand executes a command, optionally checking for error and by default waits for run to finish -func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun ...bool) (string, string) { +func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun ...bool) (string, string, error) { profileArg := fmt.Sprintf("-p=%s ", m.Profile) cmdStr = profileArg + cmdStr cmdArgs := strings.Split(cmdStr, " ") @@ -109,39 +118,17 @@ func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun .. Logf("Run: %s", cmd.Args) stdout, stderr, err := m.teeRun(cmd, waitForRun...) if err != nil { - errMsg := "" + exitCode := "" if exitError, ok := err.(*exec.ExitError); ok { - errMsg = fmt.Sprintf("Error RunCommand: %q : %q. Output: %q Stderr: %q", cmdStr, exitError.Stderr, stdout, stderr) - } else { - errMsg = fmt.Sprintf("Error RunCommand: %q : %q. Output: %q", cmdStr, stderr, stdout) + exitCode = string(exitError.Stderr) } + errMsg := fmt.Sprintf("Error RunCommand : %s \n\t Begin RunCommand log block ---> \n\t With Profile: %s \n\t With ExitCode: %q \n\t With STDOUT %s \n\t With STDERR %s \n\t <--- End of RunCommand log block", cmdStr, m.Profile, exitCode, stdout, stderr) if failError { m.T.Fatalf(errMsg) } else { m.T.Errorf(errMsg) } } - return stdout, stderr -} - -// RunCommandRetriable executes a command, returns error -// the purpose of this command is to make it retriable by returning error -func (m *MinikubeRunner) RunCommandRetriable(cmdStr string, waitForRun ...bool) (stdout string, stderr string, err error) { - profileArg := fmt.Sprintf("-p=%s ", m.Profile) - cmdStr = profileArg + cmdStr - cmdArgs := strings.Split(cmdStr, " ") - path, _ := filepath.Abs(m.BinaryPath) - - cmd := exec.Command(path, cmdArgs...) - Logf("RunCommandRetriable: %s", cmd.Args) - stdout, stderr, err = m.teeRun(cmd, waitForRun...) - if err != nil { - if exitError, ok := err.(*exec.ExitError); ok { - m.T.Logf("temporary error: running command: %s %s. Output: \n%s", cmdStr, exitError.Stderr, stdout) - } else { - m.T.Logf("temporary error: running command: %s %s. Output: \n%s", cmdStr, stderr, stdout) - } - } return stdout, stderr, err } @@ -237,11 +224,11 @@ func (m *MinikubeRunner) start(opts ...string) (stdout string, stderr string, er } // StartWithFail starts the cluster and fail the test if error -func (m *MinikubeRunner) StartWithFail(opts ...string) (stdout string, stderr string) { +func (m *MinikubeRunner) MustStart(opts ...string) (stdout string, stderr string) { stdout, stderr, err := m.start(opts...) // the reason for this formatting is, the logs are very big but useful and also in parallel testing logs are harder to identify if err != nil { - m.T.Fatalf("%s Failed to start minikube With error: %v \n\t Start log block ---> \n\t With Profile: %s \n\t With Args: %v \n\t With Global Args: %s \n\t With Driver Args: %s \n\t With STDOUT: \n \t %s \n\t With STDERR: \n \t %s \n\t <--- End of log block", m.T.Name(), err, m.Profile, strings.Join(opts, " "), m.GlobalArgs, m.StartArgs, stdout, stderr) + m.T.Fatalf("%s Failed to start minikube With error: %v \n\t begin Start log block ---> \n\t With Profile: %s \n\t With Args: %v \n\t With Global Args: %s \n\t With Driver Args: %s \n\t With STDOUT: \n \t %s \n\t With STDERR: \n \t %s \n\t <--- End of start log block", m.T.Name(), err, m.Profile, strings.Join(opts, " "), m.GlobalArgs, m.StartArgs, stdout, stderr) } return stdout, stderr } @@ -284,24 +271,25 @@ func (m *MinikubeRunner) ParseEnvCmdOutput(out string) map[string]string { // Status returns the status of a service func (m *MinikubeRunner) Status() (status string, stderr string, err error) { - cmd := fmt.Sprintf("status --format={{.Host}} %s", m.GlobalArgs) s := func() error { - status, stderr, err = m.RunCommandRetriable(cmd) + status, stderr, err = m.RunCommand("status --format={{.Host}} %s", false) status = strings.TrimRight(status, "\n") + if err != nil && (status == state.None.String() || status == state.Stopped.String()) { + err = nil // because https://github.com/kubernetes/minikube/issues/4932 + } return err } err = retry.Expo(s, 3*time.Second, 2*time.Minute) - if err != nil && (status == state.None.String() || status == state.Stopped.String()) { - err = nil // because https://github.com/kubernetes/minikube/issues/4932 - } return status, stderr, err } // GetLogs returns the logs of a service -func (m *MinikubeRunner) GetLogs() string { - // TODO: this test needs to check sterr too ! - stdout, _ := m.RunCommand(fmt.Sprintf("logs %s", m.GlobalArgs), true) - return stdout +func (m *MinikubeRunner) GetLogs() (string, string) { + stdout, stderr, err := m.RunCommand(fmt.Sprintf("logs %s", m.GlobalArgs), true) + if err != nil { + m.T.Logf("Error in GetLogs %v", err) + } + return stdout, stderr } // CheckStatus makes sure the service has the desired status, or cause fatal error diff --git a/test/integration/version_upgrade_test.go b/test/integration/version_upgrade_test.go index e66c2b2f3b..6295c1d34f 100644 --- a/test/integration/version_upgrade_test.go +++ b/test/integration/version_upgrade_test.go @@ -83,14 +83,14 @@ func TestVersionUpgrade(t *testing.T) { mkRelease.StartArgs = strings.Replace(mkRelease.StartArgs, "--wait-timeout=13m", "", 1) mkRelease.BinaryPath = fname // For full coverage: also test upgrading from oldest to newest supported k8s release - mkRelease.StartWithFail(fmt.Sprintf("--kubernetes-version=%s", constants.OldestKubernetesVersion)) + mkRelease.MustStart(fmt.Sprintf("--kubernetes-version=%s", constants.OldestKubernetesVersion)) mkRelease.CheckStatus(state.Running.String()) - mkRelease.RunCommand("stop", true) + mkRelease.MustRun("stop") mkRelease.CheckStatus(state.Stopped.String()) // Trim the leading "v" prefix to assert that we handle it properly. - mkHead.StartWithFail(fmt.Sprintf("--kubernetes-version=%s", strings.TrimPrefix(constants.NewestKubernetesVersion, "v"))) + mkHead.MustStart(fmt.Sprintf("--kubernetes-version=%s", strings.TrimPrefix(constants.NewestKubernetesVersion, "v"))) mkHead.CheckStatus(state.Running.String()) } diff --git a/test/integration/z_proxy_test.go b/test/integration/z_proxy_test.go index 8c991d8fd6..a87f462986 100644 --- a/test/integration/z_proxy_test.go +++ b/test/integration/z_proxy_test.go @@ -112,7 +112,7 @@ func TestProxy(t *testing.T) { func testProxyWarning(t *testing.T) { p := profileName(t) // profile name mk := NewMinikubeRunner(t, p) - stdout, stderr := mk.StartWithFail("--wait=false") + stdout, stderr := mk.MustStart("--wait=false") msg := "Found network options:" if !strings.Contains(stdout, msg) { From 8cadce302a1fcc37940af150f2297334eaabe55a Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 11:33:05 -0700 Subject: [PATCH 21/40] lint and add profile name to end of obvious log block --- test/integration/config_test.go | 3 +-- test/integration/util/minikube_runner.go | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/test/integration/config_test.go b/test/integration/config_test.go index 626f84266f..6555c6519f 100644 --- a/test/integration/config_test.go +++ b/test/integration/config_test.go @@ -65,8 +65,7 @@ func TestConfig(t *testing.T) { } for _, tc := range tests { - stdout, stderr, _ := mk.RunCommandRetriable(tc.cmd) - + stdout, stderr := mk.MustRun(tc.cmd) if !compare(tc.stdout, stdout) { t.Fatalf("Expected stdout to be: %s. Stdout was: %s Stderr: %s", tc.stdout, stdout, stderr) } diff --git a/test/integration/util/minikube_runner.go b/test/integration/util/minikube_runner.go index 6e1d7381aa..7e03387159 100644 --- a/test/integration/util/minikube_runner.go +++ b/test/integration/util/minikube_runner.go @@ -228,7 +228,7 @@ func (m *MinikubeRunner) MustStart(opts ...string) (stdout string, stderr string stdout, stderr, err := m.start(opts...) // the reason for this formatting is, the logs are very big but useful and also in parallel testing logs are harder to identify if err != nil { - m.T.Fatalf("%s Failed to start minikube With error: %v \n\t begin Start log block ---> \n\t With Profile: %s \n\t With Args: %v \n\t With Global Args: %s \n\t With Driver Args: %s \n\t With STDOUT: \n \t %s \n\t With STDERR: \n \t %s \n\t <--- End of start log block", m.T.Name(), err, m.Profile, strings.Join(opts, " "), m.GlobalArgs, m.StartArgs, stdout, stderr) + m.T.Fatalf("%s Failed to start minikube With error: %v \n\t begin Start log block ------------> \n\t With Profile: %s \n\t With Args: %v \n\t With Global Args: %s \n\t With Driver Args: %s \n\t With STDOUT: \n \t %s \n\t With STDERR: \n \t %s \n\t <------------ End of Start (%s) log block", m.T.Name(), err, m.Profile, strings.Join(opts, " "), m.GlobalArgs, m.StartArgs, stdout, stderr, m.Profile) } return stdout, stderr } From 16e5aeec5ec05ce84214cffb9910e2c43cc96bf4 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 12:12:15 -0700 Subject: [PATCH 22/40] lint --- test/integration/iso_test.go | 4 ++-- test/integration/none_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/integration/iso_test.go b/test/integration/iso_test.go index 1febd5b023..fa44e9ee52 100644 --- a/test/integration/iso_test.go +++ b/test/integration/iso_test.go @@ -30,8 +30,8 @@ func TestISO(t *testing.T) { t.Parallel() } mk := NewMinikubeRunner(t, p, "--wait=false") - mk.RunCommand("delete", false) // will error if not exist, but ignored. - stdout, stderr := mk.MustStart() + mk.MustRun("delete") + stdout, stderr := mk.MustStart() if err != nil { t.Fatalf("failed to start minikube (for profile %s) %s) failed : %v\nstdout: %s\nstderr: %s", t.Name(), err, stdout, stderr) } diff --git a/test/integration/none_test.go b/test/integration/none_test.go index 5062ed0d49..29915d9979 100644 --- a/test/integration/none_test.go +++ b/test/integration/none_test.go @@ -46,7 +46,7 @@ func TestNone(t *testing.T) { p := profileName(t) mk := NewMinikubeRunner(t, p, "--wait=false") - mk.RunCommand("delete", false) + mk.MustRun("delete") stdout, stderr := mk.MustStart() msg := "Configuring local host environment" if !strings.Contains(stdout, msg) { From 0f0def79ce4564c148f34070a9fbe152211707b9 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 13:53:35 -0700 Subject: [PATCH 23/40] change RunCommand for test config --- test/integration/config_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/config_test.go b/test/integration/config_test.go index 6555c6519f..bec9a36d71 100644 --- a/test/integration/config_test.go +++ b/test/integration/config_test.go @@ -65,7 +65,7 @@ func TestConfig(t *testing.T) { } for _, tc := range tests { - stdout, stderr := mk.MustRun(tc.cmd) + stdout, stderr := mk.RunCommand(tc.cmd, false) if !compare(tc.stdout, stdout) { t.Fatalf("Expected stdout to be: %s. Stdout was: %s Stderr: %s", tc.stdout, stdout, stderr) } From ac254bc7858e2633e4b6a84af52379e1c52f6f4b Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 14:25:00 -0700 Subject: [PATCH 24/40] check err --- test/integration/config_test.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/integration/config_test.go b/test/integration/config_test.go index bec9a36d71..2eafa40877 100644 --- a/test/integration/config_test.go +++ b/test/integration/config_test.go @@ -65,7 +65,10 @@ func TestConfig(t *testing.T) { } for _, tc := range tests { - stdout, stderr := mk.RunCommand(tc.cmd, false) + stdout, stderr, err := mk.RunCommand(tc.cmd, false) + if err != nil { + t.Logf("error running config test command (might be okay): %v ", err) + } if !compare(tc.stdout, stdout) { t.Fatalf("Expected stdout to be: %s. Stdout was: %s Stderr: %s", tc.stdout, stdout, stderr) } From 56cbffb028c8cafbc9f4fc057b848a75ad9772be Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 15:29:01 -0700 Subject: [PATCH 25/40] skip none test for image cache --- test/integration/a_download_only_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/a_download_only_test.go b/test/integration/a_download_only_test.go index 9cf1b1f8ea..4f72c557d3 100644 --- a/test/integration/a_download_only_test.go +++ b/test/integration/a_download_only_test.go @@ -46,7 +46,7 @@ func TestDownloadOnly(t *testing.T) { } t.Run("group", func(t *testing.T) { t.Run("CacheOldestNewest", func(t *testing.T) { - if !isTestNoneDriver(t) { // don't cache images + if isTestNoneDriver(t) { // don't cache images t.Skip("skipping test for none driver as it doesn't cache images") } From 9d0654f59e55558a1bb0208df1b32875c2693665 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 15:58:57 -0700 Subject: [PATCH 26/40] remove mistake file checked in --- .../testdata/v1.10/containerd-api-port.yaml | 17 ------ .../v1.10/containerd-pod-network-cidr.yaml | 17 ------ .../kubeadm/testdata/v1.10/containerd.yaml | 17 ------ .../testdata/v1.10/crio-options-gates.yaml | 25 --------- .../kubeadm/testdata/v1.10/crio.yaml | 17 ------ .../kubeadm/testdata/v1.10/default.yaml | 16 ------ .../testdata/v1.10/image-repository.yaml | 17 ------ .../kubeadm/testdata/v1.10/options.yaml | 21 -------- .../testdata/v1.11/containerd-api-port.yaml | 17 ------ .../v1.11/containerd-pod-network-cidr.yaml | 17 ------ .../kubeadm/testdata/v1.11/containerd.yaml | 17 ------ .../testdata/v1.11/crio-options-gates.yaml | 25 --------- .../kubeadm/testdata/v1.11/crio.yaml | 17 ------ .../kubeadm/testdata/v1.11/default.yaml | 16 ------ .../testdata/v1.11/image-repository.yaml | 17 ------ .../kubeadm/testdata/v1.11/options.yaml | 21 -------- .../testdata/v1.12/containerd-api-port.yaml | 39 -------------- .../v1.12/containerd-pod-network-cidr.yaml | 39 -------------- .../kubeadm/testdata/v1.12/containerd.yaml | 39 -------------- .../testdata/v1.12/crio-options-gates.yaml | 47 ---------------- .../kubeadm/testdata/v1.12/crio.yaml | 39 -------------- .../kubeadm/testdata/v1.12/default.yaml | 39 -------------- .../testdata/v1.12/image-repository.yaml | 40 -------------- .../kubeadm/testdata/v1.12/options.yaml | 44 --------------- .../testdata/v1.13/containerd-api-port.yaml | 39 -------------- .../v1.13/containerd-pod-network-cidr.yaml | 39 -------------- .../kubeadm/testdata/v1.13/containerd.yaml | 39 -------------- .../testdata/v1.13/crio-options-gates.yaml | 47 ---------------- .../kubeadm/testdata/v1.13/crio.yaml | 39 -------------- .../kubeadm/testdata/v1.13/default.yaml | 39 -------------- .../testdata/v1.13/image-repository.yaml | 40 -------------- .../kubeadm/testdata/v1.13/options.yaml | 44 --------------- .../testdata/v1.14/containerd-api-port.yaml | 43 --------------- .../v1.14/containerd-pod-network-cidr.yaml | 43 --------------- .../kubeadm/testdata/v1.14/containerd.yaml | 43 --------------- .../testdata/v1.14/crio-options-gates.yaml | 53 ------------------- .../kubeadm/testdata/v1.14/crio.yaml | 43 --------------- .../kubeadm/testdata/v1.14/default.yaml | 43 --------------- .../testdata/v1.14/image-repository.yaml | 44 --------------- .../kubeadm/testdata/v1.14/options.yaml | 50 ----------------- .../testdata/v1.15/containerd-api-port.yaml | 43 --------------- .../v1.15/containerd-pod-network-cidr.yaml | 43 --------------- .../kubeadm/testdata/v1.15/containerd.yaml | 43 --------------- .../testdata/v1.15/crio-options-gates.yaml | 53 ------------------- .../kubeadm/testdata/v1.15/crio.yaml | 43 --------------- .../kubeadm/testdata/v1.15/default.yaml | 43 --------------- .../testdata/v1.15/image-repository.yaml | 44 --------------- .../kubeadm/testdata/v1.15/options.yaml | 50 ----------------- .../testdata/v1.16/containerd-api-port.yaml | 43 --------------- .../v1.16/containerd-pod-network-cidr.yaml | 43 --------------- .../kubeadm/testdata/v1.16/containerd.yaml | 43 --------------- .../testdata/v1.16/crio-options-gates.yaml | 53 ------------------- .../kubeadm/testdata/v1.16/crio.yaml | 43 --------------- .../kubeadm/testdata/v1.16/default.yaml | 43 --------------- .../testdata/v1.16/image-repository.yaml | 44 --------------- .../kubeadm/testdata/v1.16/options.yaml | 50 ----------------- 56 files changed, 2032 deletions(-) delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml delete mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml deleted file mode 100644 index 40c91637f3..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 12345 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /run/containerd/containerd.sock -apiServerExtraArgs: - admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml deleted file mode 100644 index b2d73f912b..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /run/containerd/containerd.sock -apiServerExtraArgs: - admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml deleted file mode 100644 index b2d73f912b..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /run/containerd/containerd.sock -apiServerExtraArgs: - admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml deleted file mode 100644 index e71f7dde0f..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /var/run/crio/crio.sock -apiServerExtraArgs: - admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" - feature-gates: "a=b" -controllerManagerExtraArgs: - feature-gates: "a=b" - kube-api-burst: "32" -schedulerExtraArgs: - feature-gates: "a=b" - scheduler-name: "mini-scheduler" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml deleted file mode 100644 index f68df3416f..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /var/run/crio/crio.sock -apiServerExtraArgs: - admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml deleted file mode 100644 index 9f0ea00701..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -apiServerExtraArgs: - admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml deleted file mode 100644 index cebbc924ed..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -imageRepository: test/repo -apiServerExtraArgs: - admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml deleted file mode 100644 index 97fcc2e56e..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.10.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -apiServerExtraArgs: - admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" -controllerManagerExtraArgs: - kube-api-burst: "32" -schedulerExtraArgs: - scheduler-name: "mini-scheduler" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml deleted file mode 100644 index c7edeea5f2..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 12345 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /run/containerd/containerd.sock -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml deleted file mode 100644 index 320c885927..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /run/containerd/containerd.sock -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml deleted file mode 100644 index 320c885927..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /run/containerd/containerd.sock -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml deleted file mode 100644 index 37e2d4729a..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /var/run/crio/crio.sock -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" - feature-gates: "a=b" -controllerManagerExtraArgs: - feature-gates: "a=b" - kube-api-burst: "32" -schedulerExtraArgs: - feature-gates: "a=b" - scheduler-name: "mini-scheduler" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml deleted file mode 100644 index 2b394b5335..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -criSocket: /var/run/crio/crio.sock -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml deleted file mode 100644 index f831b4e46e..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml deleted file mode 100644 index 72ac00feb7..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -imageRepository: test/repo -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml deleted file mode 100644 index 653a3e4428..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha1 -kind: MasterConfiguration -noTaintMaster: true -api: - advertiseAddress: 1.1.1.1 - bindPort: 8443 - controlPlaneEndpoint: localhost -kubernetesVersion: v1.11.0 -certificatesDir: /var/lib/minikube/certs/ -networking: - serviceSubnet: 10.96.0.0/12 -etcd: - dataDir: /data/minikube -nodeName: mk -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" -controllerManagerExtraArgs: - kube-api-burst: "32" -schedulerExtraArgs: - scheduler-name: "mini-scheduler" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml deleted file mode 100644 index 7d84e36369..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 12345 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:12345 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.12.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml deleted file mode 100644 index 64bf678f02..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.12.0 -networking: - dnsDomain: cluster.local - podSubnet: 192.168.32.0/20 - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml deleted file mode 100644 index 4e4b1e4830..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.12.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml deleted file mode 100644 index 6f933f84cc..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" - feature-gates: "a=b" -controllerManagerExtraArgs: - feature-gates: "a=b" - kube-api-burst: "32" -schedulerExtraArgs: - feature-gates: "a=b" - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.12.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml deleted file mode 100644 index 033a7aefe2..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.12.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml deleted file mode 100644 index d9ba1066a5..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.12.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml deleted file mode 100644 index bf00349785..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -imageRepository: test/repo -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.12.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml deleted file mode 100644 index 3e9052efa8..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml +++ /dev/null @@ -1,44 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" -controllerManagerExtraArgs: - kube-api-burst: "32" -schedulerExtraArgs: - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.12.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml deleted file mode 100644 index e776755631..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 12345 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:12345 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.13.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml deleted file mode 100644 index ecc9a14631..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.13.0 -networking: - dnsDomain: cluster.local - podSubnet: 192.168.32.0/20 - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml deleted file mode 100644 index a852561fbe..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.13.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml deleted file mode 100644 index 9e5812dbda..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml +++ /dev/null @@ -1,47 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" - feature-gates: "a=b" -controllerManagerExtraArgs: - feature-gates: "a=b" - kube-api-burst: "32" -schedulerExtraArgs: - feature-gates: "a=b" - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.13.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml deleted file mode 100644 index 57b9f1b122..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.13.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml deleted file mode 100644 index db611e2263..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml +++ /dev/null @@ -1,39 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.13.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml deleted file mode 100644 index 037dd6add2..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml +++ /dev/null @@ -1,40 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -imageRepository: test/repo -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.13.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml deleted file mode 100644 index f1df66954d..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml +++ /dev/null @@ -1,44 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: InitConfiguration -apiEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1alpha3 -kind: ClusterConfiguration -apiServerExtraArgs: - enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" -controllerManagerExtraArgs: - kube-api-burst: "32" -schedulerExtraArgs: - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.13.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml deleted file mode 100644 index cc96f136ac..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 12345 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:12345 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.14.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml deleted file mode 100644 index 147a6ccbec..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.14.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml deleted file mode 100644 index 147a6ccbec..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.14.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml deleted file mode 100644 index 1b35bce5c6..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml +++ /dev/null @@ -1,53 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" - feature-gates: "a=b" -controllerManager: - extraArgs: - feature-gates: "a=b" - kube-api-burst: "32" -scheduler: - extraArgs: - feature-gates: "a=b" - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.14.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml deleted file mode 100644 index 66dac1c8af..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.14.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml deleted file mode 100644 index d88c0efebf..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.14.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml deleted file mode 100644 index bf53791b71..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml +++ /dev/null @@ -1,44 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -imageRepository: test/repo -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.14.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml deleted file mode 100644 index a85a2447b2..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml +++ /dev/null @@ -1,50 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" -controllerManager: - extraArgs: - kube-api-burst: "32" -scheduler: - extraArgs: - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.14.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml deleted file mode 100644 index 0fbf400ebf..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 12345 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:12345 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.15.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml deleted file mode 100644 index c6354e860b..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.15.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml deleted file mode 100644 index c6354e860b..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.15.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml deleted file mode 100644 index 78bbe09f1c..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml +++ /dev/null @@ -1,53 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" - feature-gates: "a=b" -controllerManager: - extraArgs: - feature-gates: "a=b" - kube-api-burst: "32" -scheduler: - extraArgs: - feature-gates: "a=b" - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.15.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml deleted file mode 100644 index b956109b81..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.15.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml deleted file mode 100644 index 46d6e4e78c..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.15.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml deleted file mode 100644 index 8ab50ff902..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml +++ /dev/null @@ -1,44 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -imageRepository: test/repo -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.15.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml deleted file mode 100644 index 2e6f561dd4..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml +++ /dev/null @@ -1,50 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" -controllerManager: - extraArgs: - kube-api-burst: "32" -scheduler: - extraArgs: - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.15.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml deleted file mode 100644 index 7d0e44e47c..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 12345 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:12345 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.16.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml deleted file mode 100644 index 428bbfc3e3..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.16.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml deleted file mode 100644 index 428bbfc3e3..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /run/containerd/containerd.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.16.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml deleted file mode 100644 index dc661e66ed..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml +++ /dev/null @@ -1,53 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" - feature-gates: "a=b" -controllerManager: - extraArgs: - feature-gates: "a=b" - kube-api-burst: "32" -scheduler: - extraArgs: - feature-gates: "a=b" - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.16.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml deleted file mode 100644 index 6fa2106724..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/crio/crio.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.16.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml deleted file mode 100644 index 74f7c79b92..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml +++ /dev/null @@ -1,43 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.16.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml deleted file mode 100644 index caa1b2b456..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml +++ /dev/null @@ -1,44 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -imageRepository: test/repo -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.16.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml deleted file mode 100644 index 348b4ab8c4..0000000000 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml +++ /dev/null @@ -1,50 +0,0 @@ -apiVersion: kubeadm.k8s.io/v1beta1 -kind: InitConfiguration -localAPIEndpoint: - advertiseAddress: 1.1.1.1 - bindPort: 8443 -bootstrapTokens: - - groups: - - system:bootstrappers:kubeadm:default-node-token - ttl: 24h0m0s - usages: - - signing - - authentication -nodeRegistration: - criSocket: /var/run/dockershim.sock - name: mk - taints: [] ---- -apiVersion: kubeadm.k8s.io/v1beta1 -kind: ClusterConfiguration -apiServer: - extraArgs: - enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" - fail-no-swap: "true" -controllerManager: - extraArgs: - kube-api-burst: "32" -scheduler: - extraArgs: - scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ -clusterName: kubernetes -controlPlaneEndpoint: localhost:8443 -dns: - type: CoreDNS -etcd: - local: - dataDir: /data/minikube -kubernetesVersion: v1.16.0 -networking: - dnsDomain: cluster.local - podSubnet: "" - serviceSubnet: 10.96.0.0/12 ---- -apiVersion: kubelet.config.k8s.io/v1beta1 -kind: KubeletConfiguration -imageGCHighThresholdPercent: 100 -evictionHard: - nodefs.available: "0%" - nodefs.inodesFree: "0%" - imagefs.available: "0%" From fc7c9046424971b5782b5c3c0a45602a624fe2e7 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 16:02:03 -0700 Subject: [PATCH 27/40] add back test data from master --- .../testdata/v1.10/containerd-api-port.yaml | 17 ++++++ .../v1.10/containerd-pod-network-cidr.yaml | 17 ++++++ .../kubeadm/testdata/v1.10/containerd.yaml | 17 ++++++ .../testdata/v1.10/crio-options-gates.yaml | 25 +++++++++ .../kubeadm/testdata/v1.10/crio.yaml | 17 ++++++ .../kubeadm/testdata/v1.10/default.yaml | 16 ++++++ .../testdata/v1.10/image-repository.yaml | 17 ++++++ .../kubeadm/testdata/v1.10/options.yaml | 21 ++++++++ .../testdata/v1.11/containerd-api-port.yaml | 17 ++++++ .../v1.11/containerd-pod-network-cidr.yaml | 17 ++++++ .../kubeadm/testdata/v1.11/containerd.yaml | 17 ++++++ .../testdata/v1.11/crio-options-gates.yaml | 25 +++++++++ .../kubeadm/testdata/v1.11/crio.yaml | 17 ++++++ .../kubeadm/testdata/v1.11/default.yaml | 16 ++++++ .../testdata/v1.11/image-repository.yaml | 17 ++++++ .../kubeadm/testdata/v1.11/options.yaml | 21 ++++++++ .../testdata/v1.12/containerd-api-port.yaml | 39 ++++++++++++++ .../v1.12/containerd-pod-network-cidr.yaml | 39 ++++++++++++++ .../kubeadm/testdata/v1.12/containerd.yaml | 39 ++++++++++++++ .../testdata/v1.12/crio-options-gates.yaml | 47 ++++++++++++++++ .../kubeadm/testdata/v1.12/crio.yaml | 39 ++++++++++++++ .../kubeadm/testdata/v1.12/default.yaml | 39 ++++++++++++++ .../testdata/v1.12/image-repository.yaml | 40 ++++++++++++++ .../kubeadm/testdata/v1.12/options.yaml | 44 +++++++++++++++ .../testdata/v1.13/containerd-api-port.yaml | 39 ++++++++++++++ .../v1.13/containerd-pod-network-cidr.yaml | 39 ++++++++++++++ .../kubeadm/testdata/v1.13/containerd.yaml | 39 ++++++++++++++ .../testdata/v1.13/crio-options-gates.yaml | 47 ++++++++++++++++ .../kubeadm/testdata/v1.13/crio.yaml | 39 ++++++++++++++ .../kubeadm/testdata/v1.13/default.yaml | 39 ++++++++++++++ .../testdata/v1.13/image-repository.yaml | 40 ++++++++++++++ .../kubeadm/testdata/v1.13/options.yaml | 44 +++++++++++++++ .../testdata/v1.14/containerd-api-port.yaml | 43 +++++++++++++++ .../v1.14/containerd-pod-network-cidr.yaml | 43 +++++++++++++++ .../kubeadm/testdata/v1.14/containerd.yaml | 43 +++++++++++++++ .../testdata/v1.14/crio-options-gates.yaml | 53 +++++++++++++++++++ .../kubeadm/testdata/v1.14/crio.yaml | 43 +++++++++++++++ .../kubeadm/testdata/v1.14/default.yaml | 43 +++++++++++++++ .../testdata/v1.14/image-repository.yaml | 44 +++++++++++++++ .../kubeadm/testdata/v1.14/options.yaml | 50 +++++++++++++++++ .../testdata/v1.15/containerd-api-port.yaml | 43 +++++++++++++++ .../v1.15/containerd-pod-network-cidr.yaml | 43 +++++++++++++++ .../kubeadm/testdata/v1.15/containerd.yaml | 43 +++++++++++++++ .../testdata/v1.15/crio-options-gates.yaml | 53 +++++++++++++++++++ .../kubeadm/testdata/v1.15/crio.yaml | 43 +++++++++++++++ .../kubeadm/testdata/v1.15/default.yaml | 43 +++++++++++++++ .../testdata/v1.15/image-repository.yaml | 44 +++++++++++++++ .../kubeadm/testdata/v1.15/options.yaml | 50 +++++++++++++++++ .../testdata/v1.16/containerd-api-port.yaml | 43 +++++++++++++++ .../v1.16/containerd-pod-network-cidr.yaml | 43 +++++++++++++++ .../kubeadm/testdata/v1.16/containerd.yaml | 43 +++++++++++++++ .../testdata/v1.16/crio-options-gates.yaml | 53 +++++++++++++++++++ .../kubeadm/testdata/v1.16/crio.yaml | 43 +++++++++++++++ .../kubeadm/testdata/v1.16/default.yaml | 43 +++++++++++++++ .../testdata/v1.16/image-repository.yaml | 44 +++++++++++++++ .../kubeadm/testdata/v1.16/options.yaml | 50 +++++++++++++++++ 56 files changed, 2032 insertions(+) create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml create mode 100644 pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml new file mode 100644 index 0000000000..40c91637f3 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-api-port.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 12345 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.10.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /run/containerd/containerd.sock +apiServerExtraArgs: + admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml new file mode 100644 index 0000000000..b2d73f912b --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd-pod-network-cidr.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.10.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /run/containerd/containerd.sock +apiServerExtraArgs: + admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml new file mode 100644 index 0000000000..b2d73f912b --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/containerd.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.10.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /run/containerd/containerd.sock +apiServerExtraArgs: + admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml new file mode 100644 index 0000000000..e71f7dde0f --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio-options-gates.yaml @@ -0,0 +1,25 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.10.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /var/run/crio/crio.sock +apiServerExtraArgs: + admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" + feature-gates: "a=b" +controllerManagerExtraArgs: + feature-gates: "a=b" + kube-api-burst: "32" +schedulerExtraArgs: + feature-gates: "a=b" + scheduler-name: "mini-scheduler" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml new file mode 100644 index 0000000000..f68df3416f --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/crio.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.10.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /var/run/crio/crio.sock +apiServerExtraArgs: + admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml new file mode 100644 index 0000000000..9f0ea00701 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/default.yaml @@ -0,0 +1,16 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.10.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +apiServerExtraArgs: + admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml new file mode 100644 index 0000000000..cebbc924ed --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/image-repository.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.10.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +imageRepository: test/repo +apiServerExtraArgs: + admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml new file mode 100644 index 0000000000..97fcc2e56e --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.10/options.yaml @@ -0,0 +1,21 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.10.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +apiServerExtraArgs: + admission-control: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" +controllerManagerExtraArgs: + kube-api-burst: "32" +schedulerExtraArgs: + scheduler-name: "mini-scheduler" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml new file mode 100644 index 0000000000..c7edeea5f2 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-api-port.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 12345 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.11.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /run/containerd/containerd.sock +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml new file mode 100644 index 0000000000..320c885927 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd-pod-network-cidr.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.11.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /run/containerd/containerd.sock +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml new file mode 100644 index 0000000000..320c885927 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/containerd.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.11.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /run/containerd/containerd.sock +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml new file mode 100644 index 0000000000..37e2d4729a --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio-options-gates.yaml @@ -0,0 +1,25 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.11.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /var/run/crio/crio.sock +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" + feature-gates: "a=b" +controllerManagerExtraArgs: + feature-gates: "a=b" + kube-api-burst: "32" +schedulerExtraArgs: + feature-gates: "a=b" + scheduler-name: "mini-scheduler" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml new file mode 100644 index 0000000000..2b394b5335 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/crio.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.11.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +criSocket: /var/run/crio/crio.sock +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml new file mode 100644 index 0000000000..f831b4e46e --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/default.yaml @@ -0,0 +1,16 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.11.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml new file mode 100644 index 0000000000..72ac00feb7 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/image-repository.yaml @@ -0,0 +1,17 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.11.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +imageRepository: test/repo +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml new file mode 100644 index 0000000000..653a3e4428 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.11/options.yaml @@ -0,0 +1,21 @@ +apiVersion: kubeadm.k8s.io/v1alpha1 +kind: MasterConfiguration +noTaintMaster: true +api: + advertiseAddress: 1.1.1.1 + bindPort: 8443 + controlPlaneEndpoint: localhost +kubernetesVersion: v1.11.0 +certificatesDir: /var/lib/minikube/certs/ +networking: + serviceSubnet: 10.96.0.0/12 +etcd: + dataDir: /data/minikube +nodeName: mk +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" +controllerManagerExtraArgs: + kube-api-burst: "32" +schedulerExtraArgs: + scheduler-name: "mini-scheduler" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml new file mode 100644 index 0000000000..7d84e36369 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-api-port.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 12345 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:12345 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.12.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml new file mode 100644 index 0000000000..64bf678f02 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd-pod-network-cidr.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.12.0 +networking: + dnsDomain: cluster.local + podSubnet: 192.168.32.0/20 + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml new file mode 100644 index 0000000000..4e4b1e4830 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/containerd.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.12.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml new file mode 100644 index 0000000000..6f933f84cc --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio-options-gates.yaml @@ -0,0 +1,47 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" + feature-gates: "a=b" +controllerManagerExtraArgs: + feature-gates: "a=b" + kube-api-burst: "32" +schedulerExtraArgs: + feature-gates: "a=b" + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.12.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml new file mode 100644 index 0000000000..033a7aefe2 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/crio.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.12.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml new file mode 100644 index 0000000000..d9ba1066a5 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/default.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.12.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml new file mode 100644 index 0000000000..bf00349785 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/image-repository.yaml @@ -0,0 +1,40 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +imageRepository: test/repo +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.12.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml new file mode 100644 index 0000000000..3e9052efa8 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.12/options.yaml @@ -0,0 +1,44 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" +controllerManagerExtraArgs: + kube-api-burst: "32" +schedulerExtraArgs: + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.12.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml new file mode 100644 index 0000000000..e776755631 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-api-port.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 12345 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:12345 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.13.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml new file mode 100644 index 0000000000..ecc9a14631 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd-pod-network-cidr.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.13.0 +networking: + dnsDomain: cluster.local + podSubnet: 192.168.32.0/20 + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml new file mode 100644 index 0000000000..a852561fbe --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/containerd.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.13.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml new file mode 100644 index 0000000000..9e5812dbda --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio-options-gates.yaml @@ -0,0 +1,47 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" + feature-gates: "a=b" +controllerManagerExtraArgs: + feature-gates: "a=b" + kube-api-burst: "32" +schedulerExtraArgs: + feature-gates: "a=b" + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.13.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml new file mode 100644 index 0000000000..57b9f1b122 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/crio.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.13.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml new file mode 100644 index 0000000000..db611e2263 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/default.yaml @@ -0,0 +1,39 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.13.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml new file mode 100644 index 0000000000..037dd6add2 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/image-repository.yaml @@ -0,0 +1,40 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +imageRepository: test/repo +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.13.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml new file mode 100644 index 0000000000..f1df66954d --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.13/options.yaml @@ -0,0 +1,44 @@ +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: InitConfiguration +apiEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1alpha3 +kind: ClusterConfiguration +apiServerExtraArgs: + enable-admission-plugins: "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" +controllerManagerExtraArgs: + kube-api-burst: "32" +schedulerExtraArgs: + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.13.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml new file mode 100644 index 0000000000..cc96f136ac --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-api-port.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 12345 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:12345 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.14.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml new file mode 100644 index 0000000000..147a6ccbec --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd-pod-network-cidr.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.14.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml new file mode 100644 index 0000000000..147a6ccbec --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/containerd.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.14.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml new file mode 100644 index 0000000000..1b35bce5c6 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio-options-gates.yaml @@ -0,0 +1,53 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" + feature-gates: "a=b" +controllerManager: + extraArgs: + feature-gates: "a=b" + kube-api-burst: "32" +scheduler: + extraArgs: + feature-gates: "a=b" + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.14.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml new file mode 100644 index 0000000000..66dac1c8af --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/crio.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.14.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml new file mode 100644 index 0000000000..d88c0efebf --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/default.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.14.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml new file mode 100644 index 0000000000..bf53791b71 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/image-repository.yaml @@ -0,0 +1,44 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +imageRepository: test/repo +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.14.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml new file mode 100644 index 0000000000..a85a2447b2 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.14/options.yaml @@ -0,0 +1,50 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" +controllerManager: + extraArgs: + kube-api-burst: "32" +scheduler: + extraArgs: + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.14.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml new file mode 100644 index 0000000000..0fbf400ebf --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-api-port.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 12345 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:12345 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.15.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml new file mode 100644 index 0000000000..c6354e860b --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd-pod-network-cidr.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.15.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml new file mode 100644 index 0000000000..c6354e860b --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/containerd.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.15.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml new file mode 100644 index 0000000000..78bbe09f1c --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio-options-gates.yaml @@ -0,0 +1,53 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" + feature-gates: "a=b" +controllerManager: + extraArgs: + feature-gates: "a=b" + kube-api-burst: "32" +scheduler: + extraArgs: + feature-gates: "a=b" + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.15.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml new file mode 100644 index 0000000000..b956109b81 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/crio.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.15.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml new file mode 100644 index 0000000000..46d6e4e78c --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/default.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.15.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml new file mode 100644 index 0000000000..8ab50ff902 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/image-repository.yaml @@ -0,0 +1,44 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +imageRepository: test/repo +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.15.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml new file mode 100644 index 0000000000..2e6f561dd4 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.15/options.yaml @@ -0,0 +1,50 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" +controllerManager: + extraArgs: + kube-api-burst: "32" +scheduler: + extraArgs: + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.15.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml new file mode 100644 index 0000000000..7d0e44e47c --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 12345 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:12345 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.16.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml new file mode 100644 index 0000000000..428bbfc3e3 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.16.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml new file mode 100644 index 0000000000..428bbfc3e3 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /run/containerd/containerd.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.16.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml new file mode 100644 index 0000000000..dc661e66ed --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml @@ -0,0 +1,53 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" + feature-gates: "a=b" +controllerManager: + extraArgs: + feature-gates: "a=b" + kube-api-burst: "32" +scheduler: + extraArgs: + feature-gates: "a=b" + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.16.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml new file mode 100644 index 0000000000..6fa2106724 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/crio/crio.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.16.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml new file mode 100644 index 0000000000..74f7c79b92 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml @@ -0,0 +1,43 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.16.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml new file mode 100644 index 0000000000..caa1b2b456 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml @@ -0,0 +1,44 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +imageRepository: test/repo +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.16.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml new file mode 100644 index 0000000000..348b4ab8c4 --- /dev/null +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml @@ -0,0 +1,50 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +localAPIEndpoint: + advertiseAddress: 1.1.1.1 + bindPort: 8443 +bootstrapTokens: + - groups: + - system:bootstrappers:kubeadm:default-node-token + ttl: 24h0m0s + usages: + - signing + - authentication +nodeRegistration: + criSocket: /var/run/dockershim.sock + name: mk + taints: [] +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +apiServer: + extraArgs: + enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" + fail-no-swap: "true" +controllerManager: + extraArgs: + kube-api-burst: "32" +scheduler: + extraArgs: + scheduler-name: "mini-scheduler" +certificatesDir: /var/lib/minikube/certs/ +clusterName: kubernetes +controlPlaneEndpoint: localhost:8443 +dns: + type: CoreDNS +etcd: + local: + dataDir: /data/minikube +kubernetesVersion: v1.16.0 +networking: + dnsDomain: cluster.local + podSubnet: "" + serviceSubnet: 10.96.0.0/12 +--- +apiVersion: kubelet.config.k8s.io/v1beta1 +kind: KubeletConfiguration +imageGCHighThresholdPercent: 100 +evictionHard: + nodefs.available: "0%" + nodefs.inodesFree: "0%" + imagefs.available: "0%" From 5d325c745ca25e936ab8d26b424bad7520c3a1c2 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Wed, 21 Aug 2019 17:20:47 -0700 Subject: [PATCH 28/40] Create symlink for legacy etcd directory, make apiserver check more robust --- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 55 ++++++++++++++++---- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index 1c8e60c12b..a089e7c3fb 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -198,6 +198,28 @@ func createFlagsFromExtraArgs(extraOptions config.ExtraOptionSlice) string { return convertToFlags(kubeadmExtraOpts) } +// etcdDataDir is where etcd data is stored. +func etcdDataDir() string { + return filepath.Join(constants.GuestPersistentDir, "etcd") +} + +// createCompatSymlinks creates compatibility symlinks to transition running services to new directory structures +func (k *Bootstrapper) createCompatSymlinks() error { + legacyEtcd := "/data/minikube" + if err := k.c.Run(fmt.Sprintf("sudo test -d %s", legacyEtcd)); err != nil { + glog.Infof("%s check failed, skipping compat symlinks: %v", legacyEtcd, err) + return nil + } + + glog.Infof("Found %s, creating compatibility symlinks ...", legacyEtcd) + cmd := fmt.Sprintf("sudo ln -s %s %s", legacyEtcd, etcdDataDir()) + out, err := k.c.CombinedOutput(cmd) + if err != nil { + return errors.Wrapf(err, "cmd failed: %s\n%s\n", cmd, out) + } + return nil +} + // StartCluster starts the cluster func (k *Bootstrapper) StartCluster(k8s config.KubernetesConfig) error { version, err := parseKubernetesVersion(k8s.KubernetesVersion) @@ -206,7 +228,6 @@ func (k *Bootstrapper) StartCluster(k8s config.KubernetesConfig) error { } extraFlags := createFlagsFromExtraArgs(k8s.ExtraOptions) - r, err := cruntime.New(cruntime.Config{Type: k8s.ContainerRuntime}) if err != nil { return err @@ -343,6 +364,12 @@ func (k *Bootstrapper) WaitCluster(k8s config.KubernetesConfig, timeout time.Dur // RestartCluster restarts the Kubernetes cluster configured by kubeadm func (k *Bootstrapper) RestartCluster(k8s config.KubernetesConfig) error { + glog.Infof("RestartCluster start") + start := time.Now() + defer func() { + glog.Infof("RestartCluster took %s", time.Since(start)) + }() + version, err := parseKubernetesVersion(k8s.KubernetesVersion) if err != nil { return errors.Wrap(err, "parsing kubernetes version") @@ -355,6 +382,10 @@ func (k *Bootstrapper) RestartCluster(k8s config.KubernetesConfig) error { controlPlane = "control-plane" } + if err := k.createCompatSymlinks(); err != nil { + glog.Errorf("failed to create compat symlinks: %v", err) + } + baseCmd := fmt.Sprintf("%s %s", invokeKubeadm(k8s.KubernetesVersion), phase) cmds := []string{ fmt.Sprintf("%s phase certs all --config %s", baseCmd, yamlConfigPath), @@ -386,12 +417,19 @@ func (k *Bootstrapper) RestartCluster(k8s config.KubernetesConfig) error { // waitForAPIServer waits for the apiserver to start up func (k *Bootstrapper) waitForAPIServer(k8s config.KubernetesConfig) error { + start := time.Now() + defer func() { + glog.Infof("duration metric: took %s to wait for apiserver status ...", time.Since(start)) + }() + glog.Infof("Waiting for apiserver process ...") // To give a better error message, first check for process existence via ssh - err := wait.PollImmediate(time.Millisecond*300, time.Minute*2, func() (bool, error) { - ierr := k.c.Run(`pgrep apiserver`) + // Needs minutes in case the image isn't cached (such as with v1.10.x) + err := wait.PollImmediate(time.Millisecond*300, time.Minute*3, func() (bool, error) { + ierr := k.c.Run(`sudo pgrep kube-apiserver`) if ierr != nil { - return false, ierr + glog.Warningf("pgrep apiserver: %v", ierr) + return false, nil } return true, nil }) @@ -399,13 +437,13 @@ func (k *Bootstrapper) waitForAPIServer(k8s config.KubernetesConfig) error { return fmt.Errorf("apiserver process never appeared") } - start := time.Now() - glog.Infof("Waiting for apiserver ...") + glog.Infof("Waiting for apiserver to port healthy status ...") f := func() (bool, error) { status, err := k.GetAPIServerStatus(net.ParseIP(k8s.NodeIP), k8s.NodePort) glog.Infof("apiserver status: %s, err: %v", status, err) if err != nil { - return false, err + glog.Warningf("status: %v", err) + return false, nil } if status != "Running" { return false, nil @@ -413,7 +451,6 @@ func (k *Bootstrapper) waitForAPIServer(k8s config.KubernetesConfig) error { return true, nil } err = wait.PollImmediate(kconst.APICallRetryInterval, kconst.DefaultControlPlaneTimeout, f) - glog.Infof("duration metric: took %s to wait for apiserver status ...", time.Since(start)) return err } @@ -619,7 +656,7 @@ func generateConfig(k8s config.KubernetesConfig, r cruntime.Manager) ([]byte, er AdvertiseAddress: k8s.NodeIP, APIServerPort: nodePort, KubernetesVersion: k8s.KubernetesVersion, - EtcdDataDir: filepath.Join(constants.GuestPersistentDir, "etcd"), + EtcdDataDir: etcdDataDir(), NodeName: k8s.NodeName, CRISocket: r.SocketPath(), ImageRepository: k8s.ImageRepository, From 45c3219470299d0a77f56c0d31f169015df89814 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Wed, 21 Aug 2019 17:24:41 -0700 Subject: [PATCH 29/40] none reliability: --force does not work in v1.10, allow failed kubelet --- pkg/drivers/none/none.go | 4 ++-- pkg/minikube/bootstrapper/kubeadm/kubeadm.go | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/drivers/none/none.go b/pkg/drivers/none/none.go index 18e48fcbbf..5731d22841 100644 --- a/pkg/drivers/none/none.go +++ b/pkg/drivers/none/none.go @@ -233,8 +233,8 @@ func stopKubelet(exec command.Runner) error { if errStatus != nil { glog.Errorf("temporary error: for %q : %v", cmdCheck, errStatus) } - if !strings.Contains(out.String(), "dead") { - return fmt.Errorf("expected to kubelet to be dead but it got : %q", out) + if !strings.Contains(out.String(), "dead") && !strings.Contains(out.String(), "failed") { + return fmt.Errorf("unexpected kubelet state: %q", out) } return nil } diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index a089e7c3fb..e061151022 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -456,7 +456,15 @@ func (k *Bootstrapper) waitForAPIServer(k8s config.KubernetesConfig) error { // DeleteCluster removes the components that were started earlier func (k *Bootstrapper) DeleteCluster(k8s config.KubernetesConfig) error { + version, err := parseKubernetesVersion(k8s.KubernetesVersion) + if err != nil { + return errors.Wrap(err, "parsing kubernetes version") + } + cmd := fmt.Sprintf("%s reset --force", invokeKubeadm(k8s.KubernetesVersion)) + if version.LT(semver.MustParse("1.11.0")) { + cmd = fmt.Sprintf("%s reset", invokeKubeadm(k8s.KubernetesVersion)) + } out, err := k.c.CombinedOutput(cmd) if err != nil { return errors.Wrapf(err, "kubeadm reset: %s\n%s\n", cmd, out) From 4e9d4bd00f7044573d8d36c60c46f4269ff3a806 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Wed, 21 Aug 2019 17:41:58 -0700 Subject: [PATCH 30/40] Remove unused constant function brought in by a bad merge --- pkg/minikube/constants/constants.go | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 118a1eb1f5..82ae03a61f 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -186,30 +186,9 @@ var NewestKubernetesVersion = "v1.15.2" // OldestKubernetesVersion is the oldest Kubernetes version to test against var OldestKubernetesVersion = "v1.10.13" -// ConfigFilePath is the path of the config directory -var ConfigFilePath = MakeMiniPath("config") - // ConfigFile is the path of the config file var ConfigFile = MakeMiniPath("config", "config.json") -// GetProfileFile returns the Minikube profile config file -func GetProfileFile(profile string, miniHome ...string) string { - miniPath := GetMinipath() - if len(miniHome) > 0 { - miniPath = miniHome[0] - } - return filepath.Join(miniPath, "profiles", profile, "config.json") -} - -// GetProfilePath returns the Minikube profile path of config file -func GetProfilePath(profile string, miniHome ...string) string { - miniPath := GetMinipath() - if len(miniHome) > 0 { - miniPath = miniHome[0] - } - return filepath.Join(miniPath, "profiles", profile) -} - const ( // KubeletServiceFile is the path to the kubelet systemd service KubeletServiceFile = "/lib/systemd/system/kubelet.service" From 6abf0ed2d57a257cb63103ac416d04d1ca6962f3 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 17:58:25 -0700 Subject: [PATCH 31/40] fix not to fail logic --- test/integration/util/minikube_runner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/util/minikube_runner.go b/test/integration/util/minikube_runner.go index 7e03387159..0513e28e0c 100644 --- a/test/integration/util/minikube_runner.go +++ b/test/integration/util/minikube_runner.go @@ -126,7 +126,7 @@ func (m *MinikubeRunner) RunCommand(cmdStr string, failError bool, waitForRun .. if failError { m.T.Fatalf(errMsg) } else { - m.T.Errorf(errMsg) + m.T.Logf(errMsg) } } return stdout, stderr, err From 7c9c4ac0f950def8ee4d4a04a369661b081478c5 Mon Sep 17 00:00:00 2001 From: Medya Gh <medya@google.com> Date: Wed, 21 Aug 2019 18:00:30 -0700 Subject: [PATCH 32/40] add quote for log --- test/integration/config_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/integration/config_test.go b/test/integration/config_test.go index 2eafa40877..0b2cff3117 100644 --- a/test/integration/config_test.go +++ b/test/integration/config_test.go @@ -70,10 +70,10 @@ func TestConfig(t *testing.T) { t.Logf("error running config test command (might be okay): %v ", err) } if !compare(tc.stdout, stdout) { - t.Fatalf("Expected stdout to be: %s. Stdout was: %s Stderr: %s", tc.stdout, stdout, stderr) + t.Fatalf("Expected stdout to be: %q. Stdout was: %q Stderr: %q", tc.stdout, stdout, stderr) } if !compare(tc.stderr, stderr) { - t.Fatalf("Expected stderr to be: %s. Stdout was: %s Stderr: %s", tc.stderr, stdout, stderr) + t.Fatalf("Expected stderr to be: %q. Stdout was: %s Stderr: %q", tc.stderr, stdout, stderr) } } } From a7af253eaae8c484fd8a5a8f13db88d56e53eb8c Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Wed, 21 Aug 2019 18:49:25 -0700 Subject: [PATCH 33/40] Merge in v1.16 test updates --- pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go | 2 +- .../kubeadm/testdata/v1.16/containerd-api-port.yaml | 4 ++-- .../kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml | 4 ++-- .../bootstrapper/kubeadm/testdata/v1.16/containerd.yaml | 4 ++-- .../kubeadm/testdata/v1.16/crio-options-gates.yaml | 4 ++-- pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml | 4 ++-- pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml | 4 ++-- .../bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml | 4 ++-- pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml | 4 ++-- 9 files changed, 17 insertions(+), 17 deletions(-) diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go index 2ae3fe2e4a..d22f89cdb0 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm_test.go @@ -66,7 +66,7 @@ Wants=crio.service [Service] ExecStart= -ExecStart=/var/lib/minikube/binaries/v1.15.2/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=remote --container-runtime-endpoint=/var/run/crio/crio.sock --fail-swap-on=false --hostname-override=minikube --image-service-endpoint=/var/run/crio/crio.sock --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --runtime-request-timeout=15m +ExecStart=/var/lib/minikube/binaries/v1.16.0-beta.1/kubelet --authorization-mode=Webhook --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --cgroup-driver=cgroupfs --client-ca-file=/var/lib/minikube/certs/ca.crt --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --container-runtime=remote --container-runtime-endpoint=/var/run/crio/crio.sock --fail-swap-on=false --hostname-override=minikube --image-service-endpoint=/var/run/crio/crio.sock --kubeconfig=/etc/kubernetes/kubelet.conf --pod-manifest-path=/etc/kubernetes/manifests --runtime-request-timeout=15m [Install] `, diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml index 7d0e44e47c..d7e9c9e975 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-api-port.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:12345 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.16.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml index 428bbfc3e3..d4de91b7eb 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd-pod-network-cidr.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.16.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml index 428bbfc3e3..d4de91b7eb 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/containerd.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.16.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml index dc661e66ed..5aa8ca8652 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio-options-gates.yaml @@ -30,14 +30,14 @@ scheduler: extraArgs: feature-gates: "a=b" scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.16.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml index 6fa2106724..57ac32b75e 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/crio.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.16.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml index 74f7c79b92..4e1949e0f2 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/default.yaml @@ -20,14 +20,14 @@ kind: ClusterConfiguration apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.16.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml index caa1b2b456..f1b08545b9 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/image-repository.yaml @@ -21,14 +21,14 @@ imageRepository: test/repo apiServer: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.16.0 networking: dnsDomain: cluster.local diff --git a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml index 348b4ab8c4..6c02b9c29e 100644 --- a/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml +++ b/pkg/minikube/bootstrapper/kubeadm/testdata/v1.16/options.yaml @@ -27,14 +27,14 @@ controllerManager: scheduler: extraArgs: scheduler-name: "mini-scheduler" -certificatesDir: /var/lib/minikube/certs/ +certificatesDir: /var/lib/minikube/certs clusterName: kubernetes controlPlaneEndpoint: localhost:8443 dns: type: CoreDNS etcd: local: - dataDir: /data/minikube + dataDir: /var/lib/minikube/etcd kubernetesVersion: v1.16.0 networking: dnsDomain: cluster.local From 206522dee831fb391935f83fd69d897dd4ec9b5c Mon Sep 17 00:00:00 2001 From: Guangming Wang <guangming.wang@daocloud.io> Date: Thu, 22 Aug 2019 22:54:23 +0800 Subject: [PATCH 34/40] Cleanup: fix some typos in code comment Signed-off-by: Guangming Wang <guangming.wang@daocloud.io> --- pkg/minikube/command/ssh_runner.go | 2 +- pkg/minikube/extract/extract.go | 2 +- pkg/minikube/storageclass/storageclass.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/minikube/command/ssh_runner.go b/pkg/minikube/command/ssh_runner.go index ad94c2036f..77f580418e 100644 --- a/pkg/minikube/command/ssh_runner.go +++ b/pkg/minikube/command/ssh_runner.go @@ -164,7 +164,7 @@ func (s *SSHRunner) Copy(f assets.CopyableFile) error { return errors.Wrap(err, "StdinPipe") } // The scpcmd below *should not* return until all data is copied and the - // StdinPipe is closed. But let's use errgroup to make it expicit. + // StdinPipe is closed. But let's use errgroup to make it explicit. var g errgroup.Group var copied int64 dst := filepath.Join(path.Join(f.GetTargetDir(), f.GetTargetName())) diff --git a/pkg/minikube/extract/extract.go b/pkg/minikube/extract/extract.go index b7b65df0b7..b0dd931e25 100644 --- a/pkg/minikube/extract/extract.go +++ b/pkg/minikube/extract/extract.go @@ -281,7 +281,7 @@ func checkArguments(s *ast.CallExpr, e *state) { } -// checkIdentForStringValye takes a identifier and sees if it's a variable assigned to a string +// checkIdentForStringValue takes a identifier and sees if it's a variable assigned to a string func checkIdentForStringValue(i *ast.Ident) string { // This identifier is nil if i.Obj == nil { diff --git a/pkg/minikube/storageclass/storageclass.go b/pkg/minikube/storageclass/storageclass.go index bba117467d..32f52d875b 100644 --- a/pkg/minikube/storageclass/storageclass.go +++ b/pkg/minikube/storageclass/storageclass.go @@ -63,7 +63,7 @@ func DisableDefaultStorageClass(class string) error { return nil } -// SetDefaultStorageClass makes sure onlt the class with @name is marked as +// SetDefaultStorageClass makes sure only the class with @name is marked as // default. func SetDefaultStorageClass(name string) error { loadingRules := clientcmd.NewDefaultClientConfigLoadingRules() From b22f59f320b1a9ec2c1d57f2ded3c88249f20dea Mon Sep 17 00:00:00 2001 From: AllenZMC <zhongming.chang@daocloud.io> Date: Thu, 22 Aug 2019 22:54:58 +0800 Subject: [PATCH 35/40] fix mis-spelling in ssh_runner.go (#5171) --- pkg/minikube/command/ssh_runner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/command/ssh_runner.go b/pkg/minikube/command/ssh_runner.go index ad94c2036f..77f580418e 100644 --- a/pkg/minikube/command/ssh_runner.go +++ b/pkg/minikube/command/ssh_runner.go @@ -164,7 +164,7 @@ func (s *SSHRunner) Copy(f assets.CopyableFile) error { return errors.Wrap(err, "StdinPipe") } // The scpcmd below *should not* return until all data is copied and the - // StdinPipe is closed. But let's use errgroup to make it expicit. + // StdinPipe is closed. But let's use errgroup to make it explicit. var g errgroup.Group var copied int64 dst := filepath.Join(path.Join(f.GetTargetDir(), f.GetTargetName())) From 777bee6a93da28f8ac9f05390f6ba075195a8d4f Mon Sep 17 00:00:00 2001 From: Vydruth <Vydruth@users.noreply.github.com> Date: Thu, 22 Aug 2019 10:08:27 -0700 Subject: [PATCH 36/40] Fixed grammer. --- site/content/en/docs/Tutorials/continuous_integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/content/en/docs/Tutorials/continuous_integration.md b/site/content/en/docs/Tutorials/continuous_integration.md index eaf357a964..53ce4e46de 100644 --- a/site/content/en/docs/Tutorials/continuous_integration.md +++ b/site/content/en/docs/Tutorials/continuous_integration.md @@ -9,7 +9,7 @@ description: > ## Overview -Most continuous integration environments are already running inside a VM, and may not supported nested virtualization. The `none` driver was designed for this use case. +Most continuous integration environments are already running inside a VM, and may not support nested virtualization. The `none` driver was designed for this use case. ## Prerequisites From 111873e0b8b321f9eaa1303c3fdfa5f17daae49d Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Thu, 22 Aug 2019 11:41:06 -0700 Subject: [PATCH 37/40] GetKubeadmCachedBinaries() is now constants.KubeadmBinaries --- test/integration/a_download_only_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/a_download_only_test.go b/test/integration/a_download_only_test.go index 4f72c557d3..d972f9352f 100644 --- a/test/integration/a_download_only_test.go +++ b/test/integration/a_download_only_test.go @@ -65,7 +65,7 @@ func TestDownloadOnly(t *testing.T) { } // checking binaries downloaded (kubelet,kubeadm) - for _, bin := range constants.GetKubeadmCachedBinaries() { + for _, bin := range constants.KubeadmBinaries { fp := filepath.Join(minHome, "cache", v, bin) _, err := os.Stat(fp) if err != nil { From 48d2ace5ccb2ecbd91362d0807ef974532cfff6d Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Thu, 22 Aug 2019 11:41:41 -0700 Subject: [PATCH 38/40] Remove broken default disk size test that didn't make sense --- pkg/drivers/hyperkit/driver_test.go | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/pkg/drivers/hyperkit/driver_test.go b/pkg/drivers/hyperkit/driver_test.go index 63008ac396..22d4ddbd39 100644 --- a/pkg/drivers/hyperkit/driver_test.go +++ b/pkg/drivers/hyperkit/driver_test.go @@ -20,10 +20,6 @@ package hyperkit import ( "testing" - - "k8s.io/minikube/pkg/minikube/constants" - - commonutil "k8s.io/minikube/pkg/util" ) func Test_portExtraction(t *testing.T) { @@ -66,15 +62,6 @@ func Test_portExtraction(t *testing.T) { } } -func Test_defaultDiskSize(t *testing.T) { - expectedDefaultDiscSize := commonutil.CalculateSizeInMB(constants.DefaultDiskSize) - driver := NewDriver("", "") - got := driver.DiskSize - if got != expectedDefaultDiscSize { - t.Errorf("Unexpected default disk size got: %v, want: %v", got, expectedDefaultDiscSize) - } -} - func testEq(a, b []int) bool { if a == nil && b == nil { From a43e311783eb6c6b0263829b4c946fa43f423337 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Thu, 22 Aug 2019 12:04:19 -0700 Subject: [PATCH 39/40] Exit startup if uid=0, add --force flag to override --- cmd/minikube/cmd/start.go | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index c429d1f301..f6af4b8684 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -102,6 +102,7 @@ const ( dnsProxy = "dns-proxy" hostDNSResolver = "host-dns-resolver" waitUntilHealthy = "wait" + force = "force" waitTimeout = "wait-timeout" ) @@ -134,6 +135,8 @@ func initMinikubeFlags() { viper.SetEnvKeyReplacer(strings.NewReplacer("-", "_")) viper.AutomaticEnv() + startCmd.Flags().Bool(force, false, "Force minikube to perform possibly dangerous operations") + startCmd.Flags().Int(cpus, constants.DefaultCPUS, "Number of CPUs allocated to the minikube VM.") startCmd.Flags().String(memory, constants.DefaultMemorySize, "Amount of RAM allocated to the minikube VM (format: <number>[<unit>], where unit = b, k, m or g).") startCmd.Flags().String(humanReadableDiskSize, constants.DefaultDiskSize, "Disk size allocated to the minikube VM (format: <number>[<unit>], where unit = b, k, m or g).") @@ -502,25 +505,33 @@ func selectImageRepository(mirrorCountry string, k8sVersion string) (bool, strin // validerUser validates minikube is run by the recommended user (privileged or regular) func validateUser() { u, err := user.Current() - d := viper.GetString(vmDriver) - // Check if minikube needs to run with sudo or not. - if err == nil { - if d == constants.DriverNone && u.Name != "root" { - exit.UsageT(`Please run with sudo. the vm-driver "{{.driver_name}}" requires sudo.`, out.V{"driver_name": constants.DriverNone}) - } else if u.Name == "root" && !(d == constants.DriverHyperv || d == constants.DriverNone) { - out.T(out.WarningType, "Please don't run minikube as root or with 'sudo' privileges. It isn't necessary with {{.driver}} driver.", out.V{"driver": d}) - } - - } else { + if err != nil { glog.Errorf("Error getting the current user: %v", err) + return } + d := viper.GetString(vmDriver) + useForce := viper.GetBool(force) + + if d == constants.DriverNone && u.Uid != "0" && !useForce { + exit.WithCodeT(exit.Permissions, `The "{{.driver_name}}" driver requires root privileges. Please run minikube using 'sudo minikube --vm-driver={{.driver_name}}'.`, out.V{"driver_name": d}) + } + + if d == constants.DriverNone || u.Uid != "0" { + return + } + + if useForce { + out.T(out.WarningType, "Exiting, as the {{.driver_name}} driver should not be used with root privileges.", out.V{"driver_name": d}) + return + } + exit.WithCodeT(exit.Permissions, "Exiting, as the {{.driver_name}} driver should not be used with root privileges.", out.V{"driver_name": d}) } // validateConfig validates the supplied configuration against known bad combinations func validateConfig() { diskSizeMB := pkgutil.CalculateSizeInMB(viper.GetString(humanReadableDiskSize)) - if diskSizeMB < pkgutil.CalculateSizeInMB(constants.MinimumDiskSize) { + if diskSizeMB < pkgutil.CalculateSizeInMB(constants.MinimumDiskSize) && !viper.GetBool(force) { exit.WithCodeT(exit.Config, "Requested disk size {{.requested_size}} is less than minimum of {{.minimum_size}}", out.V{"requested_size": diskSizeMB, "minimum_size": pkgutil.CalculateSizeInMB(constants.MinimumDiskSize)}) } @@ -530,10 +541,10 @@ func validateConfig() { } memorySizeMB := pkgutil.CalculateSizeInMB(viper.GetString(memory)) - if memorySizeMB < pkgutil.CalculateSizeInMB(constants.MinimumMemorySize) { + if memorySizeMB < pkgutil.CalculateSizeInMB(constants.MinimumMemorySize) && !viper.GetBool(force) { exit.UsageT("Requested memory allocation {{.requested_size}} is less than the minimum allowed of {{.minimum_size}}", out.V{"requested_size": memorySizeMB, "minimum_size": pkgutil.CalculateSizeInMB(constants.MinimumMemorySize)}) } - if memorySizeMB < pkgutil.CalculateSizeInMB(constants.DefaultMemorySize) { + if memorySizeMB < pkgutil.CalculateSizeInMB(constants.DefaultMemorySize) && !viper.GetBool(force) { out.T(out.Notice, "Requested memory allocation ({{.memory}}MB) is less than the default memory allocation of {{.default_memorysize}}MB. Beware that minikube might not work correctly or crash unexpectedly.", out.V{"memory": memorySizeMB, "default_memorysize": pkgutil.CalculateSizeInMB(constants.DefaultMemorySize)}) } @@ -956,7 +967,7 @@ func validateDriverVersion(vmDriver string) { v := extractVMDriverVersion(string(output)) // if the driver doesn't have return any version, it is really old, we force a upgrade. - if len(v) == 0 { + if len(v) == 0 && !viper.GetBool(force) { exit.WithCodeT( exit.Failure, "Please upgrade the '{{.driver_executable}}'. {{.documentation_url}}", From c2c2d91453fbd13ada62e3abdfb317994277dd12 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg <tstromberg@google.com> Date: Thu, 22 Aug 2019 14:24:59 -0700 Subject: [PATCH 40/40] Add assistance if the user has a root owned config --- cmd/minikube/cmd/start.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index f6af4b8684..772c3e843f 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -502,6 +502,14 @@ func selectImageRepository(mirrorCountry string, k8sVersion string) (bool, strin return false, fallback, nil } +// Return a minikube command containing the current profile name +func minikubeCmd() string { + if viper.GetString(cfg.MachineProfile) != constants.DefaultMachineName { + return fmt.Sprintf("minikube -p %s", cfg.MachineProfile) + } + return "minikube" +} + // validerUser validates minikube is run by the recommended user (privileged or regular) func validateUser() { u, err := user.Current() @@ -521,11 +529,15 @@ func validateUser() { return } - if useForce { - out.T(out.WarningType, "Exiting, as the {{.driver_name}} driver should not be used with root privileges.", out.V{"driver_name": d}) - return + out.T(out.Stopped, "The {{.driver_name}} driver should not be used with root privileges.", out.V{"driver_name": d}) + + _, err = cfg.Load() + if err == nil || !os.IsNotExist(err) { + out.T(out.Tip, "Tip: To remove this root owned cluster, run: sudo {{.cmd}} delete", out.V{"cmd": minikubeCmd()}) + } + if !useForce { + exit.WithCodeT(exit.Permissions, "Exiting") } - exit.WithCodeT(exit.Permissions, "Exiting, as the {{.driver_name}} driver should not be used with root privileges.", out.V{"driver_name": d}) } // validateConfig validates the supplied configuration against known bad combinations