Skip to content

Commit 31c7c49

Browse files
committed
fix kubeconfigs
1 parent 407d917 commit 31c7c49

File tree

3 files changed

+19
-49
lines changed

3 files changed

+19
-49
lines changed

deploy/helm/kubernetes/scripts/configure-cluster.sh

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ln -sf /pki/front-proxy-client/tls.crt /etc/kubernetes/pki/front-proxy-client.ke
2424
# Update secrets and component configs
2525
# ------------------------------------------------------------------------------
2626

27-
cat > kubeadmcfg.yaml << EOT
27+
cat >kubeadmcfg.yaml <<EOT
2828
apiVersion: "kubeadm.k8s.io/v1beta2"
2929
kind: ClusterConfiguration
3030
imageRepository: k8s.gcr.io
@@ -33,34 +33,32 @@ EOT
3333

3434
{{- if .Values.apiServer.enabled }}{{"\n"}}
3535
# generate sa key
36-
if [ -z "$(kubectl get secret "${FULL_NAME}-pki-sa" -o jsonpath='{.data}')" ]; then
36+
if ! kubectl get secret "${FULL_NAME}-pki-sa" >/dev/null; then
3737
kubeadm init phase certs sa
38-
kubectl patch secret "${FULL_NAME}-pki-sa" --type merge \
39-
-p "{\"data\":{\"sa.pub\":\"$(base64 /etc/kubernetes/pki/sa.pub | tr -d '\n')\", \"sa.key\":\"$(base64 /etc/kubernetes/pki/sa.key | tr -d '\n')\" }}"
38+
kubectl create secret generic "${FULL_NAME}-pki-sa" --from-file=/etc/kubernetes/pki/sa.pub --from-file=/etc/kubernetes/pki/sa.key
4039
fi
4140
{{- end }}
4241

4342
# generate cluster-admin kubeconfig
4443
rm -f /etc/kubernetes/admin.conf
4544
kubeadm init phase kubeconfig admin --config kubeadmcfg.yaml
46-
kubectl patch secret "${FULL_NAME}-admin-conf" --type merge \
47-
-p "{\"data\":{\"admin.conf\":\"$(base64 /etc/kubernetes/admin.conf | tr -d '\n')\" }}"
45+
kubectl --kubeconfig=/etc/kubernetes/admin.conf config set clusters.kubernetes.server "https://${FULL_NAME}-apiserver:6443"
46+
kubectl create secret generic "${FULL_NAME}-admin-conf" --from-file=/etc/kubernetes/admin.conf --dry-run=client -o yaml | kubectl apply -f -
4847

4948
{{- if .Values.controllerManager.enabled }}{{"\n"}}
5049
# generate controller-manager kubeconfig
5150
rm -f /etc/kubernetes/controller-manager.conf
5251
kubeadm init phase kubeconfig controller-manager --config kubeadmcfg.yaml
53-
kubectl patch secret "${FULL_NAME}-controller-manager-conf" --type merge \
54-
-p "{\"data\":{\"controller-manager.conf\":\"$(base64 /etc/kubernetes/controller-manager.conf | tr -d '\n')\" }}"
52+
kubectl --kubeconfig=/etc/kubernetes/controller-manager.conf config set clusters.kubernetes.server "https://${FULL_NAME}-apiserver:6443"
53+
kubectl create secret generic "${FULL_NAME}-controller-manager-conf" --from-file=/etc/kubernetes/controller-manager.conf --dry-run=client -o yaml | kubectl apply -f -
5554
{{- end }}
5655

57-
5856
{{- if .Values.scheduler.enabled }}{{"\n"}}
5957
# generate scheduler kubeconfig
6058
rm -f /etc/kubernetes/scheduler.conf
6159
kubeadm init phase kubeconfig scheduler --config kubeadmcfg.yaml
62-
kubectl patch secret "${FULL_NAME}-scheduler-conf" --type merge \
63-
-p "{\"data\":{\"scheduler.conf\":\"$(base64 /etc/kubernetes/scheduler.conf | tr -d '\n')\" }}"
60+
kubectl --kubeconfig=/etc/kubernetes/scheduler.conf config set clusters.kubernetes.server "https://${FULL_NAME}-apiserver:6443"
61+
kubectl create secret generic "${FULL_NAME}-scheduler-conf" --from-file=/etc/kubernetes/scheduler.conf --dry-run=client -o yaml | kubectl apply -f -
6462
{{- end }}
6563

6664
# wait for cluster
@@ -80,20 +78,18 @@ kubectl --kubeconfig /etc/kubernetes/admin.conf patch configmap -n kube-system k
8078
-p '{"data":{"ClusterStatus":"apiEndpoints: {}\napiVersion: kubeadm.k8s.io/v1beta2\nkind: ClusterStatus"}}'
8179

8280
# upload configuration
83-
kubeadm init phase upload-config kubelet --config /config/kubeadmcfg.yaml -v1 2>&1 \
84-
| while read line; do echo "$line" | grep 'Preserving the CRISocket information for the control-plane node' && killall kubeadm || echo "$line"; done
81+
kubeadm init phase upload-config kubelet --config /config/kubeadmcfg.yaml -v1 2>&1 |
82+
while read line; do echo "$line" | grep 'Preserving the CRISocket information for the control-plane node' && killall kubeadm || echo "$line"; done
8583

8684
# setup bootstrap-tokens
8785
kubeadm init phase bootstrap-token --config /config/kubeadmcfg.yaml --skip-token-print
8886

8987
# correct apiserver address for the external clients
90-
if [ -n "$CONTROL_PLANE_ENDPOINT" ]; then
91-
tmp="$(mktemp -d)"
92-
kubectl --kubeconfig /etc/kubernetes/admin.conf get configmap -n kube-public cluster-info -o jsonpath='{.data.kubeconfig}' > "$tmp/kubeconfig"
93-
kubectl --kubeconfig "$tmp/kubeconfig" config set clusters..server "https://${CONTROL_PLANE_ENDPOINT}"
94-
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 -
95-
rm -rf "$tmp"
96-
fi
88+
tmp="$(mktemp -d)"
89+
kubectl --kubeconfig "$tmp/kubeconfig" config set clusters..server "https://${CONTROL_PLANE_ENDPOINT:-${FULL_NAME}-apiserver:6443}"
90+
kubectl --kubeconfig "$tmp/kubeconfig" config set clusters..certificate-authority-data "$(base64 /etc/kubernetes/pki/ca.crt | tr -d '\n')"
91+
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 -
92+
rm -rf "$tmp"
9793

9894
{{- if .Values.coredns.enabled }}{{"\n"}}
9995
# install coredns addon

deploy/helm/kubernetes/templates/kubeadm-rbac.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ apiVersion: rbac.authorization.k8s.io/v1
1111
metadata:
1212
name: "{{ $fullName }}-kubeadm-tasks"
1313
rules:
14+
- apiGroups: [""]
15+
resources: ["secrets"]
16+
verbs: ["create"]
1417
- apiGroups: [""]
1518
resources: ["secrets"]
1619
verbs: ["get", "patch"]

deploy/helm/kubernetes/templates/kubeadm-secrets.yaml

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)