Closed amit213 closed 1 year ago
Hi @pwschuurman We have a time sensitive need to build an ARM64 docker image (for AWS Graviton ARM64) for this node-problem-detector. Could you please help provide some guidance for the above query when you get a chance.
@amit213, the build-container/push-container
targets should allow your team to build a multi-arch image for amd64 and arm64. What commands/target are you running to build the image currently? It sounds like either only the AMD64 image is being built, or the client that is fetching the multi-arch image from your container registry is pulling the wrong image type.
Thanks @pwschuurman for your prompt guidance.
We are running the default command "make" on the target folder. We were not able to locate which specific build flags or parameters to pass to direct the make process to build multi-arch images.
Here is the command we are running. The system is an Ubuntu 20 node running on t4g.xxxx instance type of AWS Graviton node.
vmuser@ip-xx:~/go/src/k8s.io/node-problem-detector$ make
docker build -t gcr.io/k8s-staging-npd/node-problem-detector:v0.8.7 --build-arg BASEIMAGE=k8s.gcr.io/debian-base-amd64:v1.0.0 --build-arg LOGCOUNTER=./bin/log-counter .
Sending build context to Docker daemon 126.4MB
Step 1/10 : ARG BASEIMAGE
Step 2/10 : FROM ${BASEIMAGE}
---> 204e96332c91
Step 3/10 : MAINTAINER Random Liu <xyz@google.com>
---> Using cache
---> 8c640a11852c
Step 4/10 : RUN clean-install util-linux libsystemd0 bash
---> [Warning] The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
---> Running in 77e6ead4b420
standard_init_linux.go:228: exec user process caused: exec format error
The command '/bin/sh -c clean-install util-linux libsystemd0 bash' returned a non-zero code: 1
make: *** [Makefile:209: build-container] Error 1
vmuser@ip-xxx:~/go/src/k8s.io/node-problem-detector$
Here is the one with "make build-container".
make build-container
docker build -t gcr.io/k8s-staging-npd/node-problem-detector:v0.8.7 --build-arg BASEIMAGE=k8s.gcr.io/debian-base-amd64:v1.0.0 --build-arg LOGCOUNTER=./bin/log-counter .
Sending build context to Docker daemon 126.4MB
Step 1/10 : ARG BASEIMAGE
Step 2/10 : FROM ${BASEIMAGE}
---> 204e96332c91
Step 3/10 : MAINTAINER Random Liu <xxx@google.com>
---> Using cache
---> 8c640a11852c
Step 4/10 : RUN clean-install util-linux libsystemd0 bash
---> [Warning] The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
---> Running in eeca6d8aa2c3
standard_init_linux.go:228: exec user process caused: exec format error
The command '/bin/sh -c clean-install util-linux libsystemd0 bash' returned a non-zero code: 1
make: *** [Makefile:209: build-container] Error 1
What version of this repo are you using? The latest version uses a multiarch BASEIMAGE: https://github.com/kubernetes/node-problem-detector/blob/v0.8.12/Makefile#L78.
The issue is that you're trying to exec the "RUN" command on a amd64 base image against a arm64 host. --build-arg BASEIMAGE=k8s.gcr.io/debian-base-amd64:v1.0.0
is the problem argument.
This should be fixed as of v0.8.11
We are using v0.8.7 tagged release code.
okay. So if we move to v0.8.11 -- are we good with using the same build command "make build-container" ?
On a side node, we currently have a validated v0.8.7 deployment already running in our k8s clusters. When we have to move to v0.8.11 -- are there any major changes that may require new configmap or new changes that may break the deployment? Or is v0.8.11 fairly compatible with a previous deployment of x0.8.7 from a deployment configuration point of view.
okay. So if we move to v0.8.11 -- are we good with using the same build command "make build-container" ?
Yes, that target will build a multi-arch image.
When we have to move to v0.8.11 -- are there any major changes that may require new configmap or new changes that may break the deployment?
Please check the release notes for discussion on compatibility, and validate with other components on your k8s clusters. Most changes appear to be with reporting functionality, but there were some changes for taint/tolerations (eg: https://github.com/kubernetes/node-problem-detector/pull/551/files).
Hi @pwschuurman - any chance if you could please publish your ARM64 and multi-arch specific tags to the k8s.gcr.io/node-problem-detector/node-problem-detector image.
We tried the v0.8.11 release tag code. Attempting a make ran into these failures. Should we be doing any specific prep work prior to building the image? Did you ever run into this issue..
#0 76.55 Get:22 http://deb.debian.org/debian buster/main amd64 libip4tc0 amd64 1.8.2-4 [70.2 kB]
#0 76.57 Get:23 http://deb.debian.org/debian buster/main amd64 libkmod2 amd64 26-1 [52.7 kB]
#0 76.57 Get:24 http://deb.debian.org/debian buster/main amd64 systemd amd64 241-7~deb10u8 [3496 kB]
#0 81.46 debconf: delaying package configuration, since apt-utils is not installed
#0 81.98 Fetched 10.3 MB in 1s (6953 kB/s)
#0 82.20 Error while loading /usr/sbin/dpkg-split: No such file or directory
#0 82.22 Error while loading /usr/sbin/dpkg-deb: No such file or directory
#0 82.22 dpkg: error processing archive /var/cache/apt/archives/libtinfo6_6.1+20181013-2+deb10u2_amd64.deb (--unpack):
#0 82.22 dpkg-deb --control subprocess returned error exit status 1
#0 82.26 Errors were encountered while processing:
#0 82.26 /var/cache/apt/archives/libtinfo6_6.1+20181013-2+deb10u2_amd64.deb
#0 82.62 E: Sub-process /usr/bin/dpkg returned an error code (1)
------
Dockerfile:36
--------------------
34 | LABEL maintainer="Random Liu <xyz@google.com>"
35 |
36 | >>> RUN clean-install util-linux libsystemd0 bash systemd
37 |
38 | # Avoid symlink of /etc/localtime.
--------------------
error: failed to solve: process "/dev/.buildkit_qemu_emulator /bin/sh -c clean-install util-linux libsystemd0 bash systemd" did not complete successfully: exit code: 100
make: *** [Makefile:245: build-container] Error 1
It looks like the build is failing on the linux/amd64 build step when installing packages in k8s.gcr.io/debian-base:v1.0.0. When running docker buildx, the --platform
flag should allow you to select and install the architecture specific packages based on your platform. You can try to change the LINUX_PLATFORMS
and DOCKER_PLATFORMS
values in your Makefile to only build for linux/amd64, and see if that succeeds. There might be some challenges running docker buildx qemu on your arm64 build platform.
Can you post a link to your entire log output from your Make/Docker build, from the first invocation to make build-container
? Is the linux/arm64 build step succeeding?
Hi @pwschuurman here is the full output from a clean make build-container. A make clean was done prior to running this cycle.
https://pastebin.mozilla.org/9WKNGE1c/raw
If it is not too much of an issue - could you please publish your ARM64 and multi-arch specific tags to the k8s.gcr.io/node-problem-detector/node-problem-detector image. We would be then able to do a one-time only pull from your verified images as a known publisher. If you do not prefer to make those image tags publicly available -- you can pass me the published docker images (with ARM64 and multi-arch tags) in a pastebin, and once we do a pull on them, you can un-publish those image tags.
Hi @amit213,
If it is not too much of an issue - could you please publish your ARM64 and multi-arch specific tags to the k8s.gcr.io/node-problem-detector/node-problem-detector image
Unfortunately, I'm unable to share these at the moment. I've been able to compile the multi-arch images on amd64 platform, but arm64 platform seems to have problems building the amd64 image.
Are you able to just build the linux/arm64 image? You could patch your Makefile like this, to allow target platforms to be specified with a env var. Is this solution is satisfactory, please submit a PR to update this upstream, so this parameter option can be in future releases: https://github.com/kubernetes/node-problem-detector/compare/master...pwschuurman:node-problem-detector:makefile-platform-env-var
Alternatively, you can just run the underlying docker commands (change the --platform
argument), that are emitted from the Makefile:
make build-container -n
rm -rf bin/
rm -rf test/bin/
rm -f node-problem-detector-*.tar.gz*
rm -rf output/
rm -f coverage.out
docker buildx create --use
docker buildx build --platform linux/amd64,linux/arm64 -t gcr.io/k8s-staging-npd/node-problem-detector:v0.8.11-dirty --build-arg BASEIMAGE=k8s.gcr.io/debian-base:v2.0.0 --build-arg LOGCOUNTER=./bin/log-counter .
I have successfully built the node-problem-detector docker image on arm64 but while running it gives below warning and gives OCI runtime error.
[Warning] The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
I inspected more on the same and found that the base image k8s.gcr.io/debian-base:v2.0.0 downloaded in my local arm64 machine is for amd64 but earlier base image k8s.gcr.io/debian-base:v2.0.0 was downloading for arm64 when docker image for arm64 was built with Dockerfile.
So, I have tried with base image k8s.gcr.io/debian-base-arm64:v2.0.0 but even it is an amd64 image.
ubuntu@arm64: ~/$ sudo docker image inspect k8s.gcr.io/debian-base-arm64:v2.0.0 | grep Arch
"Architecture": "amd64"
I think all the tags built for this debian-base are for amd64. Firstly, we must build and release debian-base image for arm64 platform and then we can build and release node-problem-detector image.
@pwschuurman I did try to change the platform parameter in the Makefile to try to selectively only build the arm64 instance. But similar to what @odidev mentioned earlier -- even this approach fails. The failure is more silent. On the screen the make build process just stops.
LINUX_PLATFORMS=linux_arm64 DOCKER_PLATFORMS=linux/arm64
Actually, if you are not able to share the multi-arch just yet then that's fine. Could you please in the meantime share the arm64 only container images for NPC? We will try to unblock our developers using this arm64 images in the meantime.
I am also trying out your patch to see if that helps complete the build successfully.
Actually, if you are not able to share the multi-arch just yet then that's fine. Could you please in the meantime share the arm64 only container images for NPC? We will try to unblock our developers using this arm64 images in the meantime.
Ah, actually there are multiarch tags available. The latest version is v0.8.12: k8s.gcr.io/node-problem-detector/node-problem-detector:v0.8.12 https://console.cloud.google.com/gcr/images/k8s-artifacts-prod/us/node-problem-detector
I think all the tags built for this debian-base are for amd64. Firstly, we must build and release debian-base image for arm64 platform and then we can build and release node-problem-detector image.
It looks like the v2.0.0 images are actually arm64 images, just tagged with amd64 architecture. So running the debian-base image directly will cause the issue you described (does not match the detected host platform
), but the built NPD image should be correctly tagged. There are newer images that have correct architecture tagging however. You could use the following docker command to build. For example:
docker buildx build --platform linux/arm64 -t gcr.io/k8s-staging-npd/node-problem-detector:v0.8.11-dirty --build-arg BASEIMAGE=k8s.gcr.io/build-image/debian-base:buster-v1.10.0 --build-arg LOGCOUNTER=./bin/log-counter . --load
@pwschuurman I am facing the same issue when I try to build amd64 image. The latest image (k8s.gcr.io/node-problem-detector/node-problem-detector:v0.8.12) available is for arm64.
Here is the error I get when I run docker build from my mac:
docker buildx build --platform linux/amd64 -t gcr.io/k8s-staging-npd/node-problem-detector:v0.8.12-amd64 --build-arg BASEIMAGE=k8s.gcr.io/debian-base-amd64:v2.0.0 --build-arg LOGCOUNTER=./bin/log-counter . --load
[+] Building 23.6s (9/19)
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.86kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for k8s.gcr.io/debian-base-amd64:v2.0.0 0.5s
=> [internal] load metadata for docker.io/library/golang:1.17.7 4.2s
=> CACHED [builder 1/8] FROM docker.io/library/golang:1.17.7@sha256:b983574376a29f21ccba0a90f1e1f31864d084cee73295b7 0.0s
=> => resolve docker.io/library/golang:1.17.7@sha256:b983574376a29f21ccba0a90f1e1f31864d084cee73295b774305b792b31b8b 0.0s
=> [internal] load build context 0.2s
=> => transferring context: 294.87kB 0.2s
=> CACHED [stage-1 1/6] FROM k8s.gcr.io/debian-base-amd64:v2.0.0@sha256:d7be39e143d4e6677a28c81c0a84868b40800fc979de 0.0s
=> => resolve k8s.gcr.io/debian-base-amd64:v2.0.0@sha256:d7be39e143d4e6677a28c81c0a84868b40800fc979dea1848bb19d52666 0.0s
=> CANCELED [builder 2/8] RUN apt-get update --fix-missing && apt-get --yes install libsystemd-dev gcc-aarch64-linu 19.3s
=> ERROR [stage-1 2/6] RUN clean-install util-linux libsystemd0 bash systemd 19.3s
------
> [stage-1 2/6] RUN clean-install util-linux libsystemd0 bash systemd:
#0 0.508 Get:1 http://security.debian.org/debian-security buster/updates InRelease [34.8 kB]
#0 0.588 Get:2 http://deb.debian.org/debian buster InRelease [122 kB]
#0 0.720 Get:3 http://deb.debian.org/debian buster-updates InRelease [56.6 kB]
#0 2.018 Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [357 kB]
#0 3.452 Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7909 kB]
#0 4.959 Get:6 http://deb.debian.org/debian buster-updates/main amd64 Packages [8788 B]
#0 7.864 Fetched 8489 kB in 7s (1140 kB/s)
#0 7.864 Reading package lists...
#0 11.28 Reading package lists...
#0 14.55 Building dependency tree...
#0 15.06 Reading state information...
#0 15.46 The following additional packages will be installed:
#0 15.46 dmsetup fdisk libapparmor1 libargon2-1 libblkid1 libcap2 libcryptsetup12
#0 15.46 libdevmapper1.02.1 libfdisk1 libidn11 libip4tc0 libjson-c3 libkmod2
#0 15.46 libmount1 libncursesw6 libsmartcols1 libssl1.1 libtinfo6 libuuid1 mount
#0 15.47 Suggested packages:
#0 15.47 bash-doc nfs-common systemd-container policykit-1 dosfstools kbd
#0 15.47 | console-tools util-linux-locales
#0 15.47 Recommended packages:
#0 15.47 bash-completion libgpm2 uuid-runtime libpam-systemd dbus
#0 16.14 The following NEW packages will be installed:
#0 16.14 bash dmsetup fdisk libapparmor1 libargon2-1 libblkid1 libcap2
#0 16.14 libcryptsetup12 libdevmapper1.02.1 libfdisk1 libidn11 libip4tc0 libjson-c3
#0 16.14 libkmod2 libmount1 libncursesw6 libsmartcols1 libssl1.1 libtinfo6 libuuid1
#0 16.14 mount systemd util-linux
#0 16.14 The following packages will be upgraded:
#0 16.14 libsystemd0
#0 16.38 1 upgraded, 23 newly installed, 0 to remove and 24 not upgraded.
#0 16.38 Need to get 10.3 MB of archives.
#0 16.38 After this operation, 34.9 MB of additional disk space will be used.
#0 16.38 Get:1 http://deb.debian.org/debian buster/main amd64 libtinfo6 amd64 6.1+20181013-2+deb10u2 [325 kB]
#0 16.61 Get:2 http://deb.debian.org/debian buster/main amd64 bash amd64 5.0-4 [1378 kB]
#0 16.76 Get:3 http://deb.debian.org/debian buster/main amd64 libuuid1 amd64 2.33.1-0.1 [78.3 kB]
#0 16.76 Get:4 http://deb.debian.org/debian buster/main amd64 libblkid1 amd64 2.33.1-0.1 [195 kB]
#0 17.52 Get:5 http://deb.debian.org/debian buster/main amd64 libmount1 amd64 2.33.1-0.1 [207 kB]
#0 17.53 Get:6 http://deb.debian.org/debian buster/main amd64 libsmartcols1 amd64 2.33.1-0.1 [150 kB]
#0 17.54 Get:7 http://deb.debian.org/debian buster/main amd64 libfdisk1 amd64 2.33.1-0.1 [234 kB]
#0 17.55 Get:8 http://deb.debian.org/debian buster/main amd64 libncursesw6 amd64 6.1+20181013-2+deb10u2 [132 kB]
#0 17.56 Get:9 http://deb.debian.org/debian buster/main amd64 fdisk amd64 2.33.1-0.1 [179 kB]
#0 17.56 Get:10 http://deb.debian.org/debian buster/main amd64 util-linux amd64 2.33.1-0.1 [1062 kB]
#0 17.59 Get:11 http://deb.debian.org/debian buster/main amd64 libsystemd0 amd64 241-7~deb10u8 [331 kB]
#0 17.61 Get:12 http://deb.debian.org/debian buster/main amd64 mount amd64 2.33.1-0.1 [174 kB]
#0 17.61 Get:13 http://deb.debian.org/debian buster/main amd64 libapparmor1 amd64 2.13.2-10 [94.7 kB]
#0 17.62 Get:14 http://deb.debian.org/debian buster/main amd64 libcap2 amd64 1:2.25-2 [17.6 kB]
#0 17.64 Get:15 http://deb.debian.org/debian buster/main amd64 libargon2-1 amd64 0~20171227-0.2 [19.6 kB]
#0 17.69 Get:16 http://deb.debian.org/debian buster/main amd64 dmsetup amd64 2:1.02.155-3 [90.8 kB]
#0 17.76 Get:17 http://deb.debian.org/debian buster/main amd64 libdevmapper1.02.1 amd64 2:1.02.155-3 [141 kB]
#0 17.81 Get:18 http://deb.debian.org/debian buster/main amd64 libjson-c3 amd64 0.12.1+ds-2+deb10u1 [27.3 kB]
#0 17.82 Get:19 http://deb.debian.org/debian buster/main amd64 libssl1.1 amd64 1.1.1n-0+deb10u3 [1551 kB]
#0 17.97 Get:20 http://deb.debian.org/debian buster/main amd64 libcryptsetup12 amd64 2:2.1.0-5+deb10u2 [193 kB]
#0 17.99 Get:21 http://deb.debian.org/debian buster/main amd64 libidn11 amd64 1.33-2.2 [116 kB]
#0 18.00 Get:22 http://deb.debian.org/debian buster/main amd64 libip4tc0 amd64 1.8.2-4 [70.2 kB]
#0 18.00 Get:23 http://deb.debian.org/debian buster/main amd64 libkmod2 amd64 26-1 [52.7 kB]
#0 18.01 Get:24 http://deb.debian.org/debian buster/main amd64 systemd amd64 241-7~deb10u8 [3496 kB]
#0 19.00 debconf: delaying package configuration, since apt-utils is not installed
#0 19.12 Fetched 10.3 MB in 2s (4863 kB/s)
#0 19.16 Error while loading /usr/sbin/dpkg-split: No such file or directory
#0 19.17 Error while loading /usr/sbin/dpkg-deb: No such file or directory
#0 19.17 dpkg: error processing archive /var/cache/apt/archives/libtinfo6_6.1+20181013-2+deb10u2_amd64.deb (--unpack):
#0 19.17 dpkg-deb --control subprocess returned error exit status 1
#0 19.18 Errors were encountered while processing:
#0 19.18 /var/cache/apt/archives/libtinfo6_6.1+20181013-2+deb10u2_amd64.deb
#0 19.25 E: Sub-process /usr/bin/dpkg returned an error code (1)
------
Dockerfile:36
--------------------
34 | LABEL maintainer="Random Liu <lantaol@google.com>"
35 |
36 | >>> RUN clean-install util-linux libsystemd0 bash systemd
37 |
38 | # Avoid symlink of /etc/localtime.
--------------------
error: failed to solve: process "/dev/.buildkit_qemu_emulator /bin/sh -c clean-install util-linux libsystemd0 bash systemd" did not complete successfully: exit code: 100
Hi @atul86244, can you provide details of your host machine that you are building on? Is it linux/amd64 architecture, or linux/arm64 cross compilation?
Hi @pwschuurman , it's arm64 (macbook) .
Hi @atul86244, thanks for the details. It seems that this issue is related to the build environment and compatibility with docker buildx and QEMU on the linux/arm64 environment.
Can you take a look at this thread and see if any of the suggests here solve your build issue? https://github.com/docker/buildx/issues/495#issuecomment-778896842
@pwschuurman, I added few symlinks suggested in the thread you shared and I was able to get through the above error but now I have this error which is not very clear. Do you have any idea about this?
docker buildx build --progress=plain --platform linux/amd64 -t gcr.io/k8s-staging-npd/node-problem-detector:v0.8.12-amd64 --build-arg BASEIMAGE=k8s.gcr.io/debian-base:v2.0.0 --build-arg LOGCOUNTER=./bin/log-counter . --load
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 2.19kB done
#1 DONE 0.0s
#2 [internal] load .dockerignore
#2 transferring context: 2B done
#2 DONE 0.0s
#3 [internal] load metadata for docker.io/library/golang:1.17.7
#3 ...
#4 [internal] load metadata for k8s.gcr.io/debian-base:v2.0.0
#4 DONE 0.6s
#3 [internal] load metadata for docker.io/library/golang:1.17.7
#3 DONE 3.1s
#5 [internal] load build context
#5 DONE 0.0s
#6 [stage-1 1/10] FROM k8s.gcr.io/debian-base:v2.0.0@sha256:ebda8587ec0f49eb88ee3a608ef018484908cbc5aa32556a0d78356088c185d4
#6 resolve k8s.gcr.io/debian-base:v2.0.0@sha256:ebda8587ec0f49eb88ee3a608ef018484908cbc5aa32556a0d78356088c185d4 0.0s done
#6 DONE 0.0s
#7 [stage-1 5/10] RUN ln -s /bin/rm /usr/sbin/rm
#7 CACHED
#8 [stage-1 2/10] RUN ln -s /usr/bin/dpkg-split /usr/sbin/dpkg-split
#8 CACHED
#9 [stage-1 3/10] RUN ln -s /usr/bin/dpkg-deb /usr/sbin/dpkg-deb
#9 CACHED
#10 [stage-1 6/10] RUN clean-install util-linux libsystemd0 bash systemd
#10 CACHED
#11 [stage-1 4/10] RUN ln -s /bin/tar /usr/sbin/tar
#11 CACHED
#12 [stage-1 7/10] RUN test -h /etc/localtime && rm -f /etc/localtime && cp /usr/share/zoneinfo/UTC /etc/localtime || true
#12 CACHED
#13 [builder 1/12] FROM docker.io/library/golang:1.17.7@sha256:b983574376a29f21ccba0a90f1e1f31864d084cee73295b774305b792b31b8bd
#13 resolve docker.io/library/golang:1.17.7@sha256:b983574376a29f21ccba0a90f1e1f31864d084cee73295b774305b792b31b8bd 0.0s done
#13 DONE 0.0s
#5 [internal] load build context
#5 transferring context: 294.87kB 0.2s done
#5 DONE 0.2s
#14 [builder 5/12] RUN ln -s /bin/rm /usr/sbin/rm
#14 CACHED
#15 [builder 7/12] RUN go version
#15 CACHED
#16 [builder 6/12] RUN apt-get update --fix-missing && apt-get --yes install libsystemd-dev gcc-aarch64-linux-gnu
#16 CACHED
#17 [builder 3/12] RUN ln -s /usr/bin/dpkg-deb /usr/sbin/dpkg-deb
#17 CACHED
#18 [builder 2/12] RUN ln -s /usr/bin/dpkg-split /usr/sbin/dpkg-split
#18 CACHED
#19 [builder 4/12] RUN ln -s /bin/tar /usr/sbin/tar
#19 CACHED
#20 [builder 8/12] RUN go get github.com/tools/godep
#20 CACHED
#21 [builder 9/12] RUN godep version
#21 CACHED
#22 [builder 10/12] COPY . /gopath/src/k8s.io/node-problem-detector/
#22 CACHED
#23 [builder 11/12] WORKDIR /gopath/src/k8s.io/node-problem-detector
#23 CACHED
#24 [builder 12/12] RUN make bin/node-problem-detector bin/health-checker bin/log-counter
#24 2.060 CGO_ENABLED=1 GOOS=linux GO111MODULE=on go build \
#24 2.060 -mod vendor \
#24 2.060 -o bin/node-problem-detector \
#24 2.060 -ldflags '-X k8s.io/node-problem-detector/pkg/version.version=v0.8.12-2-g7bd6e85-dirty' \
#24 2.060 -tags "journald " \
#24 2.060 ./cmd/nodeproblemdetector
#24 57.91 go build github.com/coreos/pkg/dlopen: /usr/local/go/pkg/tool/linux_amd64/cgo: exit status 2
#24 127.0 make: *** [Makefile:199: bin/node-problem-detector] Error 1
#24 ERROR: process "/dev/.buildkit_qemu_emulator /bin/sh -c make bin/node-problem-detector bin/health-checker bin/log-counter" did not complete successfully: exit code: 2
------
> [builder 12/12] RUN make bin/node-problem-detector bin/health-checker bin/log-counter:
#24 2.060 CGO_ENABLED=1 GOOS=linux GO111MODULE=on go build \
#24 2.060 -mod vendor \
#24 2.060 -o bin/node-problem-detector \
#24 2.060 -ldflags '-X k8s.io/node-problem-detector/pkg/version.version=v0.8.12-2-g7bd6e85-dirty' \
#24 2.060 -tags "journald " \
#24 2.060 ./cmd/nodeproblemdetector
#24 57.91 go build github.com/coreos/pkg/dlopen: /usr/local/go/pkg/tool/linux_amd64/cgo: exit status 2
#24 127.0 make: *** [Makefile:199: bin/node-problem-detector] Error 1
------
Dockerfile:34
--------------------
32 | COPY . /gopath/src/k8s.io/node-problem-detector/
33 | WORKDIR /gopath/src/k8s.io/node-problem-detector
34 | >>> RUN make bin/node-problem-detector bin/health-checker bin/log-counter
35 |
36 | ARG BASEIMAGE
--------------------
error: failed to solve: process "/dev/.buildkit_qemu_emulator /bin/sh -c make bin/node-problem-detector bin/health-checker bin/log-counter" did not complete successfully: exit code: 2
@codersherlock who is working on linux/arm64 builds
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/lifecycle rotten
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle rotten
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
Would be great to get an ARM image. For those trying to run on Graviton in EKS, this would be huge
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/reopen
/remove-lifecycle rotten
Please send feedback to sig-contributor-experience at kubernetes/community.
/close not-planned
@k8s-triage-robot: Closing this issue, marking it as "Not Planned".
Hi @Random-Liu and Team, We are trying to build this npd image on arm64 (AWS Graviton) instances. Could you please provide some guidance around what specific CLI command parameters / build flags for platform should we be using when running "make".
Currently just running make results into this below listed failure. Thanks in advance for any tips or guidance.
`---> [Warning] The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested ---> Running in 77e6ead4b420 standard_init_linux.go:228: exec user process caused: exec format error The command '/bin/sh -c clean-install util-linux libsystemd0 bash' returned a non-zero code: 1 make: *** [Makefile:209: build-container] Error 1
`