mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 10:20:51 +00:00
Merge pull request #115017 from mhmxs/conf-tmp-dir
Make tmp dir configurable and dynamic at local-up-cluster.sh
This commit is contained in:
commit
035271d89b
@ -217,6 +217,7 @@ LOG_LEVEL=${LOG_LEVEL:-3}
|
|||||||
# Use to increase verbosity on particular files, e.g. LOG_SPEC=token_controller*=5,other_controller*=4
|
# Use to increase verbosity on particular files, e.g. LOG_SPEC=token_controller*=5,other_controller*=4
|
||||||
LOG_SPEC=${LOG_SPEC:-""}
|
LOG_SPEC=${LOG_SPEC:-""}
|
||||||
LOG_DIR=${LOG_DIR:-"/tmp"}
|
LOG_DIR=${LOG_DIR:-"/tmp"}
|
||||||
|
TMP_DIR=${TMP_DIR:-$(kube::realpath "$(mktemp -d -t "$(basename "$0").XXXXXX")")}
|
||||||
CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-"remote"}
|
CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-"remote"}
|
||||||
CONTAINER_RUNTIME_ENDPOINT=${CONTAINER_RUNTIME_ENDPOINT:-"unix:///run/containerd/containerd.sock"}
|
CONTAINER_RUNTIME_ENDPOINT=${CONTAINER_RUNTIME_ENDPOINT:-"unix:///run/containerd/containerd.sock"}
|
||||||
RUNTIME_REQUEST_TIMEOUT=${RUNTIME_REQUEST_TIMEOUT:-"2m"}
|
RUNTIME_REQUEST_TIMEOUT=${RUNTIME_REQUEST_TIMEOUT:-"2m"}
|
||||||
@ -412,7 +413,7 @@ function start_etcd {
|
|||||||
|
|
||||||
function set_service_accounts {
|
function set_service_accounts {
|
||||||
SERVICE_ACCOUNT_LOOKUP=${SERVICE_ACCOUNT_LOOKUP:-true}
|
SERVICE_ACCOUNT_LOOKUP=${SERVICE_ACCOUNT_LOOKUP:-true}
|
||||||
SERVICE_ACCOUNT_KEY=${SERVICE_ACCOUNT_KEY:-/tmp/kube-serviceaccount.key}
|
SERVICE_ACCOUNT_KEY=${SERVICE_ACCOUNT_KEY:-${TMP_DIR}/kube-serviceaccount.key}
|
||||||
# Generate ServiceAccount key if needed
|
# Generate ServiceAccount key if needed
|
||||||
if [[ ! -f "${SERVICE_ACCOUNT_KEY}" ]]; then
|
if [[ ! -f "${SERVICE_ACCOUNT_KEY}" ]]; then
|
||||||
mkdir -p "$(dirname "${SERVICE_ACCOUNT_KEY}")"
|
mkdir -p "$(dirname "${SERVICE_ACCOUNT_KEY}")"
|
||||||
@ -511,7 +512,7 @@ function start_apiserver {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "${EGRESS_SELECTOR_CONFIG_FILE:-}" ]]; then
|
if [[ -z "${EGRESS_SELECTOR_CONFIG_FILE:-}" ]]; then
|
||||||
cat <<EOF > /tmp/kube_egress_selector_configuration.yaml
|
cat <<EOF > "${TMP_DIR}"/kube_egress_selector_configuration.yaml
|
||||||
apiVersion: apiserver.k8s.io/v1beta1
|
apiVersion: apiserver.k8s.io/v1beta1
|
||||||
kind: EgressSelectorConfiguration
|
kind: EgressSelectorConfiguration
|
||||||
egressSelections:
|
egressSelections:
|
||||||
@ -525,18 +526,18 @@ egressSelections:
|
|||||||
connection:
|
connection:
|
||||||
proxyProtocol: Direct
|
proxyProtocol: Direct
|
||||||
EOF
|
EOF
|
||||||
EGRESS_SELECTOR_CONFIG_FILE="/tmp/kube_egress_selector_configuration.yaml"
|
EGRESS_SELECTOR_CONFIG_FILE="${TMP_DIR}/kube_egress_selector_configuration.yaml"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -z "${AUDIT_POLICY_FILE}" ]]; then
|
if [[ -z "${AUDIT_POLICY_FILE}" ]]; then
|
||||||
cat <<EOF > /tmp/kube-audit-policy-file
|
cat <<EOF > "${TMP_DIR}"/kube-audit-policy-file
|
||||||
# Log all requests at the Metadata level.
|
# Log all requests at the Metadata level.
|
||||||
apiVersion: audit.k8s.io/v1
|
apiVersion: audit.k8s.io/v1
|
||||||
kind: Policy
|
kind: Policy
|
||||||
rules:
|
rules:
|
||||||
- level: Metadata
|
- level: Metadata
|
||||||
EOF
|
EOF
|
||||||
AUDIT_POLICY_FILE="/tmp/kube-audit-policy-file"
|
AUDIT_POLICY_FILE="${TMP_DIR}/kube-audit-policy-file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
APISERVER_LOG=${LOG_DIR}/kube-apiserver.log
|
APISERVER_LOG=${LOG_DIR}/kube-apiserver.log
|
||||||
@ -734,7 +735,7 @@ function start_kubelet {
|
|||||||
generate_kubelet_certs
|
generate_kubelet_certs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat <<EOF > /tmp/kubelet.yaml
|
cat <<EOF > "${TMP_DIR}"/kubelet.yaml
|
||||||
apiVersion: kubelet.config.k8s.io/v1beta1
|
apiVersion: kubelet.config.k8s.io/v1beta1
|
||||||
kind: KubeletConfiguration
|
kind: KubeletConfiguration
|
||||||
address: "${KUBELET_HOST}"
|
address: "${KUBELET_HOST}"
|
||||||
@ -755,7 +756,7 @@ resolvConf: "${KUBELET_RESOLV_CONF}"
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
if [[ "$FEATURE_GATES" == *KubeletTracing=true* ]]; then
|
if [[ "$FEATURE_GATES" == *KubeletTracing=true* ]]; then
|
||||||
cat <<EOF >> /tmp/kubelet.yaml
|
cat <<EOF >> "${TMP_DIR}"/kubelet.yaml
|
||||||
tracing:
|
tracing:
|
||||||
endpoint: localhost:4317 # the default value
|
endpoint: localhost:4317 # the default value
|
||||||
samplingRatePerMillion: 1000000 # sample always
|
samplingRatePerMillion: 1000000 # sample always
|
||||||
@ -813,11 +814,11 @@ EOF
|
|||||||
if [[ -n ${FEATURE_GATES} ]]; then
|
if [[ -n ${FEATURE_GATES} ]]; then
|
||||||
parse_feature_gates "${FEATURE_GATES}"
|
parse_feature_gates "${FEATURE_GATES}"
|
||||||
fi
|
fi
|
||||||
} >>/tmp/kubelet.yaml
|
} >>"${TMP_DIR}"/kubelet.yaml
|
||||||
|
|
||||||
# shellcheck disable=SC2024
|
# shellcheck disable=SC2024
|
||||||
sudo -E "${GO_OUT}/kubelet" "${all_kubelet_flags[@]}" \
|
sudo -E "${GO_OUT}/kubelet" "${all_kubelet_flags[@]}" \
|
||||||
--config=/tmp/kubelet.yaml >"${KUBELET_LOG}" 2>&1 &
|
--config="${TMP_DIR}"/kubelet.yaml >"${KUBELET_LOG}" 2>&1 &
|
||||||
KUBELET_PID=$!
|
KUBELET_PID=$!
|
||||||
|
|
||||||
# Quick check that kubelet is running.
|
# Quick check that kubelet is running.
|
||||||
@ -837,7 +838,7 @@ function start_kubeproxy {
|
|||||||
wait_node_ready
|
wait_node_ready
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat <<EOF > /tmp/kube-proxy.yaml
|
cat <<EOF > "${TMP_DIR}"/kube-proxy.yaml
|
||||||
apiVersion: kubeproxy.config.k8s.io/v1alpha1
|
apiVersion: kubeproxy.config.k8s.io/v1alpha1
|
||||||
kind: KubeProxyConfiguration
|
kind: KubeProxyConfiguration
|
||||||
clientConnection:
|
clientConnection:
|
||||||
@ -854,7 +855,7 @@ conntrack:
|
|||||||
EOF
|
EOF
|
||||||
if [[ -n ${FEATURE_GATES} ]]; then
|
if [[ -n ${FEATURE_GATES} ]]; then
|
||||||
parse_feature_gates "${FEATURE_GATES}"
|
parse_feature_gates "${FEATURE_GATES}"
|
||||||
fi >>/tmp/kube-proxy.yaml
|
fi >>"${TMP_DIR}"/kube-proxy.yaml
|
||||||
|
|
||||||
if [[ "${REUSE_CERTS}" != true ]]; then
|
if [[ "${REUSE_CERTS}" != true ]]; then
|
||||||
generate_kubeproxy_certs
|
generate_kubeproxy_certs
|
||||||
@ -863,7 +864,7 @@ EOF
|
|||||||
# shellcheck disable=SC2024
|
# shellcheck disable=SC2024
|
||||||
sudo "${GO_OUT}/kube-proxy" \
|
sudo "${GO_OUT}/kube-proxy" \
|
||||||
--v="${LOG_LEVEL}" \
|
--v="${LOG_LEVEL}" \
|
||||||
--config=/tmp/kube-proxy.yaml \
|
--config="${TMP_DIR}"/kube-proxy.yaml \
|
||||||
--master="https://${API_HOST}:${API_SECURE_PORT}" >"${PROXY_LOG}" 2>&1 &
|
--master="https://${API_HOST}:${API_SECURE_PORT}" >"${PROXY_LOG}" 2>&1 &
|
||||||
PROXY_PID=$!
|
PROXY_PID=$!
|
||||||
}
|
}
|
||||||
@ -871,7 +872,7 @@ EOF
|
|||||||
function start_kubescheduler {
|
function start_kubescheduler {
|
||||||
SCHEDULER_LOG=${LOG_DIR}/kube-scheduler.log
|
SCHEDULER_LOG=${LOG_DIR}/kube-scheduler.log
|
||||||
|
|
||||||
cat <<EOF > /tmp/kube-scheduler.yaml
|
cat <<EOF > "${TMP_DIR}"/kube-scheduler.yaml
|
||||||
apiVersion: kubescheduler.config.k8s.io/v1
|
apiVersion: kubescheduler.config.k8s.io/v1
|
||||||
kind: KubeSchedulerConfiguration
|
kind: KubeSchedulerConfiguration
|
||||||
clientConnection:
|
clientConnection:
|
||||||
@ -881,7 +882,7 @@ leaderElection:
|
|||||||
EOF
|
EOF
|
||||||
${CONTROLPLANE_SUDO} "${GO_OUT}/kube-scheduler" \
|
${CONTROLPLANE_SUDO} "${GO_OUT}/kube-scheduler" \
|
||||||
--v="${LOG_LEVEL}" \
|
--v="${LOG_LEVEL}" \
|
||||||
--config=/tmp/kube-scheduler.yaml \
|
--config="${TMP_DIR}"/kube-scheduler.yaml \
|
||||||
--feature-gates="${FEATURE_GATES}" \
|
--feature-gates="${FEATURE_GATES}" \
|
||||||
--authentication-kubeconfig "${CERT_DIR}"/scheduler.kubeconfig \
|
--authentication-kubeconfig "${CERT_DIR}"/scheduler.kubeconfig \
|
||||||
--authorization-kubeconfig "${CERT_DIR}"/scheduler.kubeconfig \
|
--authorization-kubeconfig "${CERT_DIR}"/scheduler.kubeconfig \
|
||||||
@ -956,9 +957,17 @@ if [[ "${START_MODE}" != "kubeletonly" ]]; then
|
|||||||
else
|
else
|
||||||
echo "Local Kubernetes cluster is running."
|
echo "Local Kubernetes cluster is running."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "Configurations:"
|
||||||
|
for f in "${TMP_DIR}"/*; do
|
||||||
|
echo " ${f}"
|
||||||
|
done
|
||||||
|
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
||||||
Logs:
|
Logs:
|
||||||
|
${ETCD_LOGFILE:-}
|
||||||
${APISERVER_LOG:-}
|
${APISERVER_LOG:-}
|
||||||
${CTLRMGR_LOG:-}
|
${CTLRMGR_LOG:-}
|
||||||
${CLOUD_CTLRMGR_LOG:-}
|
${CLOUD_CTLRMGR_LOG:-}
|
||||||
@ -1030,13 +1039,13 @@ function parse_eviction {
|
|||||||
function install_cni {
|
function install_cni {
|
||||||
cni_plugin_sha=CNI_PLUGINS_${CNI_TARGETARCH^^}_SHA256SUM
|
cni_plugin_sha=CNI_PLUGINS_${CNI_TARGETARCH^^}_SHA256SUM
|
||||||
echo "Installing CNI plugin binaries ..." \
|
echo "Installing CNI plugin binaries ..." \
|
||||||
&& curl -sSL --retry 5 --output /tmp/cni."${CNI_TARGETARCH}".tgz "${CNI_PLUGINS_URL}" \
|
&& curl -sSL --retry 5 --output "${TMP_DIR}"/cni."${CNI_TARGETARCH}".tgz "${CNI_PLUGINS_URL}" \
|
||||||
&& echo "${!cni_plugin_sha} /tmp/cni.${CNI_TARGETARCH}.tgz" | tee /tmp/cni.sha256 \
|
&& echo "${!cni_plugin_sha} ${TMP_DIR}/cni.${CNI_TARGETARCH}.tgz" | tee "${TMP_DIR}"/cni.sha256 \
|
||||||
&& sha256sum --ignore-missing -c /tmp/cni.sha256 \
|
&& sha256sum --ignore-missing -c "${TMP_DIR}"/cni.sha256 \
|
||||||
&& rm -f /tmp/cni.sha256 \
|
&& rm -f "${TMP_DIR}"/cni.sha256 \
|
||||||
&& sudo mkdir -p /opt/cni/bin \
|
&& sudo mkdir -p /opt/cni/bin \
|
||||||
&& sudo tar -C /opt/cni/bin -xzvf /tmp/cni."${CNI_TARGETARCH}".tgz \
|
&& sudo tar -C /opt/cni/bin -xzvf "${TMP_DIR}"/cni."${CNI_TARGETARCH}".tgz \
|
||||||
&& rm -rf /tmp/cni."${CNI_TARGETARCH}".tgz \
|
&& rm -rf "${TMP_DIR}"/cni."${CNI_TARGETARCH}".tgz \
|
||||||
&& sudo find /opt/cni/bin -type f -not \( \
|
&& sudo find /opt/cni/bin -type f -not \( \
|
||||||
-iname host-local \
|
-iname host-local \
|
||||||
-o -iname bridge \
|
-o -iname bridge \
|
||||||
@ -1139,7 +1148,7 @@ if [ "${GO_OUT}" == "" ]; then
|
|||||||
fi
|
fi
|
||||||
echo "Detected host and ready to start services. Doing some housekeeping first..."
|
echo "Detected host and ready to start services. Doing some housekeeping first..."
|
||||||
echo "Using GO_OUT ${GO_OUT}"
|
echo "Using GO_OUT ${GO_OUT}"
|
||||||
export KUBELET_CIDFILE=/tmp/kubelet.cid
|
export KUBELET_CIDFILE=${TMP_DIR}/kubelet.cid
|
||||||
if [[ "${ENABLE_DAEMON}" = false ]]; then
|
if [[ "${ENABLE_DAEMON}" = false ]]; then
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user