mirror of
https://github.com/kubernetes/node-problem-detector.git
synced 2026-02-14 18:09:57 +00:00
Added arm64 targets for linux binaries
This commit is contained in:
@@ -12,7 +12,7 @@ services:
|
||||
- docker
|
||||
before_install:
|
||||
- sudo apt-get -qq update
|
||||
- sudo apt-get install -y libsystemd-dev
|
||||
- sudo apt-get install -y libsystemd-dev libc6-dev-arm64-cross gcc-aarch64-linux-gnu
|
||||
install:
|
||||
- mkdir -p $HOME/gopath/src/k8s.io
|
||||
- mv $TRAVIS_BUILD_DIR $HOME/gopath/src/k8s.io/node-problem-detector
|
||||
|
||||
31
Makefile
31
Makefile
@@ -22,7 +22,8 @@
|
||||
all: build
|
||||
|
||||
# PLATFORMS is the set of OS_ARCH that NPD can build against.
|
||||
PLATFORMS=linux_amd64 windows_amd64
|
||||
LINUX_PLATFORMS=linux_amd64 linux_arm64
|
||||
PLATFORMS=$(LINUX_PLATFORMS) windows_amd64
|
||||
|
||||
# VERSION is the version of the binary.
|
||||
VERSION?=$(shell if [ -d .git ]; then echo `git describe --tags --dirty`; else echo "UNKNOWN"; fi)
|
||||
@@ -123,7 +124,9 @@ ifeq ($(ENABLE_JOURNALD), 1)
|
||||
BINARIES_LINUX_ONLY += bin/log-counter
|
||||
endif
|
||||
|
||||
ALL_BINARIES = $(foreach binary, $(BINARIES) $(BINARIES_LINUX_ONLY), ./$(binary)) $(foreach binary, $(BINARIES) $(BINARIES_LINUX_ONLY), output/linux_amd64/$(binary)) $(foreach binary, $(BINARIES), output/windows_amd64/$(binary).exe)
|
||||
ALL_BINARIES = $(foreach binary, $(BINARIES) $(BINARIES_LINUX_ONLY), ./$(binary)) \
|
||||
$(foreach platform, $(LINUX_PLATFORMS), $(foreach binary, $(BINARIES) $(BINARIES_LINUX_ONLY), output/$(platform)/$(binary))) \
|
||||
$(foreach binary, $(BINARIES), output/windows_amd64/$(binary).exe)
|
||||
ALL_TARBALLS = $(foreach platform, $(PLATFORMS), $(NPD_NAME_VERSION)-$(platform).tar.gz)
|
||||
|
||||
output/windows_amd64/bin/%.exe: $(PKG_SOURCES)
|
||||
@@ -143,7 +146,8 @@ output/windows_amd64/test/bin/%.exe: $(PKG_SOURCES)
|
||||
./test/e2e/$(subst -,,$*)
|
||||
|
||||
output/linux_amd64/bin/%: $(PKG_SOURCES)
|
||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=$(CGO_ENABLED) GO111MODULE=on go build \
|
||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=$(CGO_ENABLED) GO111MODULE=on \
|
||||
CC=x86_64-linux-gnu-gcc go build \
|
||||
-mod vendor \
|
||||
-o $@ \
|
||||
-ldflags '-X $(PKG)/pkg/version.version=$(VERSION)' \
|
||||
@@ -152,7 +156,26 @@ output/linux_amd64/bin/%: $(PKG_SOURCES)
|
||||
touch $@
|
||||
|
||||
output/linux_amd64/test/bin/%: $(PKG_SOURCES)
|
||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=$(CGO_ENABLED) GO111MODULE=on go build \
|
||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=$(CGO_ENABLED) GO111MODULE=on \
|
||||
CC=x86_64-linux-gnu-gcc go build \
|
||||
-mod vendor \
|
||||
-o $@ \
|
||||
-tags "$(LINUX_BUILD_TAGS)" \
|
||||
./test/e2e/$(subst -,,$*)
|
||||
|
||||
output/linux_arm64/bin/%: $(PKG_SOURCES)
|
||||
GOOS=linux GOARCH=arm64 CGO_ENABLED=$(CGO_ENABLED) GO111MODULE=on \
|
||||
CC=aarch64-linux-gnu-gcc go build \
|
||||
-mod vendor \
|
||||
-o $@ \
|
||||
-ldflags '-X $(PKG)/pkg/version.version=$(VERSION)' \
|
||||
-tags "$(LINUX_BUILD_TAGS)" \
|
||||
./cmd/$(subst -,,$*)
|
||||
touch $@
|
||||
|
||||
output/linux_arm64/test/bin/%: $(PKG_SOURCES)
|
||||
GOOS=linux GOARCH=arm64 CGO_ENABLED=$(CGO_ENABLED) GO111MODULE=on \
|
||||
CC=aarch64-linux-gnu-gcc go build \
|
||||
-mod vendor \
|
||||
-o $@ \
|
||||
-tags "$(LINUX_BUILD_TAGS)" \
|
||||
|
||||
13
README.md
13
README.md
@@ -137,12 +137,16 @@ For example, to run without auth, use the following config:
|
||||
|
||||
## Build Image
|
||||
|
||||
* Install development dependencies for `libsystemd` and the ARM GCC toolchain
|
||||
* Debian: `apt install libsystemd-dev gcc-aarch64-linux-gnu`
|
||||
* Ubuntu: `apt install libsystemd-journal-dev gcc-aarch64-linux-gnu`
|
||||
|
||||
* `go get` or `git clone` node-problem-detector repo into `$GOPATH/src/k8s.io` or `$GOROOT/src/k8s.io`
|
||||
with one of the below directions:
|
||||
* `cd $GOPATH/src/k8s.io && git clone git@github.com:kubernetes/node-problem-detector.git`
|
||||
* `cd $GOPATH/src/k8s.io && go get k8s.io/node-problem-detector`
|
||||
|
||||
* run `make` in the top directory. It will:
|
||||
* Run `make` in the top directory. It will:
|
||||
* Build the binary.
|
||||
* Build the docker image. The binary and `config/` are copied into the docker image.
|
||||
|
||||
@@ -158,11 +162,6 @@ and [System Stats Monitor](https://github.com/kubernetes/node-problem-detector/t
|
||||
Check out the [Problem Daemon](https://github.com/kubernetes/node-problem-detector#problem-daemon) section
|
||||
to see how to disable each problem daemon during compilation time.
|
||||
|
||||
**Note**:
|
||||
By default, node-problem-detector will be built with systemd support with the `make` command. This requires systemd develop files.
|
||||
You should download the systemd develop files first. For Ubuntu, the `libsystemd-journal-dev` package should
|
||||
be installed. For Debian, the `libsystemd-dev` package should be installed.
|
||||
|
||||
## Push Image
|
||||
|
||||
`make push` uploads the docker image to a registry. By default, the image will be uploaded to
|
||||
@@ -320,4 +319,4 @@ See [NPD e2e test documentation](https://github.com/kubernetes/node-problem-dete
|
||||
* [Slides](https://docs.google.com/presentation/d/1bkJibjwWXy8YnB5fna6p-Ltiy-N5p01zUsA22wCNkXA/edit?usp=sharing)
|
||||
* [Plugin Interface Proposal](https://docs.google.com/document/d/1jK_5YloSYtboj-DtfjmYKxfNnUxCAvohLnsH5aGCAYQ/edit#)
|
||||
* [Addon Manifest](https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/node-problem-detector)
|
||||
* [Metrics Mode Proposal](https://docs.google.com/document/d/1SeaUz6kBavI283Dq8GBpoEUDrHA2a795xtw0OvjM568/edit)
|
||||
* [Metrics Mode Proposal](https://docs.google.com/document/d/1SeaUz6kBavI283Dq8GBpoEUDrHA2a795xtw0OvjM568/edit)
|
||||
|
||||
@@ -65,7 +65,7 @@ function get-version() {
|
||||
|
||||
function install-lib() {
|
||||
apt-get update
|
||||
apt-get install -y libsystemd-dev
|
||||
apt-get install -y libsystemd-dev gcc-aarch64-linux-gnu
|
||||
# Turn off go modules here, because we are not trying to install
|
||||
# ginkgo library/module. We are trying to install the ginkgo executable.
|
||||
GO111MODULE=off go get -v github.com/onsi/ginkgo/ginkgo
|
||||
|
||||
Reference in New Issue
Block a user