@@ -205,6 +205,61 @@ spec:
205205 path: /var/lock
206206` )
207207
208+ BootstrapAPIServerTemplate = []byte (`apiVersion: v1
209+ kind: Pod
210+ metadata:
211+ name: bootstrap-kube-apiserver
212+ namespace: kube-system
213+ spec:
214+ hostNetwork: true
215+ containers:
216+ - name: kube-apiserver
217+ image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
218+ command:
219+ - /usr/bin/flock
220+ - --exclusive
221+ - --timeout=30
222+ - /var/lock/api-server.lock
223+ - /hyperkube
224+ - apiserver
225+ - --admission-control=NamespaceLifecycle,ServiceAccount
226+ - --allow-privileged=true
227+ - --authorization-mode=RBAC
228+ - --bind-address=0.0.0.0
229+ - --client-ca-file=/etc/kubernetes/secrets/ca.crt
230+ - --etcd-servers={{ range $i, $e := .EtcdServers }}{{ if $i }},{{end}}{{ $e }}{{end}}{{ if .SelfHostedEtcd }},http://127.0.0.1:12379{{end}}
231+ - --insecure-port=8080
232+ - --kubelet-client-certificate=/etc/kubernetes/secrets/apiserver.crt
233+ - --kubelet-client-key=/etc/kubernetes/secrets/apiserver.key
234+ - --runtime-config=api/all=true
235+ - --secure-port=443
236+ - --service-account-key-file=/etc/kubernetes/secrets/service-account.pub
237+ - --service-cluster-ip-range={{ .ServiceCIDR }}
238+ - --storage-backend=etcd3
239+ - --tls-cert-file=/etc/kubernetes/secrets/apiserver.crt
240+ - --tls-private-key-file=/etc/kubernetes/secrets/apiserver.key
241+ volumeMounts:
242+ - mountPath: /etc/ssl/certs
243+ name: ssl-certs-host
244+ readOnly: true
245+ - mountPath: /etc/kubernetes/secrets
246+ name: secrets
247+ readOnly: true
248+ - mountPath: /var/lock
249+ name: var-lock
250+ readOnly: false
251+ volumes:
252+ - name: secrets
253+ hostPath:
254+ path: {{ .BootstrapSecretsDir }}
255+ - name: ssl-certs-host
256+ hostPath:
257+ path: /usr/share/ca-certificates
258+ - name: var-lock
259+ hostPath:
260+ path: /var/lock
261+ ` )
262+
208263 KencTemplate = []byte (`apiVersion: "extensions/v1beta1"
209264kind: DaemonSet
210265metadata:
@@ -376,6 +431,42 @@ spec:
376431 path: /usr/share/ca-certificates
377432 dnsPolicy: Default # Don't use cluster DNS.
378433` )
434+
435+ BootstrapControllerManagerTemplate = []byte (`apiVersion: v1
436+ kind: Pod
437+ metadata:
438+ name: bootstrap-kube-controller-manager
439+ namespace: kube-system
440+ spec:
441+ hostNetwork: true
442+ containers:
443+ - name: kube-controller-manager
444+ image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
445+ command:
446+ - ./hyperkube
447+ - controller-manager
448+ - --allocate-node-cidrs=true
449+ - --cluster-cidr={{ .PodCIDR }}
450+ - --configure-cloud-routes=false
451+ - --leader-elect=true
452+ - --master=http://127.0.0.1:8080
453+ - --root-ca-file=/etc/kubernetes/secrets/ca.crt
454+ - --service-account-private-key-file=/etc/kubernetes/secrets/service-account.key
455+ volumeMounts:
456+ - name: secrets
457+ mountPath: /etc/kubernetes/secrets
458+ readOnly: true
459+ - name: ssl-host
460+ mountPath: /etc/ssl/certs
461+ readOnly: true
462+ volumes:
463+ - name: secrets
464+ hostPath:
465+ path: {{ .BootstrapSecretsDir }}
466+ - name: ssl-host
467+ hostPath:
468+ path: /usr/share/ca-certificates
469+ ` )
379470 ControllerManagerDisruptionTemplate = []byte (`apiVersion: policy/v1beta1
380471kind: PodDisruptionBudget
381472metadata:
@@ -436,6 +527,23 @@ spec:
436527 initialDelaySeconds: 15
437528 timeoutSeconds: 15
438529
530+ ` )
531+
532+ BootstrapSchedulerTemplate = []byte (`apiVersion: v1
533+ kind: Pod
534+ metadata:
535+ name: bootstrap-kube-scheduler
536+ namespace: kube-system
537+ spec:
538+ hostNetwork: true
539+ containers:
540+ - name: kube-scheduler
541+ image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
542+ command:
543+ - ./hyperkube
544+ - scheduler
545+ - --leader-elect=true
546+ - --master=http://127.0.0.1:8080
439547` )
440548 SchedulerDisruptionTemplate = []byte (`apiVersion: policy/v1beta1
441549kind: PodDisruptionBudget
@@ -716,6 +824,37 @@ spec:
716824 protocol: TCP
717825` )
718826
827+ BootstrapEtcdTemplate = []byte (`apiVersion: v1
828+ kind: Pod
829+ metadata:
830+ name: bootstrap-etcd
831+ namespace: kube-system
832+ labels:
833+ k8s-app: boot-etcd
834+ spec:
835+ hostNetwork: true
836+ restartPolicy: Never
837+ containers:
838+ - name: etcd
839+ image: quay.io/coreos/etcd:v3.1.0
840+ command:
841+ - /usr/local/bin/etcd
842+ - --name=boot-etcd
843+ - --listen-client-urls=http://0.0.0.0:12379
844+ - --listen-peer-urls=http://0.0.0.0:12380
845+ - --advertise-client-urls=http://$(MY_POD_IP):12379
846+ - --initial-advertise-peer-urls=http://$(MY_POD_IP):12380
847+ - --initial-cluster=boot-etcd=http://$(MY_POD_IP):12380
848+ - --initial-cluster-token=bootkube
849+ - --initial-cluster-state=new
850+ - --data-dir=/var/etcd/data
851+ env:
852+ - name: MY_POD_IP
853+ valueFrom:
854+ fieldRef:
855+ fieldPath: status.podIP
856+ ` )
857+
719858 KubeFlannelCfgTemplate = []byte (`apiVersion: v1
720859kind: ConfigMap
721860metadata:
0 commit comments