From e7b8e406a8d8aef6730e747f6b7c465495b18c8fc7f0a6fcc46f02a63c8c7bbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=9F=E9=85=8C=20=E9=B5=AC=E5=85=84?= Date: Thu, 2 Apr 2026 00:07:32 +0800 Subject: [PATCH] Agent can now poll osupgrade resources from cluster --- alpine/install-packages.sh | 1 + clitools/Dockerfile | 3 ++- clitools/makefile | 34 +++++++++++++++++++++-------- 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, 32 insertions(+), 14 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)"' >> $@ +# 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_FILE) +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",