@@ -73,24 +73,6 @@ var KubeadmExtraArgsWhitelist = map[int][]string{
73
73
},
74
74
}
75
75
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
-
94
76
type pod struct {
95
77
// Human friendly name
96
78
name string
@@ -221,30 +203,30 @@ func (k *Bootstrapper) StartCluster(k8s config.KubernetesConfig) error {
221
203
if err != nil {
222
204
return err
223
205
}
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" )
243
223
}
244
224
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 )
246
228
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 )
248
230
}
249
231
250
232
if version .LT (semver .MustParse ("1.10.0-alpha.0" )) {
0 commit comments