summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO26
-rw-r--r--.gitignore6
-rw-r--r--PKGBUILD51
-rwxr-xr-xk3s-killall.sh55
-rw-r--r--k3s.env4
-rw-r--r--k3s.service24
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