penguin/monok8s

k8s image for Mono Gateway Dev Kit

commit e7b8e406a8d8aef6730e747f6b7c465495b18c8fc7f0a6fcc46f02a63c8c7bbe

author斟酌 鵬兄 <tgckpg@gmail.com>
date2026-04-01T16:07:32Z
subjectAgent can now poll osupgrade resources from cluster
commit e7b8e406a8d8aef6730e747f6b7c465495b18c8fc7f0a6fcc46f02a63c8c7bbe
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2026-04-01T16:07:32Z

    Agent can now poll osupgrade resources from cluster
---
 alpine/install-packages.sh          |  1 +
 clitools/Dockerfile                 |  3 ++-
 clitools/makefile                   | 36 ++++++++++++++++++++++++++----------
 clitools/pkg/cmd/agent/agent.go     |  2 +-
 clitools/pkg/cmd/version/version.go |  2 +-
 clitools/pkg/node/agent.go          |  2 +-
 clitools/pkg/templates/values.go    |  2 +-
 7 files changed, 33 insertions(+), 15 deletions(-)

diff --git a/alpine/install-packages.sh b/alpine/install-packages.sh
index 4a5af20..9b26dc6 100755
--- a/alpine/install-packages.sh
+++ b/alpine/install-packages.sh
@@ -41,6 +41,7 @@ if [ -z "$CTL_BIN" ]; then
 	exit 1
 fi
 ln -s "$CTL_BIN" /usr/local/bin/ctl
+ctl version
 
 
 mkdir -p /var/run/crio
diff --git a/clitools/Dockerfile b/clitools/Dockerfile
index 7164d68..d6d9765 100644
--- a/clitools/Dockerfile
+++ b/clitools/Dockerfile
@@ -9,4 +9,5 @@ WORKDIR /
 COPY bin/ctl-linux-aarch64-${VERSION} ./ctl
 COPY --from=cacerts /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
 
-CMD [ "/ctl", "agent" ]
+ENTRYPOINT ["/ctl"]
+CMD ["agent"]
diff --git a/clitools/makefile b/clitools/makefile
index 9b835ae..98e1bc0 100644
--- a/clitools/makefile
+++ b/clitools/makefile
@@ -1,31 +1,47 @@
+# Should be the same as upstream version in prodution
 VERSION ?= dev
 
-KUBE_VERSION=v1.35.3
+# Target kube version
+KUBE_VERSION ?= v1.35.1
+
+GIT_REV=$(shell git rev-parse HEAD)
 
 BIN_DIR := bin
 
 BUILDINFO_FILE := pkg/buildinfo/buildinfo_gen.go
 
-$(BUILDINFO_FILE):
-	echo 'package buildinfo' > $@
-	echo '' >> $@
-	echo 'const DefaultKubernetesVersion = "$(KUBE_VERSION)"' >> $@
-
-build: $(BUILDINFO_FILE)
+# Never cache this
+.buildinfo:
+	echo 'package buildinfo' > $(BUILDINFO_FILE)
+	echo 'const (' >> $(BUILDINFO_FILE)
+	echo '	Version = "$(VERSION)"' >> $(BUILDINFO_FILE)
+	echo '	KubeVersion = "$(KUBE_VERSION)"' >> $(BUILDINFO_FILE)
+	echo '	GitRevision = "$(GIT_REV)"' >> $(BUILDINFO_FILE)
+	echo '	Timestamp = "$(shell TZ=UTC date +%Y%m%d.%H%M%S)"' >> $(BUILDINFO_FILE)
+	echo ')' >> $(BUILDINFO_FILE)
+	echo ''
+
+build: .buildinfo
 	mkdir -p $(BIN_DIR)
 	GOOS=linux GOARCH=arm64 go build -o $(BIN_DIR)/ctl-linux-aarch64-$(VERSION) ./cmd/ctl/
 
-build-agent:
+build-agent: build
 	docker build \
 		--platform=linux/arm64 \
 		--build-arg VERSION=$(VERSION) \
 		-t localhost/monok8s/control-agent:$(VERSION) .
 
-build-local:
+build-local: .buildinfo
 	go build -o $(BIN_DIR)/ctl-$(VERSION) ./cmd/ctl
 
 run:
 	go run ./cmd/ctl
 
 clean:
-	rm -rf $(BIN_DIR)
+	docker image rm localhost/monok8s/control-agent:$(VERSION)
+	rm -rf $(BIN_DIR) \
+		$(BUILDINFO_FILE)
+
+all: build build-agent build-local
+
+.PHONY: clean all run .buildinfo build build-local build-agent
diff --git a/clitools/pkg/cmd/agent/agent.go b/clitools/pkg/cmd/agent/agent.go
index 068cbbd..990dfdc 100644
--- a/clitools/pkg/cmd/agent/agent.go
+++ b/clitools/pkg/cmd/agent/agent.go
@@ -35,7 +35,7 @@ func NewCmdAgent(flags *genericclioptions.ConfigFlags) *cobra.Command {
 			rendered := templates.DefaultMonoKSConfig(vals)
 			cfg = &rendered
 
-			klog.InfoS("starting init", "node", cfg.Spec.NodeName, "envFile", envFile)
+			klog.InfoS("starting agent", "node", cfg.Spec.NodeName, "envFile", envFile)
 
 			clients, err := kube.NewClients(flags)
 			if err != nil {
diff --git a/clitools/pkg/cmd/version/version.go b/clitools/pkg/cmd/version/version.go
index a351a64..804b642 100644
--- a/clitools/pkg/cmd/version/version.go
+++ b/clitools/pkg/cmd/version/version.go
@@ -14,7 +14,7 @@ func NewCmdVersion() *cobra.Command {
 		Short: "Print the version information",
 		RunE: func(cmd *cobra.Command, _ []string) error {
 
-			_, err := fmt.Fprintln(cmd.OutOrStdout(), buildInfo.Version)
+			_, err := fmt.Fprintln(cmd.OutOrStdout(), fmt.Sprintf("%s %s(%s)", buildInfo.Version, buildInfo.GitRevision, buildInfo.Timestamp))
 			return err
 		},
 	}
diff --git a/clitools/pkg/node/agent.go b/clitools/pkg/node/agent.go
index 0fd4706..c875281 100644
--- a/clitools/pkg/node/agent.go
+++ b/clitools/pkg/node/agent.go
@@ -300,7 +300,7 @@ func applyControlAgentDaemonSet(ctx context.Context, kubeClient kubernetes.Inter
 							Name:            "agent",
 							Image:           controlAgentImage,
 							ImagePullPolicy: corev1.PullNever,
-							Args:            []string{"agent"},
+							Args:            []string{"agent", "--env-file", "$(CLUSTER_ENV_FILE)"},
 							Env: []corev1.EnvVar{
 								{
 									Name: "NODE_NAME",
diff --git a/clitools/pkg/templates/values.go b/clitools/pkg/templates/values.go
index 573e0dc..5329ff1 100644
--- a/clitools/pkg/templates/values.go
+++ b/clitools/pkg/templates/values.go
@@ -45,7 +45,7 @@ func defaultTemplateValues() TemplateValues {
 	return TemplateValues{
 		Hostname:                  "monok8s-master-1",
 		NodeName:                  "monok8s-master-1",
-		KubernetesVersion:         buildinfo.Version,
+		KubernetesVersion:         buildinfo.KubeVersion,
 		ClusterName:               "monok8s",
 		ClusterDomain:             "cluster.local",
 		PodSubnet:                 "10.244.0.0/16",