@@ -198,7 +198,11 @@ function gke-internal-master-start {
198
198
create-static-auth-kubeconfig-for-component mastertest
199
199
fi
200
200
201
- if [[ -n " ${KUBE_BEARER_TOKEN:- } " ]]; then
201
+ if [[ " ${LOCAL_ADMIN_GKE_EXEC_AUTH:- false} " == " true" ]] && [[ -n " ${TOKEN_URL:- } " ]] && [[ -n " ${TOKEN_BODY_UNQUOTED:- } " ]]; then
202
+ echo " setting up local admin kubeconfig with gke-exec-auth-plugin"
203
+ create-kcp-admin-kubeconfig
204
+ echo " export KUBECONFIG=/etc/srv/kubernetes/local-admin/kubeconfig" > /etc/profile.d/kubeconfig.sh
205
+ elif [[ -n " ${KUBE_BEARER_TOKEN:- } " ]]; then
202
206
echo " setting up local admin kubeconfig"
203
207
create-kubeconfig " local-admin" " ${KUBE_BEARER_TOKEN} "
204
208
echo " export KUBECONFIG=/etc/srv/kubernetes/local-admin/kubeconfig" > /etc/profile.d/kubeconfig.sh
@@ -1179,3 +1183,35 @@ providers:
1179
1183
defaultCacheDuration: 1m
1180
1184
EOF
1181
1185
}
1186
+
1187
+ function create-kcp-admin-kubeconfig {
1188
+ mkdir -p " /etc/srv/kubernetes/local-admin"
1189
+ cat > " /etc/srv/kubernetes/local-admin/kubeconfig" << EOF
1190
+ apiVersion: v1
1191
+ kind: Config
1192
+ users:
1193
+ - name: local-admin
1194
+ user:
1195
+ exec:
1196
+ apiVersion: "client.authentication.k8s.io/v1beta1"
1197
+ command: /home/kubernetes/bin/gke-exec-auth-plugin
1198
+ args:
1199
+ - --mode=alt-token
1200
+ - --alt-token-url=${TOKEN_URL}
1201
+ - --alt-token-body=${TOKEN_BODY_UNQUOTED}
1202
+ clusters:
1203
+ - name: local
1204
+ cluster:
1205
+ certificate-authority-data: ${CA_CERT}
1206
+ server: https://${KUBE_APISERVER_INTERNAL_ADDRESS} :443
1207
+ disable-compression: true
1208
+ contexts:
1209
+ - context:
1210
+ cluster: local
1211
+ user: local-admin
1212
+ name: local-admin
1213
+ current-context: local-admin
1214
+ EOF
1215
+ }
1216
+
1217
+
0 commit comments