@@ -597,6 +597,9 @@ function create-master-auth {
597
597
if [[ -n " ${GCE_GLBC_TOKEN:- } " ]]; then
598
598
append_or_replace_prefixed_line " ${known_tokens_csv} " " ${GCE_GLBC_TOKEN} ," " system:controller:glbc,uid:system:controller:glbc"
599
599
fi
600
+ if [[ -n " ${ADDON_MANAGER_TOKEN:- } " ]]; then
601
+ append_or_replace_prefixed_line " ${known_tokens_csv} " " ${ADDON_MANAGER_TOKEN} ," " system:addon-manager,uid:system:addon-manager,system:masters"
602
+ fi
600
603
local use_cloud_config=" false"
601
604
cat << EOF >/etc/gce.conf
602
605
[global]
954
957
fi
955
958
}
956
959
960
+ function create-kubeconfig {
961
+ local component=$1
962
+ local token=$2
963
+ echo " Creating kubeconfig file for component ${component} "
964
+ mkdir -p /etc/srv/kubernetes/${component}
965
+ cat << EOF >/etc/srv/kubernetes/${component} /kubeconfig
966
+ apiVersion: v1
967
+ kind: Config
968
+ users:
969
+ - name: ${component}
970
+ user:
971
+ token: ${token}
972
+ clusters:
973
+ - name: local
974
+ cluster:
975
+ insecure-skip-tls-verify: true
976
+ server: https://localhost:443
977
+ contexts:
978
+ - context:
979
+ cluster: local
980
+ user: ${component}
981
+ name: ${component}
982
+ current-context: ${component}
983
+ EOF
984
+ }
985
+
957
986
# Arg 1: the IP address of the API server
958
987
function create-kubelet-kubeconfig() {
959
988
local apiserver_address=" ${1} "
@@ -1027,102 +1056,6 @@ current-context: service-account-context
1027
1056
EOF
1028
1057
}
1029
1058
1030
- function create-kubecontrollermanager-kubeconfig {
1031
- echo " Creating kube-controller-manager kubeconfig file"
1032
- mkdir -p /etc/srv/kubernetes/kube-controller-manager
1033
- cat << EOF >/etc/srv/kubernetes/kube-controller-manager/kubeconfig
1034
- apiVersion: v1
1035
- kind: Config
1036
- users:
1037
- - name: kube-controller-manager
1038
- user:
1039
- token: ${KUBE_CONTROLLER_MANAGER_TOKEN}
1040
- clusters:
1041
- - name: local
1042
- cluster:
1043
- insecure-skip-tls-verify: true
1044
- server: https://localhost:443
1045
- contexts:
1046
- - context:
1047
- cluster: local
1048
- user: kube-controller-manager
1049
- name: service-account-context
1050
- current-context: service-account-context
1051
- EOF
1052
- }
1053
-
1054
- function create-l7-lb-controller-kubeconfig {
1055
- echo " Creating l7-lb-controller kubeconfig file"
1056
- mkdir -p /etc/srv/kubernetes/l7-lb-controller
1057
- cat << EOF >/etc/srv/kubernetes/l7-lb-controller/kubeconfig
1058
- apiVersion: v1
1059
- kind: Config
1060
- users:
1061
- - name: l7-lb-controller
1062
- user:
1063
- token: ${GCE_GLBC_TOKEN}
1064
- clusters:
1065
- - name: local
1066
- cluster:
1067
- insecure-skip-tls-verify: true
1068
- server: https://localhost:443
1069
- contexts:
1070
- - context:
1071
- cluster: local
1072
- user: l7-lb-controller
1073
- name: l7-lb-controller
1074
- current-context: l7-lb-controller
1075
- EOF
1076
- }
1077
-
1078
- function create-kubescheduler-kubeconfig {
1079
- echo " Creating kube-scheduler kubeconfig file"
1080
- mkdir -p /etc/srv/kubernetes/kube-scheduler
1081
- cat << EOF >/etc/srv/kubernetes/kube-scheduler/kubeconfig
1082
- apiVersion: v1
1083
- kind: Config
1084
- users:
1085
- - name: kube-scheduler
1086
- user:
1087
- token: ${KUBE_SCHEDULER_TOKEN}
1088
- clusters:
1089
- - name: local
1090
- cluster:
1091
- insecure-skip-tls-verify: true
1092
- server: https://localhost:443
1093
- contexts:
1094
- - context:
1095
- cluster: local
1096
- user: kube-scheduler
1097
- name: kube-scheduler
1098
- current-context: kube-scheduler
1099
- EOF
1100
- }
1101
-
1102
- function create-clusterautoscaler-kubeconfig {
1103
- echo " Creating cluster-autoscaler kubeconfig file"
1104
- mkdir -p /etc/srv/kubernetes/cluster-autoscaler
1105
- cat << EOF >/etc/srv/kubernetes/cluster-autoscaler/kubeconfig
1106
- apiVersion: v1
1107
- kind: Config
1108
- users:
1109
- - name: cluster-autoscaler
1110
- user:
1111
- token: ${KUBE_CLUSTER_AUTOSCALER_TOKEN}
1112
- clusters:
1113
- - name: local
1114
- cluster:
1115
- insecure-skip-tls-verify: true
1116
- server: https://localhost:443
1117
- contexts:
1118
- - context:
1119
- cluster: local
1120
- user: cluster-autoscaler
1121
- name: cluster-autoscaler
1122
- current-context: cluster-autoscaler
1123
- EOF
1124
- }
1125
-
1126
1059
function create-kubescheduler-policy-config {
1127
1060
echo " Creating kube-scheduler policy config file"
1128
1061
mkdir -p /etc/srv/kubernetes/kube-scheduler
@@ -2060,7 +1993,7 @@ function apply-encryption-config() {
2060
1993
# DOCKER_REGISTRY
2061
1994
function start-kube-controller-manager {
2062
1995
echo " Start kubernetes controller-manager"
2063
- create-kubecontrollermanager- kubeconfig
1996
+ create-kubeconfig " kube-controller-manager " ${KUBE_CONTROLLER_MANAGER_TOKEN}
2064
1997
prepare-log-file /var/log/kube-controller-manager.log
2065
1998
# Calculate variables and assemble the command line.
2066
1999
local params=" ${CONTROLLER_MANAGER_TEST_LOG_LEVEL:- " --v=2" } ${CONTROLLER_MANAGER_TEST_ARGS:- } ${CLOUD_CONFIG_OPT} "
@@ -2156,7 +2089,7 @@ function start-kube-controller-manager {
2156
2089
# DOCKER_REGISTRY
2157
2090
function start-kube-scheduler {
2158
2091
echo " Start kubernetes scheduler"
2159
- create-kubescheduler- kubeconfig
2092
+ create-kubeconfig " kube-scheduler " ${KUBE_SCHEDULER_TOKEN}
2160
2093
prepare-log-file /var/log/kube-scheduler.log
2161
2094
2162
2095
# Calculate variables and set them in the manifest.
@@ -2194,7 +2127,7 @@ function start-cluster-autoscaler {
2194
2127
if [[ " ${ENABLE_CLUSTER_AUTOSCALER:- } " == " true" ]]; then
2195
2128
echo " Start kubernetes cluster autoscaler"
2196
2129
setup-addon-manifests " addons" " rbac/cluster-autoscaler"
2197
- create-clusterautoscaler- kubeconfig
2130
+ create-kubeconfig " cluster-autoscaler " ${KUBE_CLUSTER_AUTOSCALER_TOKEN}
2198
2131
prepare-log-file /var/log/cluster-autoscaler.log
2199
2132
2200
2133
# Remove salt comments and replace variables with values
@@ -2532,6 +2465,8 @@ function start-kube-addons {
2532
2465
local -r src_dir=" ${KUBE_HOME} /kube-manifests/kubernetes/gci-trusty"
2533
2466
local -r dst_dir=" /etc/kubernetes/addons"
2534
2467
2468
+ create-kubeconfig " addon-manager" ${ADDON_MANAGER_TOKEN}
2469
+
2535
2470
# prep addition kube-up specific rbac objects
2536
2471
setup-addon-manifests " addons" " rbac/kubelet-api-auth"
2537
2472
setup-addon-manifests " addons" " rbac/kubelet-cert-rotation"
@@ -2765,7 +2700,7 @@ function start-lb-controller {
2765
2700
prepare-log-file /var/log/glbc.log
2766
2701
setup-addon-manifests " addons" " cluster-loadbalancing/glbc"
2767
2702
setup-addon-manifests " addons" " rbac/cluster-loadbalancing/glbc"
2768
- create-l7-lb-controller-kubeconfig
2703
+ create-kubeconfig " l7-lb-controller" ${GCE_GLBC_TOKEN}
2769
2704
2770
2705
local -r src_manifest=" ${KUBE_HOME} /kube-manifests/kubernetes/gci-trusty/glbc.manifest"
2771
2706
local -r dest_manifest=" /etc/kubernetes/manifests/glbc.manifest"
@@ -2884,6 +2819,12 @@ spec:
2884
2819
EOF
2885
2820
}
2886
2821
2822
+ function wait-till-apiserver-ready() {
2823
+ until kubectl get nodes; do
2824
+ sleep 5
2825
+ done
2826
+ }
2827
+
2887
2828
# ########## Main Function ###########
2888
2829
function main() {
2889
2830
echo " Start to configure instance for kubernetes"
@@ -2938,6 +2879,7 @@ function main() {
2938
2879
if [[ " ${ENABLE_L7_LOADBALANCING:- } " == " glbc" ]]; then
2939
2880
GCE_GLBC_TOKEN=" $( secure_random 32) "
2940
2881
fi
2882
+ ADDON_MANAGER_TOKEN=" $( secure_random 32) "
2941
2883
2942
2884
setup-os-params
2943
2885
config-ip-firewall
@@ -2982,6 +2924,7 @@ function main() {
2982
2924
start-kube-apiserver
2983
2925
start-kube-controller-manager
2984
2926
start-kube-scheduler
2927
+ wait-till-apiserver-ready
2985
2928
start-kube-addons
2986
2929
start-cluster-autoscaler
2987
2930
start-lb-controller
0 commit comments