#!/bin/bash echo "" echo "... ] INIT METAL \\m/ [ ..." HOME=$( cd "$(dirname "$0")" && pwd ) source $HOME/../config echo "] prepare system repositories" apt update -q apt upgrade -y echo "] installing common tools" apt install -y sudo software-properties-common apt-transport-https daemonize htop iotop strace mc vim-nox openssl ca-certificates gnupg2 vim-nox attr jq tree apache2-utils echo "] install network tools" apt install -y iptables arptables ebtables conntrack ipset bridge-utils socat ipip rsync iftop nmap dnsutils wget curl echo "] installing network storage clients" apt install -y open-iscsi nfs-common lvm2 thin-provisioning-tools ceph-common echo "] remove swap because kubernetes doesnt like it" swapoff -a sed -i '/ swap / s/^/#/' /etc/fstab echo "] execute modprobe on node - workaround for heketi gluster" modprobe dm_snapshot modprobe dm_thin_pool modprobe dm_mirror echo "] prepare iptables" modprobe ipip modprobe xt_set cat < /etc/sysctl.d/k8s.conf net.ipv4.ip_forward=1 net.ipv4.conf.all.forwarding=1 net.ipv4.ip_nonlocal_bind=1 net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 net.netfilter.nf_conntrack_max=1000000 net.ipv6.conf.all.forwarding=1 # Disable IPv6 net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.lo.disable_ipv6=1 # Increase the inotify limits fs.inotify.max_user_instances=1024 fs.inotify.max_user_watches=65536 EOF sysctl --system echo "] unpacking kubectl" gzip -v -c -d $HOME/../blobs/kubectl.gz > /usr/local/bin/kubectl chmod +x /usr/local/bin/kubectl echo "] unpacking etcdctl" gzip -v -c -d $HOME/../blobs/etcdctl.gz > /usr/local/bin/etcdctl chmod +x /usr/local/bin/etcdctl echo "] unpacking calicoctl" gzip -v -c -d $HOME/../blobs/calicoctl.gz > /usr/local/bin/calicoctl chmod +x /usr/local/bin/calicoctl echo "] unpacking helm chart manager" gzip -v -c -d $HOME/../blobs/helm.gz > /usr/local/bin/helm chmod +x /usr/local/bin/helm echo "] unpacking k9s cli tool" gzip -v -c -d $HOME/../blobs/k9s.gz > /usr/local/bin/k9s chmod +x /usr/local/bin/k9s echo "] copy some additional scripts" cp -v $HOME/../tools/k /usr/local/bin cp -v $HOME/../tools/logs-proxy /usr/local/bin cp -v $HOME/../tools/tcp-proxy /usr/local/bin echo "] create k8s service dirs" mkdir -p ${CONF_DIR}/{kube-controller-manager,kubelet,kube-proxy,kube-scheduler} mkdir -p ${CONF_DIR} mkdir -p ${CONF_DIR}/manifests