diff options
-rw-r--r-- | .SRCINFO | 26 | ||||
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | PKGBUILD | 51 | ||||
-rwxr-xr-x | k3s-killall.sh | 55 | ||||
-rw-r--r-- | k3s.env | 4 | ||||
-rw-r--r-- | k3s.service | 24 |
6 files changed, 166 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..c682478ad844 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,26 @@ +pkgbase = k3s-1.30-bin + pkgdesc = Lightweight Kubernetes + pkgver = 1.30.2+k3s1 + pkgrel = 1 + url = https://k3s.io + arch = x86_64 + arch = armv7h + arch = aarch64 + license = Apache + provides = k3s + conflicts = k3s + backup = etc/conf.d/k3s + source = k3s.service + source = k3s.env + source = k3s-killall.sh + sha256sums = c24735658b766d4e270380181e3ecd537a8e9dce9cb96673f39170b6798ed659 + sha256sums = cde96553e9609791cd9fe1ff33482e33c4cfec22761f7766f5c278a9ce2ec679 + sha256sums = a09747c9541cd22df97adcabc44c09d97a4305a9d976e9bf8191849cb1ce30b6 + source_x86_64 = k3s-1.30.2+k3s1-x86_64::https://github.com/k3s-io/k3s/releases/download/v1.30.2+k3s1/k3s + sha256sums_x86_64 = 77dea8d77d077779f9805ea1775651aa0e9850f972ec0d968fa71423e02f4962 + source_armv7h = k3s-1.30.2+k3s1-armv7h::https://github.com/k3s-io/k3s/releases/download/v1.30.2+k3s1/k3s-armhf + sha256sums_armv7h = 000778d81afdb1965c804b5f4fec8411f2a0ba2a8a326c22a53dec402db56566 + source_aarch64 = k3s-1.30.2+k3s1-aarch64::https://github.com/k3s-io/k3s/releases/download/v1.30.2+k3s1/k3s-arm64 + sha256sums_aarch64 = 3f24ab230a520e92f09afd036c06d416143cd8ac7176a967f95cda441150bd19 + +pkgname = k3s-1.30-bin diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..e8ed9642b71b --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/pkg/ +/src/ +k3s-*.pkg.tar.gz +k3s-*-aarch64 +k3s-*-armv7h +k3s-*-x86_64 diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..a332af1786c3 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,51 @@ +# Maintainer: amiga23 <t.scheller@email.de> +# Contributor: FabioLolix <fabio.loli@disroot.org> +# Contributor: duxet <duxetlg@gmail.com> +pkgname=k3s-1.30-bin +pkgver=1.30.2+k3s1 +pkgrel=1 +pkgdesc="Lightweight Kubernetes" +url="https://k3s.io" +license=('Apache') +arch=('x86_64' 'armv7h' 'aarch64') +provides=('k3s') +conflicts=('k3s') + +backup=("etc/conf.d/k3s") + +source=( + "k3s.service" + "k3s.env" + "k3s-killall.sh" +) + +source_x86_64=( + "k3s-${pkgver}-x86_64::https://github.com/k3s-io/k3s/releases/download/v${pkgver}/k3s" +) + +source_armv7h=( + "k3s-${pkgver}-armv7h::https://github.com/k3s-io/k3s/releases/download/v${pkgver}/k3s-armhf" +) + +source_aarch64=( + "k3s-${pkgver}-aarch64::https://github.com/k3s-io/k3s/releases/download/v${pkgver}/k3s-arm64" +) +sha256sums=('c24735658b766d4e270380181e3ecd537a8e9dce9cb96673f39170b6798ed659' + 'cde96553e9609791cd9fe1ff33482e33c4cfec22761f7766f5c278a9ce2ec679' + 'a09747c9541cd22df97adcabc44c09d97a4305a9d976e9bf8191849cb1ce30b6') +sha256sums_x86_64=('77dea8d77d077779f9805ea1775651aa0e9850f972ec0d968fa71423e02f4962') +sha256sums_armv7h=('000778d81afdb1965c804b5f4fec8411f2a0ba2a8a326c22a53dec402db56566') +sha256sums_aarch64=('3f24ab230a520e92f09afd036c06d416143cd8ac7176a967f95cda441150bd19') + + +package() { + install -Dm 755 $srcdir/k3s-${pkgver}-${CARCH} $pkgdir/usr/bin/k3s + + install -dm 755 $pkgdir/usr/lib/systemd/system + install -dm 755 $pkgdir/etc/systemd/system + + install -m 644 $srcdir/k3s.service $pkgdir/usr/lib/systemd/system/k3s.service + install -Dm 400 $srcdir/k3s.env $pkgdir/etc/conf.d/k3s + + install -m 700 $srcdir/k3s-killall.sh $pkgdir/usr/bin/k3s-killall +} diff --git a/k3s-killall.sh b/k3s-killall.sh new file mode 100755 index 000000000000..603a39ae8205 --- /dev/null +++ b/k3s-killall.sh @@ -0,0 +1,55 @@ +#!/bin/sh +[ $(id -u) -eq 0 ] || exec sudo $0 $@ +for bin in /var/lib/rancher/k3s/data/**/bin/; do + [ -d $bin ] && export PATH=$PATH:$bin:$bin/aux +done +set -x +for service in /etc/systemd/system/k3s*.service; do + [ -s $service ] && systemctl stop $(basename $service) +done +for service in /etc/init.d/k3s*; do + [ -x $service ] && $service stop +done +pschildren() { + ps -e -o ppid= -o pid= | \ + sed -e 's/^\s*//g; s/\s\s*/\t/g;' | \ + grep -w "^$1" | \ + cut -f2 +} +pstree() { + for pid in $@; do + echo $pid + for child in $(pschildren $pid); do + pstree $child + done + done +} +killtree() { + kill -9 $( + { set +x; } 2>/dev/null; + pstree $@; + set -x; + ) 2>/dev/null +} +getshims() { + ps -e -o pid= -o args= | sed -e 's/^ *//; s/\s\s*/\t/;' | grep -w 'k3s/data/[^/]*/bin/containerd-shim' | cut -f1 +} +killtree $({ set +x; } 2>/dev/null; getshims; set -x) +do_unmount_and_remove() { + awk -v path="$1" '$2 ~ ("^" path) { print $2 }' /proc/self/mounts | sort -r | xargs -r -t -n 1 sh -c 'umount "$0" && rm -rf "$0"' +} +do_unmount_and_remove '/run/k3s' +do_unmount_and_remove '/var/lib/rancher/k3s' +do_unmount_and_remove '/var/lib/kubelet/pods' +do_unmount_and_remove '/run/netns/cni-' +# Remove CNI namespaces +ip netns show 2>/dev/null | grep cni- | xargs -r -t -n 1 ip netns delete +# Delete network interface(s) that match 'master cni0' +ip link show 2>/dev/null | grep 'master cni0' | while read ignore iface ignore; do + iface=${iface%%@*} + [ -z "$iface" ] || ip link delete $iface +done +ip link delete cni0 +ip link delete flannel.1 +rm -rf /var/lib/cni/ +iptables-save | grep -v KUBE- | grep -v CNI- | iptables-restore diff --git a/k3s.env b/k3s.env new file mode 100644 index 000000000000..aeda2e3eed59 --- /dev/null +++ b/k3s.env @@ -0,0 +1,4 @@ +# K3S_URL= +# K3S_TOKEN= +# K3S_NODE_NAME= +# K3S_ARGS= diff --git a/k3s.service b/k3s.service new file mode 100644 index 000000000000..4a9fa0f25f1c --- /dev/null +++ b/k3s.service @@ -0,0 +1,24 @@ +[Unit] +Description=Lightweight Kubernetes +Documentation=https://k3s.io +After=network-online.target + +[Service] +Type=notify +Environment="K3S_ARGS=server" +EnvironmentFile=/etc/conf.d/k3s +ExecStartPre=-/sbin/modprobe br_netfilter +ExecStartPre=-/sbin/modprobe overlay +ExecStart=/usr/bin/k3s $K3S_ARGS +KillMode=process +Delegate=yes +LimitNOFILE=infinity +LimitNPROC=infinity +LimitCORE=infinity +TasksMax=infinity +TimeoutStartSec=0 +Restart=always +RestartSec=5s + +[Install] +WantedBy=multi-user.target |