mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Added function to create kubeconfig for addon-manager
This commit is contained in:
parent
6f1fd17b7a
commit
1456979e93
@ -597,6 +597,9 @@ function create-master-auth {
|
|||||||
if [[ -n "${GCE_GLBC_TOKEN:-}" ]]; then
|
if [[ -n "${GCE_GLBC_TOKEN:-}" ]]; then
|
||||||
append_or_replace_prefixed_line "${known_tokens_csv}" "${GCE_GLBC_TOKEN}," "system:controller:glbc,uid:system:controller:glbc"
|
append_or_replace_prefixed_line "${known_tokens_csv}" "${GCE_GLBC_TOKEN}," "system:controller:glbc,uid:system:controller:glbc"
|
||||||
fi
|
fi
|
||||||
|
if [[ -n "${ADDON_MANAGER_TOKEN:-}" ]]; then
|
||||||
|
append_or_replace_prefixed_line "${known_tokens_csv}" "${ADDON_MANAGER_TOKEN}," "system:addon-manager,uid:system:addon-manager,system:masters"
|
||||||
|
fi
|
||||||
local use_cloud_config="false"
|
local use_cloud_config="false"
|
||||||
cat <<EOF >/etc/gce.conf
|
cat <<EOF >/etc/gce.conf
|
||||||
[global]
|
[global]
|
||||||
@ -954,6 +957,32 @@ EOF
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function create-kubeconfig {
|
||||||
|
local component=$1
|
||||||
|
local token=$2
|
||||||
|
echo "Creating kubeconfig file for component ${component}"
|
||||||
|
mkdir -p /etc/srv/kubernetes/${component}
|
||||||
|
cat <<EOF >/etc/srv/kubernetes/${component}/kubeconfig
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Config
|
||||||
|
users:
|
||||||
|
- name: ${component}
|
||||||
|
user:
|
||||||
|
token: ${token}
|
||||||
|
clusters:
|
||||||
|
- name: local
|
||||||
|
cluster:
|
||||||
|
insecure-skip-tls-verify: true
|
||||||
|
server: https://localhost:443
|
||||||
|
contexts:
|
||||||
|
- context:
|
||||||
|
cluster: local
|
||||||
|
user: ${component}
|
||||||
|
name: ${component}
|
||||||
|
current-context: ${component}
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
# Arg 1: the IP address of the API server
|
# Arg 1: the IP address of the API server
|
||||||
function create-kubelet-kubeconfig() {
|
function create-kubelet-kubeconfig() {
|
||||||
local apiserver_address="${1}"
|
local apiserver_address="${1}"
|
||||||
@ -1027,102 +1056,6 @@ current-context: service-account-context
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
function create-kubecontrollermanager-kubeconfig {
|
|
||||||
echo "Creating kube-controller-manager kubeconfig file"
|
|
||||||
mkdir -p /etc/srv/kubernetes/kube-controller-manager
|
|
||||||
cat <<EOF >/etc/srv/kubernetes/kube-controller-manager/kubeconfig
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Config
|
|
||||||
users:
|
|
||||||
- name: kube-controller-manager
|
|
||||||
user:
|
|
||||||
token: ${KUBE_CONTROLLER_MANAGER_TOKEN}
|
|
||||||
clusters:
|
|
||||||
- name: local
|
|
||||||
cluster:
|
|
||||||
insecure-skip-tls-verify: true
|
|
||||||
server: https://localhost:443
|
|
||||||
contexts:
|
|
||||||
- context:
|
|
||||||
cluster: local
|
|
||||||
user: kube-controller-manager
|
|
||||||
name: service-account-context
|
|
||||||
current-context: service-account-context
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
function create-l7-lb-controller-kubeconfig {
|
|
||||||
echo "Creating l7-lb-controller kubeconfig file"
|
|
||||||
mkdir -p /etc/srv/kubernetes/l7-lb-controller
|
|
||||||
cat <<EOF >/etc/srv/kubernetes/l7-lb-controller/kubeconfig
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Config
|
|
||||||
users:
|
|
||||||
- name: l7-lb-controller
|
|
||||||
user:
|
|
||||||
token: ${GCE_GLBC_TOKEN}
|
|
||||||
clusters:
|
|
||||||
- name: local
|
|
||||||
cluster:
|
|
||||||
insecure-skip-tls-verify: true
|
|
||||||
server: https://localhost:443
|
|
||||||
contexts:
|
|
||||||
- context:
|
|
||||||
cluster: local
|
|
||||||
user: l7-lb-controller
|
|
||||||
name: l7-lb-controller
|
|
||||||
current-context: l7-lb-controller
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
function create-kubescheduler-kubeconfig {
|
|
||||||
echo "Creating kube-scheduler kubeconfig file"
|
|
||||||
mkdir -p /etc/srv/kubernetes/kube-scheduler
|
|
||||||
cat <<EOF >/etc/srv/kubernetes/kube-scheduler/kubeconfig
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Config
|
|
||||||
users:
|
|
||||||
- name: kube-scheduler
|
|
||||||
user:
|
|
||||||
token: ${KUBE_SCHEDULER_TOKEN}
|
|
||||||
clusters:
|
|
||||||
- name: local
|
|
||||||
cluster:
|
|
||||||
insecure-skip-tls-verify: true
|
|
||||||
server: https://localhost:443
|
|
||||||
contexts:
|
|
||||||
- context:
|
|
||||||
cluster: local
|
|
||||||
user: kube-scheduler
|
|
||||||
name: kube-scheduler
|
|
||||||
current-context: kube-scheduler
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
function create-clusterautoscaler-kubeconfig {
|
|
||||||
echo "Creating cluster-autoscaler kubeconfig file"
|
|
||||||
mkdir -p /etc/srv/kubernetes/cluster-autoscaler
|
|
||||||
cat <<EOF >/etc/srv/kubernetes/cluster-autoscaler/kubeconfig
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Config
|
|
||||||
users:
|
|
||||||
- name: cluster-autoscaler
|
|
||||||
user:
|
|
||||||
token: ${KUBE_CLUSTER_AUTOSCALER_TOKEN}
|
|
||||||
clusters:
|
|
||||||
- name: local
|
|
||||||
cluster:
|
|
||||||
insecure-skip-tls-verify: true
|
|
||||||
server: https://localhost:443
|
|
||||||
contexts:
|
|
||||||
- context:
|
|
||||||
cluster: local
|
|
||||||
user: cluster-autoscaler
|
|
||||||
name: cluster-autoscaler
|
|
||||||
current-context: cluster-autoscaler
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
function create-kubescheduler-policy-config {
|
function create-kubescheduler-policy-config {
|
||||||
echo "Creating kube-scheduler policy config file"
|
echo "Creating kube-scheduler policy config file"
|
||||||
mkdir -p /etc/srv/kubernetes/kube-scheduler
|
mkdir -p /etc/srv/kubernetes/kube-scheduler
|
||||||
@ -2060,7 +1993,7 @@ function apply-encryption-config() {
|
|||||||
# DOCKER_REGISTRY
|
# DOCKER_REGISTRY
|
||||||
function start-kube-controller-manager {
|
function start-kube-controller-manager {
|
||||||
echo "Start kubernetes controller-manager"
|
echo "Start kubernetes controller-manager"
|
||||||
create-kubecontrollermanager-kubeconfig
|
create-kubeconfig "kube-controller-manager" ${KUBE_CONTROLLER_MANAGER_TOKEN}
|
||||||
prepare-log-file /var/log/kube-controller-manager.log
|
prepare-log-file /var/log/kube-controller-manager.log
|
||||||
# Calculate variables and assemble the command line.
|
# Calculate variables and assemble the command line.
|
||||||
local params="${CONTROLLER_MANAGER_TEST_LOG_LEVEL:-"--v=2"} ${CONTROLLER_MANAGER_TEST_ARGS:-} ${CLOUD_CONFIG_OPT}"
|
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 {
|
|||||||
# DOCKER_REGISTRY
|
# DOCKER_REGISTRY
|
||||||
function start-kube-scheduler {
|
function start-kube-scheduler {
|
||||||
echo "Start kubernetes scheduler"
|
echo "Start kubernetes scheduler"
|
||||||
create-kubescheduler-kubeconfig
|
create-kubeconfig "kube-scheduler" ${KUBE_SCHEDULER_TOKEN}
|
||||||
prepare-log-file /var/log/kube-scheduler.log
|
prepare-log-file /var/log/kube-scheduler.log
|
||||||
|
|
||||||
# Calculate variables and set them in the manifest.
|
# Calculate variables and set them in the manifest.
|
||||||
@ -2194,7 +2127,7 @@ function start-cluster-autoscaler {
|
|||||||
if [[ "${ENABLE_CLUSTER_AUTOSCALER:-}" == "true" ]]; then
|
if [[ "${ENABLE_CLUSTER_AUTOSCALER:-}" == "true" ]]; then
|
||||||
echo "Start kubernetes cluster autoscaler"
|
echo "Start kubernetes cluster autoscaler"
|
||||||
setup-addon-manifests "addons" "rbac/cluster-autoscaler"
|
setup-addon-manifests "addons" "rbac/cluster-autoscaler"
|
||||||
create-clusterautoscaler-kubeconfig
|
create-kubeconfig "cluster-autoscaler" ${KUBE_CLUSTER_AUTOSCALER_TOKEN}
|
||||||
prepare-log-file /var/log/cluster-autoscaler.log
|
prepare-log-file /var/log/cluster-autoscaler.log
|
||||||
|
|
||||||
# Remove salt comments and replace variables with values
|
# Remove salt comments and replace variables with values
|
||||||
@ -2532,6 +2465,8 @@ function start-kube-addons {
|
|||||||
local -r src_dir="${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty"
|
local -r src_dir="${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty"
|
||||||
local -r dst_dir="/etc/kubernetes/addons"
|
local -r dst_dir="/etc/kubernetes/addons"
|
||||||
|
|
||||||
|
create-kubeconfig "addon-manager" ${ADDON_MANAGER_TOKEN}
|
||||||
|
|
||||||
# prep addition kube-up specific rbac objects
|
# prep addition kube-up specific rbac objects
|
||||||
setup-addon-manifests "addons" "rbac/kubelet-api-auth"
|
setup-addon-manifests "addons" "rbac/kubelet-api-auth"
|
||||||
setup-addon-manifests "addons" "rbac/kubelet-cert-rotation"
|
setup-addon-manifests "addons" "rbac/kubelet-cert-rotation"
|
||||||
@ -2765,7 +2700,7 @@ function start-lb-controller {
|
|||||||
prepare-log-file /var/log/glbc.log
|
prepare-log-file /var/log/glbc.log
|
||||||
setup-addon-manifests "addons" "cluster-loadbalancing/glbc"
|
setup-addon-manifests "addons" "cluster-loadbalancing/glbc"
|
||||||
setup-addon-manifests "addons" "rbac/cluster-loadbalancing/glbc"
|
setup-addon-manifests "addons" "rbac/cluster-loadbalancing/glbc"
|
||||||
create-l7-lb-controller-kubeconfig
|
create-kubeconfig "l7-lb-controller" ${GCE_GLBC_TOKEN}
|
||||||
|
|
||||||
local -r src_manifest="${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty/glbc.manifest"
|
local -r src_manifest="${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty/glbc.manifest"
|
||||||
local -r dest_manifest="/etc/kubernetes/manifests/glbc.manifest"
|
local -r dest_manifest="/etc/kubernetes/manifests/glbc.manifest"
|
||||||
@ -2884,6 +2819,12 @@ spec:
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function wait-till-apiserver-ready() {
|
||||||
|
until kubectl get nodes; do
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
########### Main Function ###########
|
########### Main Function ###########
|
||||||
function main() {
|
function main() {
|
||||||
echo "Start to configure instance for kubernetes"
|
echo "Start to configure instance for kubernetes"
|
||||||
@ -2938,6 +2879,7 @@ function main() {
|
|||||||
if [[ "${ENABLE_L7_LOADBALANCING:-}" == "glbc" ]]; then
|
if [[ "${ENABLE_L7_LOADBALANCING:-}" == "glbc" ]]; then
|
||||||
GCE_GLBC_TOKEN="$(secure_random 32)"
|
GCE_GLBC_TOKEN="$(secure_random 32)"
|
||||||
fi
|
fi
|
||||||
|
ADDON_MANAGER_TOKEN="$(secure_random 32)"
|
||||||
|
|
||||||
setup-os-params
|
setup-os-params
|
||||||
config-ip-firewall
|
config-ip-firewall
|
||||||
@ -2982,6 +2924,7 @@ function main() {
|
|||||||
start-kube-apiserver
|
start-kube-apiserver
|
||||||
start-kube-controller-manager
|
start-kube-controller-manager
|
||||||
start-kube-scheduler
|
start-kube-scheduler
|
||||||
|
wait-till-apiserver-ready
|
||||||
start-kube-addons
|
start-kube-addons
|
||||||
start-cluster-autoscaler
|
start-cluster-autoscaler
|
||||||
start-lb-controller
|
start-lb-controller
|
||||||
|
@ -30,9 +30,14 @@ spec:
|
|||||||
- mountPath: /var/log
|
- mountPath: /var/log
|
||||||
name: varlog
|
name: varlog
|
||||||
readOnly: false
|
readOnly: false
|
||||||
|
- mountPath: /etc/srv/kubernetes/addon-manager/
|
||||||
|
name: srvkube
|
||||||
|
readOnly: true
|
||||||
env:
|
env:
|
||||||
- name: KUBECTL_EXTRA_PRUNE_WHITELIST
|
- name: KUBECTL_EXTRA_PRUNE_WHITELIST
|
||||||
value: {{kubectl_extra_prune_whitelist}}
|
value: {{kubectl_extra_prune_whitelist}}
|
||||||
|
- name: KUBECTL_OPTS
|
||||||
|
value: '--kubeconfig=/etc/srv/kubernetes/addon-manager/kubeconfig'
|
||||||
volumes:
|
volumes:
|
||||||
- hostPath:
|
- hostPath:
|
||||||
path: /etc/kubernetes/
|
path: /etc/kubernetes/
|
||||||
@ -40,3 +45,6 @@ spec:
|
|||||||
- hostPath:
|
- hostPath:
|
||||||
path: /var/log
|
path: /var/log
|
||||||
name: varlog
|
name: varlog
|
||||||
|
- hostPath:
|
||||||
|
path: /etc/srv/kubernetes/addon-manager/
|
||||||
|
name: srvkube
|
||||||
|
@ -24,6 +24,12 @@ spec:
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
- name: varlog
|
- name: varlog
|
||||||
mountPath: /var/log/kube-addon-manager.log
|
mountPath: /var/log/kube-addon-manager.log
|
||||||
|
- mountPath: /etc/srv/kubernetes/addon-manager/
|
||||||
|
name: srvkube
|
||||||
|
readOnly: true
|
||||||
|
env:
|
||||||
|
- name: KUBECTL_OPTS
|
||||||
|
value: '--kubeconfig=/etc/srv/kubernetes/addon-manager/kubeconfig'
|
||||||
volumes:
|
volumes:
|
||||||
- name: addons
|
- name: addons
|
||||||
hostPath:
|
hostPath:
|
||||||
@ -32,3 +38,6 @@ spec:
|
|||||||
hostPath:
|
hostPath:
|
||||||
path: /var/log/kube-addon-manager.log
|
path: /var/log/kube-addon-manager.log
|
||||||
type: FileOrCreate
|
type: FileOrCreate
|
||||||
|
- hostPath:
|
||||||
|
path: /etc/srv/kubernetes/addon-manager/
|
||||||
|
name: srvkube
|
||||||
|
@ -187,6 +187,30 @@ current-context: kube-scheduler
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function create-addonmanager-kubeconfig {
|
||||||
|
echo "Creating addonmanager kubeconfig file"
|
||||||
|
mkdir -p "${KUBE_ROOT}/k8s_auth_data/addon-manager"
|
||||||
|
cat <<EOF >"${KUBE_ROOT}/k8s_auth_data/addon-manager/kubeconfig"
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Config
|
||||||
|
users:
|
||||||
|
- name: addon-manager
|
||||||
|
user:
|
||||||
|
token: ${ADDON_MANAGER_TOKEN}
|
||||||
|
clusters:
|
||||||
|
- name: local
|
||||||
|
cluster:
|
||||||
|
insecure-skip-tls-verify: true
|
||||||
|
server: https://localhost:443
|
||||||
|
contexts:
|
||||||
|
- context:
|
||||||
|
cluster: local
|
||||||
|
user: addon-manager
|
||||||
|
name: addon-manager
|
||||||
|
current-context: addon-manager
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
function assemble-docker-flags {
|
function assemble-docker-flags {
|
||||||
echo "Assemble docker command line flags"
|
echo "Assemble docker command line flags"
|
||||||
local docker_opts="-p /var/run/docker.pid --iptables=false --ip-masq=false"
|
local docker_opts="-p /var/run/docker.pid --iptables=false --ip-masq=false"
|
||||||
@ -681,6 +705,10 @@ if [[ ! -f "${KUBE_ROOT}/k8s_auth_data/kube-scheduler/kubeconfig" ]]; then
|
|||||||
create-kubescheduler-kubeconfig
|
create-kubescheduler-kubeconfig
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ADDON_MANAGER_TOKEN=$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64 | tr -d "=+/" | dd bs=32 count=1 2>/dev/null)
|
||||||
|
echo "${ADDON_MANAGER_TOKEN},system:addon-manager,admin,system:masters" >> "${KUBE_ROOT}/k8s_auth_data/known_tokens.csv"
|
||||||
|
create-addonmanager-kubeconfig
|
||||||
|
|
||||||
# Mount master PD for etcd and create symbolic links to it.
|
# Mount master PD for etcd and create symbolic links to it.
|
||||||
{
|
{
|
||||||
main_etcd_mount_point="/mnt/disks/master-pd"
|
main_etcd_mount_point="/mnt/disks/master-pd"
|
||||||
|
Loading…
Reference in New Issue
Block a user