Files
T
Manohar Castelino 210cc03586 cloud-native-basic: Simple scripts to setup a kubernetes cluster
Simple set of scripts and slightly modified upstream configurations
of various kubernetes services to setup a kubernetes cluster on
Clearlinux.

Signed-off-by: Ganesh Maharaj Mahalingam <ganesh.mahalingam@intel.com>
Signed-off-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2018-12-04 14:20:50 -08:00

75 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -o errexit
set -o nounset
ADD_NO_PROXY="10.244.0.0/16,10.96.0.0/12"
ADD_NO_PROXY+=",$(hostname -I | sed 's/[[:space:]]/,/g')"
#Install kubernetes and crio
sudo -E swupd update
sudo -E swupd bundle-add cloud-native-basic storage-utils
#Permanently disable swap
swapcount=$(sudo grep '^/dev/\([0-9a-z]*\).*' /proc/swaps | wc -l)
if [ "$swapcount" != "0" ]; then
sudo systemctl mask $(sed -n -e 's#^/dev/\([0-9a-z]*\).*#dev-\1.swap#p' /proc/swaps) 2>/dev/null
else
echo "Swap not enabled"
fi
sudo mkdir -p /etc/sysctl.d/
cat <<EOT | sudo tee /etc/sysctl.d/60-k8s.conf
net.ipv4.ip_forward=1
EOT
sudo systemctl restart systemd-sysctl
#Ensure the modules we need are preloaded
sudo mkdir -p /etc/modules-load.d/
cat <<EOT | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
vhost_vsock
overlay
EOT
hostcount=$(grep '127.0.0.1 localhost' /etc/hosts | wc -l)
if [ "$hostcount" == "0" ]; then
echo "127.0.0.1 localhost `hostname`" | sudo tee -a /etc/hosts
else
echo "/etc/hosts already configured"
fi
sudo systemctl daemon-reload
# This will fail at this point, but puts it into a retry loop that
# will therefore startup later once we have configured with kubeadm.
sudo systemctl enable --now kubelet crio || true
sudo mkdir -p /usr/libexec/cni /opt/cni
sudo ln -s /usr/libexec/cni /opt/cni/bin
#Ensure that the system is ready without requiring a reboot
sudo swapoff -a
sudo modprobe br_netfilter vhost_vsock overlay
set +o nounset
if [[ ${http_proxy} ]] || [[ ${HTTP_PROXY} ]]; then
echo "Setting up proxy stuff...."
# Setup IP for users too
sed_val=${ADD_NO_PROXY//\//\\/}
sudo sed -i "/no_proxy/I s/$/,${sed_val}/g" /etc/environment
sudo sed -i "/no_proxy/I s/\"$/,${sed_val}\"/g" /etc/profile.d/proxy.sh
services=('crio' 'docker' 'kubelet')
for s in "${services[@]}"; do
sudo mkdir -p "/etc/systemd/system/${s}.service.d/"
cat << EOF | sudo tee "/etc/systemd/system/${s}.service.d/proxy.conf"
[Service]
Environment="HTTP_PROXY=${http_proxy}"
Environment="HTTPS_PROXY=${https_proxy}"
Environment="SOCKS_PROXY=${socks_proxy}"
Environment="NO_PROXY=${no_proxy},${ADD_NO_PROXY}"
EOF
done
fi
set -o nounset