From 3c80676e94cca63d398e4d7d8caaba1c25abc323 Mon Sep 17 00:00:00 2001 From: Xuewei Zhang Date: Tue, 26 Nov 2019 11:27:02 -0800 Subject: [PATCH 1/2] Fix build tags manipulation in Makefile --- .travis.yml | 2 ++ Makefile | 17 +++++++---------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 699ecbef..986a433f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,3 +29,5 @@ script: - BUILD_TAGS="disable_system_stats_monitor" make test - make clean && BUILD_TAGS="disable_stackdriver_exporter" make - BUILD_TAGS="disable_stackdriver_exporter" make test + - make clean && ENABLE_JOURNALD=0 make + - ENABLE_JOURNALD=0 make test diff --git a/Makefile b/Makefile index c4951a10..c14b0760 100644 --- a/Makefile +++ b/Makefile @@ -60,7 +60,7 @@ BASEIMAGE:=k8s.gcr.io/debian-base-amd64:v1.0.0 CGO_ENABLED:=0 # Construct the "-tags" parameter used by "go build". -BUILD_TAGS?="" +BUILD_TAGS?= ifeq ($(ENABLE_JOURNALD), 1) # Enable journald build tag. BUILD_TAGS:=$(BUILD_TAGS) journald @@ -71,14 +71,11 @@ ifeq ($(ENABLE_JOURNALD), 1) # statically linked application. CGO_ENABLED:=1 endif -ifneq ($(BUILD_TAGS), "") - BUILD_TAGS:=-tags "$(BUILD_TAGS)" -endif vet: - GO111MODULE=on go list -mod vendor $(BUILD_TAGS) ./... | \ + GO111MODULE=on go list -mod vendor -tags "$(BUILD_TAGS)" ./... | \ grep -v "./vendor/*" | \ - GO111MODULE=on xargs go vet -mod vendor $(BUILD_TAGS) + GO111MODULE=on xargs go vet -mod vendor -tags "$(BUILD_TAGS)" fmt: find . -type f -name "*.go" | grep -v "./vendor/*" | xargs gofmt -s -w -l @@ -91,7 +88,7 @@ version: -mod vendor \ -o bin/log-counter \ -ldflags '-X $(PKG)/pkg/version.version=$(VERSION)' \ - $(BUILD_TAGS) \ + -tags "$(BUILD_TAGS)" \ cmd/logcounter/log_counter.go ./bin/node-problem-detector: $(PKG_SOURCES) @@ -99,17 +96,17 @@ version: -mod vendor \ -o bin/node-problem-detector \ -ldflags '-X $(PKG)/pkg/version.version=$(VERSION)' \ - $(BUILD_TAGS) \ + -tags "$(BUILD_TAGS)" \ ./cmd/nodeproblemdetector Dockerfile: Dockerfile.in sed -e 's|@BASEIMAGE@|$(BASEIMAGE)|g' $< >$@ test: vet fmt - GO111MODULE=on go test -mod vendor -timeout=1m -v -race -short $(BUILD_TAGS) ./... + GO111MODULE=on go test -mod vendor -timeout=1m -v -race -short -tags "$(BUILD_TAGS)" ./... e2e-test: vet fmt build-tar - GO111MODULE=on go test -mod vendor -timeout=10m -v $(BUILD_TAGS) \ + GO111MODULE=on go test -mod vendor -timeout=10m -v -tags "$(BUILD_TAGS)" \ ./test/e2e/metriconly/... \ -project=$(PROJECT) -zone=$(ZONE) \ -image=$(VM_IMAGE) -image-family=$(IMAGE_FAMILY) -image-project=$(IMAGE_PROJECT) \ From 5e55ef89f1eb24d7c49c7ae0841c7f467afdfb12 Mon Sep 17 00:00:00 2001 From: Xuewei Zhang Date: Tue, 26 Nov 2019 13:29:11 -0800 Subject: [PATCH 2/2] Make log-counter respect ENABLE_JOURNALD --- Dockerfile.in | 3 +++ Makefile | 9 +++++++++ cmd/logcounter/log_counter.go | 2 ++ pkg/logcounter/log_counter.go | 2 ++ pkg/logcounter/log_counter_test.go | 2 ++ 5 files changed, 18 insertions(+) diff --git a/Dockerfile.in b/Dockerfile.in index 076f5be2..ee0609c5 100644 --- a/Dockerfile.in +++ b/Dockerfile.in @@ -21,6 +21,9 @@ RUN clean-install libsystemd0 bash RUN test -h /etc/localtime && rm -f /etc/localtime && cp /usr/share/zoneinfo/UTC /etc/localtime || true ADD ./bin/node-problem-detector /node-problem-detector + +# Below command depends on ENABLE_JOURNAL=1. ADD ./bin/log-counter /home/kubernetes/bin/log-counter + ADD config /config ENTRYPOINT ["/node-problem-detector", "--system-log-monitors=/config/kernel-monitor.json"] diff --git a/Makefile b/Makefile index c14b0760..f746c3d0 100644 --- a/Makefile +++ b/Makefile @@ -84,12 +84,16 @@ version: @echo $(VERSION) ./bin/log-counter: $(PKG_SOURCES) +ifeq ($(ENABLE_JOURNALD), 1) CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GO111MODULE=on go build \ -mod vendor \ -o bin/log-counter \ -ldflags '-X $(PKG)/pkg/version.version=$(VERSION)' \ -tags "$(BUILD_TAGS)" \ cmd/logcounter/log_counter.go +else + echo "Warning: log-counter requires journald, skipping." +endif ./bin/node-problem-detector: $(PKG_SOURCES) CGO_ENABLED=$(CGO_ENABLED) GOOS=linux GO111MODULE=on go build \ @@ -101,6 +105,11 @@ version: Dockerfile: Dockerfile.in sed -e 's|@BASEIMAGE@|$(BASEIMAGE)|g' $< >$@ +ifneq ($(ENABLE_JOURNALD), 1) + sed -i '/Below command depends on ENABLE_JOURNAL=1/,+2d' $@ + echo "Warning: log-counter requires journald, skipping." +endif + test: vet fmt GO111MODULE=on go test -mod vendor -timeout=1m -v -race -short -tags "$(BUILD_TAGS)" ./... diff --git a/cmd/logcounter/log_counter.go b/cmd/logcounter/log_counter.go index d3c03de2..21ee1e9c 100644 --- a/cmd/logcounter/log_counter.go +++ b/cmd/logcounter/log_counter.go @@ -1,3 +1,5 @@ +// +build journald + /* Copyright 2018 The Kubernetes Authors All rights reserved. diff --git a/pkg/logcounter/log_counter.go b/pkg/logcounter/log_counter.go index 7fd22e57..c31f8c34 100644 --- a/pkg/logcounter/log_counter.go +++ b/pkg/logcounter/log_counter.go @@ -1,3 +1,5 @@ +// +build journald + /* Copyright 2018 The Kubernetes Authors All rights reserved. diff --git a/pkg/logcounter/log_counter_test.go b/pkg/logcounter/log_counter_test.go index 23ec27b0..adbf8f26 100644 --- a/pkg/logcounter/log_counter_test.go +++ b/pkg/logcounter/log_counter_test.go @@ -1,3 +1,5 @@ +// +build journald + /* Copyright 2018 The Kubernetes Authors All rights reserved.