mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
Add install script for get.k3s.io
This commit is contained in:
parent
90357b4d74
commit
263722ccf2
159
install.sh
Executable file
159
install.sh
Executable file
@ -0,0 +1,159 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
VERSION=v0.1.0-rc3
|
||||
|
||||
info()
|
||||
{
|
||||
echo "[INFO] " "$@"
|
||||
}
|
||||
|
||||
fatal()
|
||||
{
|
||||
echo "[ERROR] " "$@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARCH=`uname -m`
|
||||
|
||||
case $ARCH in
|
||||
amd64)
|
||||
ARCH=amd64
|
||||
SUFFIX=
|
||||
;;
|
||||
x86_64)
|
||||
ARCH=amd64
|
||||
SUFFIX=
|
||||
;;
|
||||
arm64)
|
||||
ARCH=arm64
|
||||
SUFFIX=-${ARCH}
|
||||
;;
|
||||
aarch64)
|
||||
ARCH=arm64
|
||||
SUFFIX=-${ARCH}
|
||||
;;
|
||||
arm*)
|
||||
ARCH=arm
|
||||
SUFFIX=-${ARCH}
|
||||
;;
|
||||
*)
|
||||
fatal Unknown architecture $ARCH
|
||||
esac
|
||||
|
||||
BINURL=https://github.com/ibuildthecloud/k3s/releases/download/${VERSION}/k3s${SUFFIX}
|
||||
HASHURL=https://github.com/ibuildthecloud/k3s/releases/download/${VERSION}/sha256sum-${ARCH}.txt
|
||||
|
||||
if [ -d /run/systemd ]; then
|
||||
SYSTEMD=true
|
||||
else
|
||||
fatal "Can not find systemd or Docker to use as a process supervisor for k3s"
|
||||
fi
|
||||
|
||||
SUDO=sudo
|
||||
if [ `id -u` = 0 ]; then
|
||||
SUDO=
|
||||
fi
|
||||
|
||||
if [ "$SYSTEMD" = "true" ]; then
|
||||
info Creating uninstall script /usr/local/bin/k3s-uninstall.sh
|
||||
TMPUNINSTALL=`mktemp -t k3s-install.XXXXXXXXXX`
|
||||
cat > $TMPUNINSTALL << "EOF"
|
||||
#!/bin/sh
|
||||
set -x
|
||||
systemctl stop k3s
|
||||
systemctl disable k3s
|
||||
systemctl daemon-reload
|
||||
rm -f /etc/systemd/system/k3s.service
|
||||
rm -f /usr/local/bin/k3s
|
||||
if [ -L /usr/local/bin/kubectl ]; then
|
||||
rm -f /usr/local/bin/kubectl
|
||||
fi
|
||||
if [ -L /usr/local/bin/crictl ]; then
|
||||
rm -f /usr/local/bin/crictl
|
||||
fi
|
||||
if [ -e /sys/fs/cgroup/systemd/system.slice/k3s.service/cgroup.procs ]; then
|
||||
kill -9 `cat /sys/fs/cgroup/systemd/system.slice/k3s.service/cgroup.procs`
|
||||
fi
|
||||
umount `cat /proc/self/mounts | awk '{print $2}' | grep '^/run/k3s'`
|
||||
umount `cat /proc/self/mounts | awk '{print $2}' | grep '^/var/lib/rancher/k3s'`
|
||||
|
||||
rm -rf /var/lib/rancher/k3s
|
||||
|
||||
rm -f /usr/local/bin/k3s-uninstall.sh
|
||||
EOF
|
||||
chmod 755 $TMPUNINSTALL
|
||||
$SUDO chown root:root $TMPUNINSTALL
|
||||
$SUDO mv -f $TMPUNINSTALL /usr/local/bin/k3s-uninstall.sh
|
||||
|
||||
CURL=`which curl`
|
||||
WGET=`which wget`
|
||||
|
||||
if [ -n "$CURL" ]; then
|
||||
TMPHASH=`mktemp -t k3s-install.XXXXXXXXXX`
|
||||
TMPBIN=`mktemp -t k3s-install.XXXXXXXXXX`
|
||||
|
||||
info Downloading $HASHURL
|
||||
$CURL -o $TMPHASH -sfL $HASHURL
|
||||
|
||||
info Downloading $BINURL
|
||||
$CURL -o $TMPBIN -sfL $BINURL
|
||||
fi
|
||||
|
||||
|
||||
info Verifying download
|
||||
EXPECTED=`grep k3s $TMPHASH | awk '{print $1}'`
|
||||
ACTUAL=`sha256sum $TMPBIN | awk '{print $1}'`
|
||||
rm -f $TMPHASH
|
||||
if [ "$EXPECTED" != "$ACTUAL" ]; then
|
||||
rm -f $TMPBIN
|
||||
fatal "Download sha256 does not match ${EXPECTED} got ${ACTUAL}"
|
||||
fi
|
||||
|
||||
chmod 755 $TMPBIN
|
||||
info Installing k3s to /usr/local/bin/k3s
|
||||
|
||||
$SUDO chown root:root $TMPBIN
|
||||
$SUDO mv -f $TMPBIN /usr/local/bin/k3s
|
||||
|
||||
if [ ! -e /usr/local/bin/kubectl ]; then
|
||||
info Creating /usr/local/bin/kubectl symlink to k3s
|
||||
$SUDO ln -s k3s /usr/local/bin/kubectl
|
||||
fi
|
||||
|
||||
if [ ! -e /usr/local/bin/crictl ]; then
|
||||
info Creating /usr/local/bin/crictl symlink to k3s
|
||||
$SUDO ln -s k3s /usr/local/bin/crictl
|
||||
fi
|
||||
|
||||
info systemd: Creating /etc/systemd/system/k3s.service
|
||||
$SUDO tee /etc/systemd/system/k3s.service >/dev/null << "EOF"
|
||||
[Unit]
|
||||
Description=Lightweight Kubernetes
|
||||
Documentation=https://k3s.io
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
ExecStartPre=-/sbin/modprobe br_netfilter
|
||||
ExecStartPre=-/sbin/modprobe overlay
|
||||
ExecStart=/usr/local/bin/k3s server
|
||||
KillMode=process
|
||||
Delegate=yes
|
||||
LimitNOFILE=infinity
|
||||
LimitNPROC=infinity
|
||||
LimitCORE=infinity
|
||||
TasksMax=infinity
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
info systemd: Enabling k3s unit
|
||||
$SUDO systemctl enable k3s.service >/dev/null
|
||||
$SUDO systemctl daemon-reload >/dev/null
|
||||
|
||||
info systemd: Starting k3s
|
||||
$SUDO systemctl start k3s.service
|
||||
else
|
||||
fatal "Can not find systemd"
|
||||
fi
|
Loading…
Reference in New Issue
Block a user