Skip to content

Commit 28edca2

Browse files
authored
Merge pull request #4306 from tstromberg/docker-backwards-compat
Disable SystemVerification preflight on Kubernetes releases <1.13
2 parents c221379 + 11cdcef commit 28edca2

File tree

2 files changed

+21
-43
lines changed

2 files changed

+21
-43
lines changed

pkg/minikube/bootstrapper/kubeadm/kubeadm.go

+21-39
Original file line numberDiff line numberDiff line change
@@ -73,24 +73,6 @@ var KubeadmExtraArgsWhitelist = map[int][]string{
7373
},
7474
}
7575

76-
// SkipPreflights are preflight checks we always skip.
77-
var SkipPreflights = []string{
78-
// We use --ignore-preflight-errors=DirAvailable since we have our own custom addons
79-
// that we also stick in /etc/kubernetes/manifests
80-
"DirAvailable--etc-kubernetes-manifests",
81-
"DirAvailable--data-minikube",
82-
"Port-10250",
83-
"FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml",
84-
"FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml",
85-
"FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml",
86-
"FileAvailable--etc-kubernetes-manifests-etcd.yaml",
87-
// So that "none" driver users don't have to reconfigure their machine
88-
"Swap",
89-
// We use --ignore-preflight-errors=CRI since /var/run/dockershim.sock is not present.
90-
// (because we start kubelet with an invalid config)
91-
"CRI",
92-
}
93-
9476
type pod struct {
9577
// Human friendly name
9678
name string
@@ -221,30 +203,30 @@ func (k *Bootstrapper) StartCluster(k8s config.KubernetesConfig) error {
221203
if err != nil {
222204
return err
223205
}
224-
b := bytes.Buffer{}
225-
preflights := SkipPreflights
226-
preflights = append(preflights, SkipAdditionalPreflights[r.Name()]...)
227-
228-
templateContext := struct {
229-
KubeadmConfigFile string
230-
SkipPreflightChecks bool
231-
Preflights []string
232-
ExtraOptions string
233-
}{
234-
KubeadmConfigFile: constants.KubeadmConfigFile,
235-
SkipPreflightChecks: !VersionIsBetween(version,
236-
semver.MustParse("1.9.0-alpha.0"),
237-
semver.Version{}),
238-
Preflights: preflights,
239-
ExtraOptions: extraFlags,
240-
}
241-
if err := kubeadmInitTemplate.Execute(&b, templateContext); err != nil {
242-
return err
206+
207+
ignore := []string{
208+
"DirAvailable--etc-kubernetes-manifests", // Addons are stored in /etc/kubernetes/manifests
209+
"DirAvailable--data-minikube",
210+
"FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml",
211+
"FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml",
212+
"FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml",
213+
"FileAvailable--etc-kubernetes-manifests-etcd.yaml",
214+
"Port-10250", // For "none" users who already have a kubelet online
215+
"Swap", // For "none" users who have swap configured
216+
}
217+
ignore = append(ignore, SkipAdditionalPreflights[r.Name()]...)
218+
219+
// Allow older kubeadm versions to function with newer Docker releases.
220+
if version.LT(semver.MustParse("1.13.0")) {
221+
glog.Infof("Older Kubernetes release detected (%s), disabling SystemVerification check.", version)
222+
ignore = append(ignore, "SystemVerification")
243223
}
244224

245-
out, err := k.c.CombinedOutput(b.String())
225+
cmd := fmt.Sprintf("sudo /usr/bin/kubeadm init --config %s %s --ignore-preflight-errors=%s",
226+
constants.KubeadmConfigFile, extraFlags, strings.Join(ignore, ","))
227+
out, err := k.c.CombinedOutput(cmd)
246228
if err != nil {
247-
return errors.Wrapf(err, "kubeadm init: %s\n%s\n", b.String(), out)
229+
return errors.Wrapf(err, "cmd failed: %s\n%s\n", cmd, out)
248230
}
249231

250232
if version.LT(semver.MustParse("1.10.0-alpha.0")) {

pkg/minikube/bootstrapper/kubeadm/templates.go

-4
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,6 @@ RestartSec=10
177177
WantedBy=multi-user.target
178178
`
179179

180-
var kubeadmInitTemplate = template.Must(template.New("kubeadmInitTemplate").Parse(`
181-
sudo /usr/bin/kubeadm init --config {{.KubeadmConfigFile}} {{.ExtraOptions}} {{if .SkipPreflightChecks}}--skip-preflight-checks{{else}}{{range .Preflights}}--ignore-preflight-errors={{.}} {{end}}{{end}}
182-
`))
183-
184180
// printMapInOrder sorts the keys and prints the map in order, combining key
185181
// value pairs with the separator character
186182
//

0 commit comments

Comments
 (0)