From 020df2eace70db6b157f7418e4e3f39158e67ff6 Mon Sep 17 00:00:00 2001 From: Mathias Gibbens Date: Wed, 13 Aug 2025 07:40:34 -0600 Subject: [PATCH] base: Add kpx daemon and service definition Signed-off-by: Mathias Gibbens --- .gitignore | 4 +++- Makefile | 15 ++++++++++++++- .../usr/lib/systemd/system/kpx.service | 8 ++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 mkosi.images/base/mkosi.extra/usr/lib/systemd/system/kpx.service diff --git a/.gitignore b/.gitignore index a4a4845..a9d4f21 100644 --- a/.gitignore +++ b/.gitignore @@ -8,12 +8,14 @@ mkosi.key certs/ mkosi.images/base/mkosi.extra/boot/EFI/ -mkosi.images/base/mkosi.extra/usr/local/bin/incus-osd +mkosi.images/base/mkosi.extra/usr/local/bin/ incus-osd/flasher-tool incus-osd/image-customizer incus-osd/image-publisher incus-osd/incus-osd +incus-osd/kpx + mkosi.packages/initrd-tmpfs-root* *.swp diff --git a/Makefile b/Makefile index a88ae87..4d6fc15 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,18 @@ flasher-tool: (cd incus-osd && go build ./cmd/flasher-tool) strip incus-osd/flasher-tool +.PHONY: kpx +kpx: + $(eval KPX_VERSION := 1.11.0) +ifeq (,$(wildcard incus-osd/kpx/)) + git clone https://github.com/momiji/kpx incus-osd/kpx/ --depth 1 -b "v${KPX_VERSION}" +else + (cd incus-osd/kpx && git fetch --depth 1 origin "v${KPX_VERSION}":refs/tags/"v${KPX_VERSION}" && git checkout "v${KPX_VERSION}") +endif + + (cd incus-osd/kpx/cli && go build -o kpx -ldflags="-s -w -X github.com/momiji/kpx.AppVersion=${KPX_VERSION}") + strip incus-osd/kpx/cli/kpx + .PHONY: initrd-deb-package initrd-deb-package: $(eval OSNAME := $(shell grep "ImageId=" mkosi.conf | cut -d '=' -f 2)) @@ -48,7 +60,7 @@ ifeq (,$(wildcard ./certs/)) endif .PHONY: build -build: incus-osd flasher-tool initrd-deb-package +build: incus-osd flasher-tool kpx initrd-deb-package ifeq (, $(shell which mkosi)) @echo "mkosi couldn't be found, please install it and try again" exit 1 @@ -59,6 +71,7 @@ endif openssl x509 -in mkosi.crt -out mkosi.images/base/mkosi.extra/boot/EFI/mkosi.der -outform DER mkdir -p mkosi.images/base/mkosi.extra/usr/local/bin/ cp incus-osd/incus-osd mkosi.images/base/mkosi.extra/usr/local/bin/ + cp incus-osd/kpx/cli/kpx mkosi.images/base/mkosi.extra/usr/local/bin/ sudo rm -Rf mkosi.output/base* mkosi.output/debug* mkosi.output/incus* sudo -E $(shell command -v mkosi) --cache-dir .cache/ build sudo chown $(shell id -u):$(shell id -g) mkosi.output diff --git a/mkosi.images/base/mkosi.extra/usr/lib/systemd/system/kpx.service b/mkosi.images/base/mkosi.extra/usr/lib/systemd/system/kpx.service new file mode 100644 index 0000000..cfc10cc --- /dev/null +++ b/mkosi.images/base/mkosi.extra/usr/lib/systemd/system/kpx.service @@ -0,0 +1,8 @@ +[Unit] +Description=kpx proxy daemon + +[Service] +User=nobody +Group=nogroup +ExecStart=/usr/local/bin/kpx -c /etc/kpx.yaml +Restart=on-failure