c13fc33d85
- Support systemctl enable/start/stop/disable commands during join.sh or genesis.sh Change-Id: I28046afbc55fc1d1af4575778f614f928f0e91c9
118 lines
2.4 KiB
Bash
118 lines
2.4 KiB
Bash
# Disable overwriting our resolv.conf
|
|
#
|
|
resolvconf --disable-updates
|
|
|
|
CURATED_DIRS=(
|
|
/etc/kubernetes
|
|
/var/lib/etcd
|
|
)
|
|
|
|
for DIR in "${CURATED_DIRS[@]}"; do
|
|
mkdir -p "${DIR}"
|
|
chmod 700 "${DIR}"
|
|
done
|
|
|
|
# Unpack prepared files into place
|
|
#
|
|
set +x
|
|
log
|
|
log === Extracting prepared files ===
|
|
{{ decrypt_setup_command }}
|
|
echo "{{ encrypted_tarball | b64enc }}" | base64 -d | {{ decrypt_command }} | tar -zxv -C / | tee /etc/promenade-manifest
|
|
{{ decrypt_teardown_command }}
|
|
set -x
|
|
|
|
for DIR in "${CURATED_DIRS[@]}"; do
|
|
chmod -R go-rwx "${DIR}"
|
|
done
|
|
|
|
# Adding apt repositories
|
|
#
|
|
set +x
|
|
log
|
|
log === Adding APT Keys===
|
|
set -x
|
|
{%- for key in config.get_path('HostSystem:packages.keys', []) %}
|
|
apt-key add - <<"ENDKEY"
|
|
{{ key }}
|
|
ENDKEY
|
|
{%- endfor %}
|
|
|
|
# Disable swap
|
|
#
|
|
set +x
|
|
log
|
|
log === Disabling swap ===
|
|
set -x
|
|
swapoff -a
|
|
sed --in-place '/\bswap\b/d' /etc/fstab
|
|
|
|
# Set proxy variables
|
|
#
|
|
set +x
|
|
log
|
|
log === Setting proxy variables ===
|
|
set -x
|
|
export http_proxy={{ config['KubernetesNetwork:proxy.url'] | default('', true) }}
|
|
export https_proxy={{ config['KubernetesNetwork:proxy.url'] | default('', true) }}
|
|
export no_proxy={{ config.get(kind='KubernetesNetwork') | fill_no_proxy }}
|
|
|
|
|
|
# Install system packages
|
|
#
|
|
set +x
|
|
log
|
|
log === Installing system packages ===
|
|
set -x
|
|
|
|
end=$(($(date +%s) + 600))
|
|
while true; do
|
|
if ! apt-get update; then
|
|
now=$(date +%s)
|
|
if [[ ${now} -gt ${end} ]]; then
|
|
log Failed to update apt-cache.
|
|
exit 1
|
|
fi
|
|
sleep 10
|
|
else
|
|
break
|
|
fi
|
|
done
|
|
|
|
end=$(($(date +%s) + 600))
|
|
while true; do
|
|
if ! DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
{%- for package in config['HostSystem:packages.additional'] | default([]) %}
|
|
{{ package }} \
|
|
{%- endfor %}
|
|
{{ config['HostSystem:packages.required.docker'] }} \
|
|
{{ config['HostSystem:packages.required.socat'] }}; then
|
|
now=$(date +%s)
|
|
if [[ ${now} -gt ${end} ]]; then
|
|
log Failed to install apt packages.
|
|
exit 1
|
|
fi
|
|
sleep 10
|
|
else
|
|
break
|
|
fi
|
|
done
|
|
|
|
# Start core processes
|
|
#
|
|
set +x
|
|
log
|
|
log === Starting Docker and Kubelet ===
|
|
set -x
|
|
systemctl daemon-reload
|
|
|
|
{% for a in ['enable','start','stop','disable'] %}
|
|
{% for u in config.get_units_by_action(a) %}
|
|
systemctl {{ a }} {{ u }}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
|
systemctl restart docker || true
|
|
systemctl enable kubelet
|
|
systemctl restart kubelet
|