Initial commit
This commit is contained in:
commit
291f06df6e
25
.circleci/config.yml
Normal file
25
.circleci/config.yml
Normal file
|
@ -0,0 +1,25 @@
|
|||
version: 2
|
||||
jobs:
|
||||
all:
|
||||
docker:
|
||||
- image: circleci/golang:1.11
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker
|
||||
- run:
|
||||
name: build-and-release
|
||||
command: |
|
||||
curl -L https://github.com/tcnksm/ghr/releases/download/v0.12.0/ghr_v0.12.0_linux_amd64.tar.gz \
|
||||
| sudo tar --strip=1 -C /usr/bin -xzvf -
|
||||
make build-all
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
all:
|
||||
jobs:
|
||||
- all:
|
||||
filters:
|
||||
tags:
|
||||
only: /^[0-9]*$/
|
||||
branches:
|
||||
ignore: /.*/
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
build
|
||||
*.opk
|
63
Makefile
Normal file
63
Makefile
Normal file
|
@ -0,0 +1,63 @@
|
|||
VERSION ?= 0.2.0-rc5
|
||||
PVERSION ?= 1
|
||||
ARCH ?= x86_64
|
||||
suffix := $(subst -x86_64,,-$(ARCH))
|
||||
|
||||
FILES = $(shell find files/ -type f)
|
||||
DIR = build/$(VERSION)/$(ARCH)
|
||||
OUT = build/k3s_$(VERSION)_$(ARCH).opk
|
||||
|
||||
define CONTROL
|
||||
Package: k3s
|
||||
Version: ${VERSION}-${PVERSION}
|
||||
Architecture: $(ARCH)
|
||||
Maintainer: Johannes 'fish' Ziemke
|
||||
Depends: iptables kmod-ipt-extra iptables-mod-extra kmod-br-netfilter ca-certificates
|
||||
Description: The Docker Engine packages for OpenWrt
|
||||
endef
|
||||
export CONTROL
|
||||
|
||||
.PHONY: all
|
||||
all: $(OUT)
|
||||
|
||||
build-all:
|
||||
if [ -n "$$(ls build/)" ]; then echo build/ not empty && exit 1; fi
|
||||
for a in $$(cat ARCHS); do \
|
||||
for v in $$(cat VERSIONS); do \
|
||||
make ARCH=$$a VERSION=$$v; \
|
||||
done; \
|
||||
done
|
||||
|
||||
.PHONY: release
|
||||
release: build-all
|
||||
ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} \
|
||||
-c ${CIRCLE_SHA1} -delete ${PVERSION} build/
|
||||
|
||||
$(OUT): $(DIR)/pkg/control.tar.gz $(DIR)/pkg/data.tar.gz $(DIR)/pkg/debian-binary
|
||||
tar -C $(DIR)/pkg -czvf "$@" debian-binary data.tar.gz control.tar.gz
|
||||
|
||||
$(DIR)/data: $(FILES)
|
||||
mkdir -p "$@/usr/bin"
|
||||
cp -r files/* "$@"
|
||||
curl -sfLo "$@/usr/bin/k3s" \
|
||||
https://github.com/rancher/k3s/releases/download/v$(VERSION)/k3s${suffix}
|
||||
chmod a+x "$@/usr/bin/k3s"
|
||||
|
||||
$(DIR)/pkg/data.tar.gz: $(DIR)/data
|
||||
tar -C "$<" -czvf "$@" .
|
||||
|
||||
$(DIR)/pkg:
|
||||
mkdir -p $@
|
||||
|
||||
$(DIR)/pkg/debian-binary: $(DIR)/pkg
|
||||
echo 2.0 > $@
|
||||
|
||||
$(DIR)/pkg/control: $(DIR)/pkg
|
||||
echo "$$CONTROL" > "$@"
|
||||
|
||||
$(DIR)/pkg/control.tar.gz: $(DIR)/pkg/control
|
||||
tar -C $(DIR)/pkg -czvf "$@" control
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf build/
|
7
README.md
Normal file
7
README.md
Normal file
|
@ -0,0 +1,7 @@
|
|||
# k3s on OpenWrt
|
||||
Makefile to generate OpenWrt .opkg packages from official k3s binaries.
|
||||
|
||||
## Usage
|
||||
Run `make` to build the default version for `x86_64`. You can override ARCH and
|
||||
VERSION, e.g `make ARCH=armhf`. See ARCHS and VERSIONS files for available
|
||||
architectures and versions.
|
2
files/etc/config/k3s
Normal file
2
files/etc/config/k3s
Normal file
|
@ -0,0 +1,2 @@
|
|||
config globals 'globals'
|
||||
option root '/data/k3s'
|
16
files/etc/init.d/k3s
Executable file
16
files/etc/init.d/k3s
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=60
|
||||
STOP=20
|
||||
|
||||
PIDFILE=/var/run/k3s.pid
|
||||
EXEC="/usr/bin/k3s"
|
||||
|
||||
start() {
|
||||
start-stop-daemon -S -b -x "$EXEC" -m -p "$PIDFILE" \
|
||||
-- server --data-dir $(uci_get k3s.globals.root)
|
||||
}
|
||||
|
||||
stop() {
|
||||
start-stop-daemon -K -p "$PIDFILE"
|
||||
}
|
Loading…
Reference in a new issue