Skip to content

Commit

Permalink
Merge pull request kubernetes#24219 from andyzheng0831/automated-cher…
Browse files Browse the repository at this point in the history
…ry-pick-of-#24144-upstream-release-1.2

Automatic merge from submit-queue

Automated cherry pick of kubernetes#24144

Cherry pick of kubernetes#24144 on release-1.2.
  • Loading branch information
k8s-merge-robot committed Apr 14, 2016
2 parents 6ea81bf + 47ab997 commit 04a9cab
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 53 deletions.
29 changes: 15 additions & 14 deletions cluster/gce/trusty/configure-helper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ create_master_kubelet_auth() {
# $5: pod name, which should be either etcd or etcd-events
prepare_etcd_manifest() {
etcd_temp_file="/tmp/$5"
cp /run/kube-manifests/kubernetes/trusty/etcd.manifest "${etcd_temp_file}"
cp /home/kubernetes/kube-manifests/kubernetes/trusty/etcd.manifest "${etcd_temp_file}"
sed -i -e "s@{{ *suffix *}}@$1@g" "${etcd_temp_file}"
sed -i -e "s@{{ *port *}}@$2@g" "${etcd_temp_file}"
sed -i -e "s@{{ *server_port *}}@$3@g" "${etcd_temp_file}"
Expand Down Expand Up @@ -415,7 +415,7 @@ start_kube_apiserver() {
prepare_log_file /var/log/kube-apiserver.log
# Load the docker image from file.
echo "Try to load docker image file kube-apiserver.tar"
timeout 30 docker load -i /run/kube-docker-files/kube-apiserver.tar
timeout 30 docker load -i /home/kubernetes/kube-docker-files/kube-apiserver.tar

# Calculate variables and assemble the command line.
params="--cloud-provider=gce --address=127.0.0.1 --etcd-servers=http://127.0.0.1:4001 --tls-cert-file=/etc/srv/kubernetes/server.cert --tls-private-key-file=/etc/srv/kubernetes/server.key --secure-port=443 --client-ca-file=/etc/srv/kubernetes/ca.crt --token-auth-file=/etc/srv/kubernetes/known_tokens.csv --basic-auth-file=/etc/srv/kubernetes/basic_auth.csv --allow-privileged=true"
Expand Down Expand Up @@ -445,9 +445,9 @@ start_kube_apiserver() {
readonly vm_external_ip=$(curl --fail --silent -H 'Metadata-Flavor: Google' "http://metadata/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip")
params="${params} --cloud-config=/etc/gce.conf --advertise-address=${vm_external_ip} --ssh-user=${PROXY_SSH_USER} --ssh-keyfile=/etc/srv/sshproxy/.sshkeyfile"
fi
readonly kube_apiserver_docker_tag=$(cat /run/kube-docker-files/kube-apiserver.docker_tag)
readonly kube_apiserver_docker_tag=$(cat /home/kubernetes/kube-docker-files/kube-apiserver.docker_tag)

src_file="/run/kube-manifests/kubernetes/trusty/kube-apiserver.manifest"
src_file="/home/kubernetes/kube-manifests/kubernetes/trusty/kube-apiserver.manifest"
remove_salt_config_comments "${src_file}"
# Evaluate variables
sed -i -e "s@{{params}}@${params}@g" "${src_file}"
Expand Down Expand Up @@ -477,7 +477,7 @@ start_kube_controller_manager() {
prepare_log_file /var/log/kube-controller-manager.log
# Load the docker image from file.
echo "Try to load docker image file kube-controller-manager.tar"
timeout 30 docker load -i /run/kube-docker-files/kube-controller-manager.tar
timeout 30 docker load -i /home/kubernetes/kube-docker-files/kube-controller-manager.tar

# Calculate variables and assemble the command line.
params="--master=127.0.0.1:8080 --cloud-provider=gce --root-ca-file=/etc/srv/kubernetes/ca.crt --service-account-private-key-file=/etc/srv/kubernetes/server.key"
Expand All @@ -504,9 +504,9 @@ start_kube_controller_manager() {
if [ -n "${CONTROLLER_MANAGER_TEST_ARGS:-}" ]; then
params="${params} ${CONTROLLER_MANAGER_TEST_ARGS}"
fi
readonly kube_rc_docker_tag=$(cat /run/kube-docker-files/kube-controller-manager.docker_tag)
readonly kube_rc_docker_tag=$(cat /home/kubernetes/kube-docker-files/kube-controller-manager.docker_tag)

src_file="/run/kube-manifests/kubernetes/trusty/kube-controller-manager.manifest"
src_file="/home/kubernetes/kube-manifests/kubernetes/trusty/kube-controller-manager.manifest"
remove_salt_config_comments "${src_file}"
# Evaluate variables
sed -i -e "s@{{srv_kube_path}}@/etc/srv/kubernetes@g" "${src_file}"
Expand All @@ -528,9 +528,10 @@ start_kube_controller_manager() {
# DOCKER_REGISTRY
start_kube_scheduler() {
prepare_log_file /var/log/kube-scheduler.log
kube_home="home/kubernetes"
# Load the docker image from file.
echo "Try to load docker image file kube-scheduler.tar"
timeout 30 docker load -i /run/kube-docker-files/kube-scheduler.tar
timeout 30 docker load -i "${kube_home}/kube-docker-files/kube-scheduler.tar"

# Calculate variables and set them in the manifest.
params=""
Expand All @@ -542,10 +543,10 @@ start_kube_scheduler() {
if [ -n "${SCHEDULER_TEST_ARGS:-}" ]; then
params="${params} ${SCHEDULER_TEST_ARGS}"
fi
readonly kube_scheduler_docker_tag=$(cat /run/kube-docker-files/kube-scheduler.docker_tag)
readonly kube_scheduler_docker_tag=$(cat "${kube_home}/kube-docker-files/kube-scheduler.docker_tag")

# Remove salt comments and replace variables with values
src_file="/run/kube-manifests/kubernetes/trusty/kube-scheduler.manifest"
src_file="${kube_home}/kube-manifests/kubernetes/trusty/kube-scheduler.manifest"
remove_salt_config_comments "${src_file}"
sed -i -e "s@{{params}}@${params}@g" "${src_file}"
sed -i -e "s@{{pillar\['kube_docker_registry'\]}}@${DOCKER_REGISTRY}@g" "${src_file}"
Expand All @@ -557,9 +558,9 @@ start_kube_scheduler() {
start_fluentd() {
if [ "${ENABLE_NODE_LOGGING:-}" = "true" ]; then
if [ "${LOGGING_DESTINATION:-}" = "gcp" ]; then
cp /run/kube-manifests/kubernetes/fluentd-gcp.yaml /etc/kubernetes/manifests/
cp /home/kubernetes/kube-manifests/kubernetes/fluentd-gcp.yaml /etc/kubernetes/manifests/
elif [ "${LOGGING_DESTINATION:-}" = "elasticsearch" ]; then
cp /run/kube-manifests/kubernetes/fluentd-es.yaml /etc/kubernetes/manifests/
cp /home/kubernetes/kube-manifests/kubernetes/fluentd-es.yaml /etc/kubernetes/manifests/
fi
fi
}
Expand All @@ -569,7 +570,7 @@ start_fluentd() {
# $1: addon category under /etc/kubernetes
# $2: manifest source dir
setup_addon_manifests() {
src_dir="/run/kube-manifests/kubernetes/trusty/$2"
src_dir="/home/kubernetes/kube-manifests/kubernetes/trusty/$2"
dst_dir="/etc/kubernetes/$1/$2"
if [ ! -d "${dst_dir}" ]; then
mkdir -p "${dst_dir}"
Expand All @@ -593,7 +594,7 @@ setup_addon_manifests() {

# Prepares the manifests of k8s addons static pods.
prepare_kube_addons() {
addon_src_dir="/run/kube-manifests/kubernetes/trusty"
addon_src_dir="/home/kubernetes/kube-manifests/kubernetes/trusty"
addon_dst_dir="/etc/kubernetes/addons"
# Set up manifests of other addons.
if [ "${ENABLE_CLUSTER_MONITORING:-}" = "influxdb" ] || \
Expand Down
65 changes: 35 additions & 30 deletions cluster/gce/trusty/configure.sh
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ download_or_bust() {
}

# Downloads kubernetes binaries and kube-system manifest tarball, unpacks them,
# and places them into suitable directories.
# and places them into suitable directories. Files are placed in /home/kubernetes.
install_kube_binary_config() {
# Upstart does not support shell array well. Put urls in a temp file with one
# url at a line, and we will use 'read' command to get them one-by-one.
Expand All @@ -90,7 +90,9 @@ install_kube_binary_config() {
tmp_manifests_urls=$(mktemp /tmp/kube-temp.XXXXXX)
echo "${KUBE_MANIFESTS_TAR_URL}" | tr "," "\n" > "${tmp_manifests_urls}"

cd /tmp
kube_home="/home/kubernetes"
mkdir -p "${kube_home}"
cd "${kube_home}"
read -r server_binary_tar_url < "${tmp_binary_urls}"
readonly server_binary_tar="${server_binary_tar_url##*/}"
if [ -n "${SERVER_BINARY_TAR_HASH:-}" ]; then
Expand All @@ -102,37 +104,40 @@ install_kube_binary_config() {
fi
echo "Downloading binary release tar"
download_or_bust "${server_binary_tar_hash}" "${tmp_binary_urls}"
tar xzf "/tmp/${server_binary_tar}" -C /tmp/ --overwrite
# Copy docker_tag and image files to /run/kube-docker-files.
mkdir -p /run/kube-docker-files
cp /tmp/kubernetes/server/bin/*.docker_tag /run/kube-docker-files/
tar xzf "${kube_home}/${server_binary_tar}" -C "${kube_home}" --overwrite
# Copy docker_tag and image files to /home/kubernetes/kube-docker-files.
src_dir="${kube_home}/kubernetes/server/bin"
dst_dir="${kube_home}/kube-docker-files"
mkdir -p "${dst_dir}"
cp "${src_dir}/"*.docker_tag "${dst_dir}"
if [ "${KUBERNETES_MASTER:-}" = "false" ]; then
cp /tmp/kubernetes/server/bin/kube-proxy.tar /run/kube-docker-files/
cp "${src_dir}/kube-proxy.tar" "${dst_dir}"
else
cp /tmp/kubernetes/server/bin/kube-apiserver.tar /run/kube-docker-files/
cp /tmp/kubernetes/server/bin/kube-controller-manager.tar /run/kube-docker-files/
cp /tmp/kubernetes/server/bin/kube-scheduler.tar /run/kube-docker-files/
cp -r /tmp/kubernetes/addons /run/kube-docker-files/
cp "${src_dir}/kube-apiserver.tar" "${dst_dir}"
cp "${src_dir}/kube-controller-manager.tar" "${dst_dir}"
cp "${src_dir}/kube-scheduler.tar" "${dst_dir}"
cp -r "${kube_home}/kubernetes/addons" "${dst_dir}"
fi
# Use the binary from the release tarball if they are not preinstalled, or if this is
# a test cluster.
readonly BIN_PATH="/usr/bin"
if ! which kubelet > /dev/null || ! which kubectl > /dev/null; then
cp /tmp/kubernetes/server/bin/kubelet "${BIN_PATH}"
cp /tmp/kubernetes/server/bin/kubectl "${BIN_PATH}"
cp "${src_dir}/kubelet" "${BIN_PATH}"
cp "${src_dir}/kubectl" "${BIN_PATH}"
elif [ "${TEST_CLUSTER:-}" = "true" ]; then
mkdir -p /home/kubernetes/bin
cp /tmp/kubernetes/server/bin/kubelet /home/kubernetes/bin
cp /tmp/kubernetes/server/bin/kubectl /home/kubernetes/bin
mount --bind /home/kubernetes/bin/kubelet "${BIN_PATH}/kubelet"
kube_bin="${kube_home}/bin"
mkdir -p "${kube_bin}"
cp "${src_dir}/kubelet" "${kube_bin}"
cp "${src_dir}/kubectl" "${kube_bin}"
mount --bind "${kube_bin}/kubelet" "${BIN_PATH}/kubelet"
mount --bind -o remount,ro,^noexec "${BIN_PATH}/kubelet" "${BIN_PATH}/kubelet"
mount --bind /home/kubernetes/bin/kubectl "${BIN_PATH}/kubectl"
mount --bind "${kube_bin}/kubectl" "${BIN_PATH}/kubectl"
mount --bind -o remount,ro,^noexec "${BIN_PATH}/kubectl" "${BIN_PATH}/kubectl"
fi

# Put kube-system pods manifests in /etc/kube-manifests/.
mkdir -p /run/kube-manifests
cd /run/kube-manifests
# Put kube-system pods manifests in /home/kubernetes/kube-manifests/.
dst_dir="${kube_home}/kube-manifests"
mkdir -p "${dst_dir}"
read -r manifests_tar_url < "${tmp_manifests_urls}"
readonly manifests_tar="${manifests_tar_url##*/}"
if [ -n "${KUBE_MANIFESTS_TAR_HASH:-}" ]; then
Expand All @@ -144,22 +149,22 @@ install_kube_binary_config() {
fi
echo "Downloading k8s manifests tar"
download_or_bust "${manifests_tar_hash}" "${tmp_manifests_urls}"
tar xzf "/run/kube-manifests/${manifests_tar}" -C /run/kube-manifests/ --overwrite
tar xzf "${kube_home}/${manifests_tar}" -C "${dst_dir}" --overwrite
readonly kube_addon_registry="${KUBE_ADDON_REGISTRY:-gcr.io/google_containers}"
if [ "${kube_addon_registry}" != "gcr.io/google_containers" ]; then
find /run/kube-manifests -name \*.yaml -or -name \*.yaml.in | \
find "${dst_dir}" -name \*.yaml -or -name \*.yaml.in | \
xargs sed -ri "s@(image:\s.*)gcr.io/google_containers@\1${kube_addon_registry}@"
find /run/kube-manifests -name \*.manifest -or -name \*.json | \
find "${dst_dir}" -name \*.manifest -or -name \*.json | \
xargs sed -ri "s@(image\":\s+\")gcr.io/google_containers@\1${kube_addon_registry}@"
fi
cp /run/kube-manifests/kubernetes/trusty/configure-helper.sh /etc/kube-configure-helper.sh
cp "${dst_dir}/kubernetes/trusty/configure-helper.sh" /etc/kube-configure-helper.sh

# Clean up.
rm -rf /tmp/kubernetes
rm -f "/tmp/${server_binary_tar}"
rm -f "/tmp/${server_binary_tar}.sha1"
rm -f "/run/kube-manifests/${manifests_tar}"
rm -f "/run/kube-manifests/${manifests_tar}.sha1"
rm -rf "${kube_home}/kubernetes"
rm -f "${kube_home}/${server_binary_tar}"
rm -f "${kube_home}/${server_binary_tar}.sha1"
rm -f "${kube_home}/${manifests_tar}"
rm -f "${kube_home}/${manifests_tar}.sha1"
rm -f "${tmp_binary_urls}"
rm -f "${tmp_manifests_urls}"
}
18 changes: 9 additions & 9 deletions cluster/gce/trusty/node.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ MIME-Version: 1.0
MIME-Version: 1.0
Content-Type: text/upstart-job; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="kube-install-minion.conf"
Content-Disposition: attachment; filename="kube-install-node.conf"

#upstart-job

Expand Down Expand Up @@ -41,7 +41,7 @@ Content-Disposition: attachment; filename="kube-env.conf"

description "Prepare kube node environment"

start on stopped kube-install-minion
start on stopped kube-install-node

script
set -o errexit
Expand Down Expand Up @@ -71,7 +71,7 @@ Content-Disposition: attachment; filename="kube-install-packages.conf"

description "Install packages needed to run kubernetes"

start on stopped kube-install-minion
start on stopped kube-install-node

script
set -o errexit
Expand Down Expand Up @@ -185,12 +185,12 @@ script
. /etc/kube-configure-helper.sh
. /etc/kube-env
prepare_log_file "/var/log/kube-proxy.log"
# Load the docker image from file /run/kube-docker-files/kube-proxy.tar.
# Load the docker image from file /home/kubernetes/kube-docker-files/kube-proxy.tar.
echo "Try to load docker image file kube-proxy.tar"
timeout 30 docker load -i /run/kube-docker-files/kube-proxy.tar
timeout 30 docker load -i /home/kubernetes/kube-docker-files/kube-proxy.tar
# Copy the manifest to /tmp to manipulate
tmp_file="/tmp/kube-proxy.manifest"
cp -f /run/kube-manifests/kubernetes/kube-proxy.manifest ${tmp_file}
cp -f /home/kubernetes/kube-manifests/kubernetes/kube-proxy.manifest ${tmp_file}
# Remove the lines of salt configuration and replace variables with values.
# NOTE: Changes to variable names in cluster/saltbase/salt/kube-proxy/kube-proxy.manifest
# may break this upstart job.
Expand All @@ -200,7 +200,7 @@ script
if [ -n "${KUBE_DOCKER_REGISTRY:-}" ]; then
kube_docker_registry=${KUBE_DOCKER_REGISTRY}
fi
kube_proxy_docker_tag=$(cat /run/kube-docker-files/kube-proxy.docker_tag)
kube_proxy_docker_tag=$(cat /home/kubernetes/kube-docker-files/kube-proxy.docker_tag)
test_args=""
if [ -n "${KUBEPROXY_TEST_ARGS:-}" ]; then
test_args="${KUBEPROXY_TEST_ARGS}"
Expand Down Expand Up @@ -237,14 +237,14 @@ script
set -o errexit
set -o nounset

# Kube-system pod manifest files are located at /run/kube-manifests/kubernetes.
. /etc/kube-configure-helper.sh
. /etc/kube-env
# Fluentd
start_fluentd
# Kube-registry-proxy
if [ "${ENABLE_CLUSTER_REGISTRY:-}" = "true" ]; then
cp /run/kube-manifests/kubernetes/kube-registry-proxy.yaml /etc/kubernetes/manifests/
cp /home/kubernetes/kube-manifests/kubernetes/kube-registry-proxy.yaml \
/etc/kubernetes/manifests/
fi
end script

Expand Down

0 comments on commit 04a9cab

Please sign in to comment.