11#! /bin/sh
22set -e
33set -x
4-
5- # ------------------------------------------------------------------------------
6- # Setup environment
7- # ------------------------------------------------------------------------------
8-
9- mkdir -p /etc/kubernetes/pki
10- ln -sf /pki/apiserver-etcd-client/tls.crt /etc/kubernetes/pki/apiserver-etcd-client.crt
11- ln -sf /pki/apiserver-etcd-client/tls.key /etc/kubernetes/pki/apiserver-etcd-client.key
12- ln -sf /pki/apiserver-kubelet-client/tls.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt
13- ln -sf /pki/apiserver-kubelet-client/tls.key /etc/kubernetes/pki/apiserver-kubelet-client.key
14- ln -sf /pki/apiserver/tls.crt /etc/kubernetes/pki/apiserver.crt
15- ln -sf /pki/apiserver/tls.key /etc/kubernetes/pki/apiserver.key
16- ln -sf /pki/ca/tls.crt /etc/kubernetes/pki/ca.crt
17- ln -sf /pki/ca/tls.key /etc/kubernetes/pki/ca.key
18- ln -sf /pki/front-proxy-ca/tls.key /etc/kubernetes/pki/front-proxy-ca.crt
19- ln -sf /pki/front-proxy-ca/tls.crt /etc/kubernetes/pki/front-proxy-ca.key
20- ln -sf /pki/front-proxy-client/tls.key /etc/kubernetes/pki/front-proxy-client.crt
21- ln -sf /pki/front-proxy-client/tls.crt /etc/kubernetes/pki/front-proxy-client.key
4+ ENDPOINT=$( awk -F' [ "]+' ' $1 == "controlPlaneEndpoint:" {print $2}' /config/kubeadmcfg.yaml)
225
236# ------------------------------------------------------------------------------
247# Update secrets and component configs
258# ------------------------------------------------------------------------------
269
27- cat > kubeadmcfg.yaml << EOT
28- apiVersion: "kubeadm.k8s.io/v1beta2"
29- kind: ClusterConfiguration
30- imageRepository: k8s.gcr.io
31- controlPlaneEndpoint: "${FULL_NAME} -apiserver:6443"
32- EOT
33-
34- {{- if .Values.apiServer.enabled }}{{" \n" }}
35- # generate sa key
36- if ! kubectl get secret " ${FULL_NAME} -pki-sa" > /dev/null; then
37- kubeadm init phase certs sa
38- kubectl create secret generic " ${FULL_NAME} -pki-sa" --from-file=/etc/kubernetes/pki/sa.pub --from-file=/etc/kubernetes/pki/sa.key
39- fi
40- {{- end }}
41-
4210# wait for cluster
43- echo " Waiting for api-server endpoint ${FULL_NAME} -apiserver:6443 ..."
44- until kubectl --kubeconfig /etc/kubernetes/admin.conf cluster-info > /dev/null 2> /dev/null; do
11+ echo " Waiting for api-server endpoint ${ENDPOINT} ..."
12+ until kubectl cluster-info > /dev/null 2> /dev/null; do
4513 sleep 1
4614done
4715
@@ -52,7 +20,7 @@ export KUBECONFIG=/etc/kubernetes/admin.conf
5220
5321# upload configuration
5422kubeadm init phase upload-config kubeadm --config /config/kubeadmcfg.yaml
55- kubectl --kubeconfig /etc/kubernetes/admin.conf patch configmap -n kube-system kubeadm-config \
23+ kubectl patch configmap -n kube-system kubeadm-config \
5624 -p ' {"data":{"ClusterStatus":"apiEndpoints: {}\napiVersion: kubeadm.k8s.io/v1beta2\nkind: ClusterStatus"}}'
5725
5826# upload configuration
@@ -63,41 +31,55 @@ kubeadm init phase upload-config kubelet --config /config/kubeadmcfg.yaml -v1 2>
6331kubeadm init phase bootstrap-token --config /config/kubeadmcfg.yaml --skip-token-print
6432
6533# correct apiserver address for the external clients
66- tmp=" $( mktemp -d) "
67- kubectl --kubeconfig " $tmp /kubeconfig" config set clusters..server " https://${CONTROL_PLANE_ENDPOINT:- ${FULL_NAME} -apiserver: 6443} "
68- kubectl --kubeconfig " $tmp /kubeconfig" config set clusters..certificate-authority-data " $( base64 /etc/kubernetes/pki/ca.crt | tr -d ' \n' ) "
69- kubectl create configmap cluster-info --from-file=" $tmp /kubeconfig" --dry-run=client -o yaml | kubectl --kubeconfig /etc/kubernetes/admin.conf apply -n kube-public -f -
70- rm -rf " $tmp "
34+ kubectl apply -n kube-public -f - << EOT
35+ apiVersion: v1
36+ kind: ConfigMap
37+ metadata:
38+ name: cluster-info
39+ data:
40+ kubeconfig: |
41+ apiVersion: v1
42+ clusters:
43+ - cluster:
44+ certificate-authority-data: $( base64 /pki/admin-client/ca.crt | tr -d ' \n' )
45+ server: https://${ENDPOINT}
46+ name: ""
47+ contexts: null
48+ current-context: ""
49+ kind: Config
50+ preferences: {}
51+ users: null
52+ EOT
7153
7254{{- if .Values.konnectivityServer.enabled }}{{" \n" }}
7355# install konnectivity server
74- kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f /manifests/konnectivity-server-rbac.yaml
56+ kubectl apply -f /manifests/konnectivity-server-rbac.yaml
7557{{- else }}{{" \n" }}
76- kubectl --kubeconfig /etc/kubernetes/admin.conf delete clusterrolebinding/system:konnectivity-server 2> /dev/null || true
58+ kubectl delete clusterrolebinding/system:konnectivity-server 2> /dev/null || true
7759{{- end }}
7860
7961{{- if .Values.konnectivityAgent.enabled }}{{" \n" }}
8062# install konnectivity agent
81- kubectl --kubeconfig /etc/kubernetes/admin.conf apply -f /manifests/konnectivity-agent-deployment.yaml -f /manifests/konnectivity-agent-rbac.yaml
63+ kubectl apply -f /manifests/konnectivity-agent-deployment.yaml -f /manifests/konnectivity-agent-rbac.yaml
8264{{- else }}{{" \n" }}
8365# uninstall konnectivity agent
84- kubectl --kubeconfig /etc/kubernetes/admin.conf - n kube-system delete deployment/konnectivity-agent serviceaccount/konnectivity-agent 2> /dev/null || true
66+ kubectl -n kube-system delete deployment/konnectivity-agent serviceaccount/konnectivity-agent 2> /dev/null || true
8567{{- end }}
8668
8769{{- if .Values.coredns.enabled }}{{" \n" }}
8870# install coredns addon
8971kubeadm init phase addon coredns --config /config/kubeadmcfg.yaml
9072{{- else }}{{" \n" }}
9173# uninstall coredns addon
92- kubectl --kubeconfig /etc/kubernetes/admin.conf - n kube-system delete configmap/coredns deployment/coredns 2> /dev/null || true
74+ kubectl -n kube-system delete configmap/coredns deployment/coredns 2> /dev/null || true
9375{{- end }}
9476
9577{{- if .Values.kubeProxy.enabled }}{{" \n" }}
9678# install kube-proxy addon
9779kubeadm init phase addon kube-proxy --config /config/kubeadmcfg.yaml
9880{{- else }}{{" \n" }}
9981# uninstall kube-proxy addon
100- kubectl --kubeconfig /etc/kubernetes/admin.conf - n kube-system delete configmap/kube-proxy daemonset/kube-proxy 2> /dev/null || true
82+ kubectl -n kube-system delete configmap/kube-proxy daemonset/kube-proxy 2> /dev/null || true
10183{{- end }}
10284
10385{{- with .Values.extraManifests }}{{" \n" }}
0 commit comments