penguin/monok8s

k8s image for Mono Gateway Dev Kit

commit e138ec1254a33ea95148f75375b6f1d8e7c958ea199e6ef0a3b889f5e6d9bd9b

author斟酌 鵬兄 <tgckpg@gmail.com>
date2026-04-16T19:16:27Z
subjectRemoved git dependency on make
commit e138ec1254a33ea95148f75375b6f1d8e7c958ea199e6ef0a3b889f5e6d9bd9b
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2026-04-16T19:16:27Z

    Removed git dependency on make
---
 README.md                                    |  1 -
 build.env                                    | 14 ++++++++------
 clitools/docker/download-packages.Dockerfile | 26 ++++++++++++++++++++++++++
 clitools/docker/uboot-tools.Dockerfile       |  2 +-
 clitools/makefile                            | 21 +++++++++++++--------
 makefile                                     |  1 +
 6 files changed, 49 insertions(+), 16 deletions(-)

diff --git a/README.md b/README.md
index 0c2428b..663fb63 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,6 @@ https://docs.mono.si/gateway-development-kit/getting-started
 Prerequisites
 * make
 * Docker
-* git (cloning uboot repo because uboot does not provide direct downloads)
 
 ```
 make release
diff --git a/build.env b/build.env
index d0e760a..16a7b19 100644
--- a/build.env
+++ b/build.env
@@ -3,13 +3,15 @@ DOCKER_IMAGE_ROOT=monok8s
 # Image tag
 TAG=dev
 
-# The Linux kernel, from NXP
-NXP_VERSION=lf-6.18.2-1.0.0
-FMLIB_VERSION=lf-6.18.2-1.0.0
-FMC_VERSION=lf-6.18.2-1.0.0
-DPDK_VERSION=lf-6.18.2-1.0.0
-VPP_VERSION=lf-6.18.2-1.0.0
+# NXP's Linux Factory
+LINUX_FACTORY=6.18.2-1.0.0
+NXP_VERSION=lf-$(LINUX_FACTORY)
+FMLIB_VERSION=lf-$(LINUX_FACTORY)
+FMC_VERSION=lf-$(LINUX_FACTORY)
+DPDK_VERSION=lf-$(LINUX_FACTORY)
+VPP_VERSION=lf-$(LINUX_FACTORY)
 VPP_UPSTREAM_VERSION=23.10
+MONO_ASK_VERSION=mt-$(LINUX_FACTORY)
 
 CRIO_VERSION=cri-o.arm64.v1.35.2
 KUBE_VERSION=v1.35.3
diff --git a/clitools/docker/download-packages.Dockerfile b/clitools/docker/download-packages.Dockerfile
new file mode 100644
index 0000000..2838d18
--- /dev/null
+++ b/clitools/docker/download-packages.Dockerfile
@@ -0,0 +1,26 @@
+FROM alpine:3.23.0 AS base
+
+# We seperate the packages so this line can be cached upstream
+RUN apk add --no-cache curl ca-certificates
+RUN apk add --no-cache git
+
+# ---- uboot ----
+FROM base AS uboot
+ARG UBOOT_VERSION
+
+WORKDIR /work
+
+RUN apk add --no-cache git tar gzip
+
+RUN git clone \
+      --depth 1 \
+      --branch "${UBOOT_VERSION}" \
+      --filter=blob:none \
+      https://github.com/u-boot/u-boot.git src
+
+RUN mkdir -p /out && \
+    tar -C /work/src -zcf "/out/uboot-${UBOOT_VERSION}.tar.gz" .
+
+# ---- final exported artifact set ----
+FROM scratch
+COPY --from=uboot /out/ /
diff --git a/clitools/docker/uboot-tools.Dockerfile b/clitools/docker/uboot-tools.Dockerfile
index 67c5b64..57f764f 100644
--- a/clitools/docker/uboot-tools.Dockerfile
+++ b/clitools/docker/uboot-tools.Dockerfile
@@ -1,4 +1,4 @@
-FROM alpine:3.22 AS build
+FROM alpine:3.23 AS build
 
 RUN apk add --no-cache \
     build-base \
diff --git a/clitools/makefile b/clitools/makefile
index 054911f..427044e 100644
--- a/clitools/makefile
+++ b/clitools/makefile
@@ -27,6 +27,8 @@ LOCAL_REGISTRY_PORT := 5000
 CTL_BUILD_BASE_IMAGE := localhost:5000/monok8s/ctl-build-base:$(VERSION)
 CTL_BINARY           := ctl-linux-aarch64-$(VERSION)
 
+DOWNLOAD_PACKAGES_STAMP := $(PACKAGES_DIR)/.download-packages.stamp
+
 $(PACKAGES_DIR):
 	mkdir -p $@
 
@@ -78,15 +80,14 @@ ensure-registry:
 		fi; \
 	fi
 
-$(UBOOT_TAR): | $(PACKAGES_DIR) $(OUT_DIR)
-	rm -rf "$(OUT_DIR)/u-boot-$(UBOOT_VERSION)"
-	git clone --depth 1 --branch "$(UBOOT_VERSION)" --filter=blob:none \
-		https://github.com/u-boot/u-boot.git "$(OUT_DIR)/u-boot-$(UBOOT_VERSION)"
-	tar -C "$(OUT_DIR)/u-boot-$(UBOOT_VERSION)" -zcf "$@" .
-	rm -rf "$(OUT_DIR)/u-boot-$(UBOOT_VERSION)"
-	test -f "$@"
+$(DOWNLOAD_PACKAGES_STAMP): docker/download-packages.Dockerfile makefile | $(PACKAGES_DIR)
+	docker build \
+		-f docker/download-packages.Dockerfile \
+		--build-arg UBOOT_VERSION=$(UBOOT_VERSION) \
+		--output type=local,dest=./$(PACKAGES_DIR) .
+	@touch $@
 
-uboot-tools: $(UBOOT_TAR)
+uboot-tools: $(DOWNLOAD_PACKAGES_STAMP)
 	docker buildx build --platform linux/arm64 \
 		-f docker/uboot-tools.Dockerfile \
 		--build-arg UBOOT_VERSION=$(UBOOT_VERSION) \
@@ -152,6 +153,7 @@ clean:
 dockerclean:
 	@echo "Removing tagged images..."
 	- docker rmi \
+		localhost/monok8s/ctl-build-base:$(VERSION) \
 		localhost/monok8s/control-agent:$(VERSION) \
 		localhost/monok8s/ctl-builder:$(VERSION) \
 		localhost/monok8s/crdgen:$(VERSION) \
@@ -161,6 +163,9 @@ dockerclean:
 	- docker image prune -f
 	- docker builder prune -f
 
+pkgclean:
+	rm -rf $(PACKAGES_DIR)
+
 all: build build-agent build-local
 
 .PHONY: \
diff --git a/makefile b/makefile
index 569674d..fbe4707 100644
--- a/makefile
+++ b/makefile
@@ -316,6 +316,7 @@ dockerclean:
 	- docker image prune -f
 
 pkgclean:
+	$(MAKE) -C clitools pkgclean
 	rm -rf $(PACKAGES_DIR)
 
 .PHONY: release kernel initramfs itb build-base clitools clean distclean pkgclean \