Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adds builds for opentnpd and dhcpcd for linuxkit images #3883

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 53 additions & 15 deletions projects/linuxkit/linuxkit/CHECKSUMS
Original file line number Diff line number Diff line change
@@ -1,16 +1,54 @@
8c7eb824627d8570adc177a4b7ed7079be4f18dbec7b8553aac315fc6f5a4e68 _output/bin/linuxkit/linux-amd64/init
2b36766ee60593032927457692ad5ffb0276fac7c33f1b67a9bbda34296aa575 _output/bin/linuxkit/linux-amd64/linuxkit
01f6c0d2c32b8928b197d95b21dc61f82ed42da5ba7dd8d507480927ac6ab55c _output/bin/linuxkit/linux-amd64/rc.init
b74f90171dc6e76917a131fa2f12e590b04aa8e178cb2e25bf3342c835cf3a91 _output/bin/linuxkit/linux-amd64/rngd
9ae3f538244554b90c3f3d9ef5fa212fde5629d8185eb5530feb496e15aec121 _output/bin/linuxkit/linux-amd64/service
3b0e5a5c11f5c4dbc8d2e15298933a678e0ec846cd9341c0a561e2804a1e5590 _output/bin/linuxkit/linux-amd64/sysctl
175b0ce4b87ecb9eb9a2ab8b48ad13c1c516d50c0458b3310f85f6426ec65424 _output/bin/linuxkit/linux-amd64/sysfs
5c0e35f2b53f7ef1d9876042f170363e2a00e3f41272a73cd547c2d8027531f4 _output/bin/linuxkit/linux-amd64/dhcpcd/etc/dhcpcd.conf
0a4a1efe4e105e68e564a49cc8de40de2263166a65478ceafd94236661f1a75d _output/bin/linuxkit/linux-amd64/dhcpcd/libexec/dhcpcd-hooks/01-test
875a1c7ee413d03e31d40039174b8b39d49138ae9255905711a393d1df4ad791 _output/bin/linuxkit/linux-amd64/dhcpcd/libexec/dhcpcd-hooks/20-resolv.conf
4095c986cb626310918a47209720da2b8348b1f5d50777f09cfd5538a9bb1a24 _output/bin/linuxkit/linux-amd64/dhcpcd/libexec/dhcpcd-hooks/30-hostname
5a32ff94f0e764566b6d059cc1eddb9d2a104d0a25747e54b5a5983e77b265ef _output/bin/linuxkit/linux-amd64/dhcpcd/libexec/dhcpcd-run-hooks
e88184fc74129d30242259b3eeebfad7be579b67143e41004ee35e94ce897367 _output/bin/linuxkit/linux-amd64/dhcpcd/usr/sbin/dhcpcd
476fddc1eeb058e7d6d2057645a498932d5606bc1220660049d912cb2c409e76 _output/bin/linuxkit/linux-amd64/dhcpcd/usr/share/dhcpcd/hooks/10-wpa_supplicant
ba1412ce405aaa73d10f59ccfffea470d0dcdb32b3192aea2e8c8f79bda6b5d7 _output/bin/linuxkit/linux-amd64/dhcpcd/usr/share/dhcpcd/hooks/15-timezone
bfcf1a03c9fa16033fbfc7f045e7d14bea89d4e195a42c19375e425c86866c45 _output/bin/linuxkit/linux-amd64/dhcpcd/usr/share/dhcpcd/hooks/29-lookup-hostname
fe39319d5bcf11545f141667585faace7fb6a071ad06e2f4c5da28a06eacc7ea _output/bin/linuxkit/linux-amd64/dhcpcd/usr/share/dhcpcd/hooks/50-yp.conf
dc2451689c7e5bad2db4a704080015652b6a1ccc33419d780ae483de24d45bc6 _output/bin/linuxkit/linux-amd64/dhcpcd/usr/share/man/man5/dhcpcd.conf.5
bb800ef06e1db66f9488f89439a82999e04733c91aa444912f8297e1452b79ae _output/bin/linuxkit/linux-amd64/dhcpcd/usr/share/man/man8/dhcpcd-run-hooks.8
4d9d9ce6cd38bbc4ec71b6cc9b7bbbfd718cfa4b5ba63529814645eac1af5fb2 _output/bin/linuxkit/linux-amd64/dhcpcd/usr/share/man/man8/dhcpcd.8
5d60a367dff4885239efa0be16f7706074250728d28cdba7bacd0f67666dab4d _output/bin/linuxkit/linux-amd64/init
0d228e4018cb5f1308c82132626c3089dd69ab591b24bcceffb3536b71d2574e _output/bin/linuxkit/linux-amd64/linuxkit
f65bb54f3d6a7b2372f4cab25e9d68a608b16e4e58bf8e7da47cb8870aa39330 _output/bin/linuxkit/linux-amd64/openntpd/usr/etc/ntpd.conf
ca5ead70a274f55621429cd332ba7fcbd34646a990525743d62fa2725c4b1843 _output/bin/linuxkit/linux-amd64/openntpd/usr/sbin/ntpctl
ca5ead70a274f55621429cd332ba7fcbd34646a990525743d62fa2725c4b1843 _output/bin/linuxkit/linux-amd64/openntpd/usr/sbin/ntpd
4bac51bd4e0b909e2577d7c43fbdcb086a285682ce50e216c286507f9b641e9f _output/bin/linuxkit/linux-amd64/openntpd/usr/share/man/man5/ntpd.conf.5
9ad7eb4e30724f82d902b1128321397d5eaf7914e288451c1ff962ca0a02dc7c _output/bin/linuxkit/linux-amd64/openntpd/usr/share/man/man8/ntpctl.8
8b78b1af2f93643685055d69867d295e633d6b5266eede437fcefed68fb71498 _output/bin/linuxkit/linux-amd64/openntpd/usr/share/man/man8/ntpd.8
b6099d0747b575d3620edd3842522f26bd0925b745251fbf09544bb92479a496 _output/bin/linuxkit/linux-amd64/rc.init
415632ca7529359311c89be1603b076f9778e55f47a83fd66149a7a4a5cc7d0b _output/bin/linuxkit/linux-amd64/rngd
4edc335be6c67740e86da326e61afd7a95399dff339f31fedff3108cc2943b6a _output/bin/linuxkit/linux-amd64/service
b3bf36830513cc53d5b2359ca48f32efd171a8e7b8abc9a100139edaebaefa06 _output/bin/linuxkit/linux-amd64/sysctl
8180608a1abf276528cf5f0a3720a925c410ae49de5c4ed77bc3acd8ebcdb93a _output/bin/linuxkit/linux-amd64/sysfs
d265cca80d6075c843048bc6f00d9715345dd3edea4ad92294ac52494aa17a24 _output/bin/linuxkit/linux-amd64/usermode-helper
458a51abbc16766da18bf2da2d018e7a3eebeb0e40d590af65ad6da4880a3f10 _output/bin/linuxkit/linux-arm64/init
92cfb84370d0105d67c0527e46da28914b7728bb0fbe9ddc2aa2807213b8838e _output/bin/linuxkit/linux-arm64/linuxkit
5891be6a7cd0a2fa9a7b353408a2ecc2e99408c602f37b8c637e43c2ad1c07b0 _output/bin/linuxkit/linux-arm64/rc.init
1ae881fed58fb2c6ed619e4012987b98304fd8b7ccc8fe2e3b4cee27d1d9a6f5 _output/bin/linuxkit/linux-arm64/rngd
d95fc44cd7b8194e5d2522fd69f77168136df8b2469d393d243b505f061efed9 _output/bin/linuxkit/linux-arm64/service
3770b07c86b3981618966362eb07028895be1e7537b8d9ecab5b018c7558e8a7 _output/bin/linuxkit/linux-arm64/sysctl
efa89285c422428bdbf4853d61138d618e32502d81738afcfe75b424a4183d1b _output/bin/linuxkit/linux-arm64/sysfs
320cb1a54c971178fc469c55b100488406b9212bfd63aad965f11c3ec652a9cc _output/bin/linuxkit/linux-arm64/usermode-helper
5c0e35f2b53f7ef1d9876042f170363e2a00e3f41272a73cd547c2d8027531f4 _output/bin/linuxkit/linux-arm64/dhcpcd/etc/dhcpcd.conf
0a4a1efe4e105e68e564a49cc8de40de2263166a65478ceafd94236661f1a75d _output/bin/linuxkit/linux-arm64/dhcpcd/libexec/dhcpcd-hooks/01-test
875a1c7ee413d03e31d40039174b8b39d49138ae9255905711a393d1df4ad791 _output/bin/linuxkit/linux-arm64/dhcpcd/libexec/dhcpcd-hooks/20-resolv.conf
4095c986cb626310918a47209720da2b8348b1f5d50777f09cfd5538a9bb1a24 _output/bin/linuxkit/linux-arm64/dhcpcd/libexec/dhcpcd-hooks/30-hostname
5a32ff94f0e764566b6d059cc1eddb9d2a104d0a25747e54b5a5983e77b265ef _output/bin/linuxkit/linux-arm64/dhcpcd/libexec/dhcpcd-run-hooks
47e1073ce085915b54f4040bc640d8e21ffe35411d3303aaa02c5ea818919a5a _output/bin/linuxkit/linux-arm64/dhcpcd/usr/sbin/dhcpcd
476fddc1eeb058e7d6d2057645a498932d5606bc1220660049d912cb2c409e76 _output/bin/linuxkit/linux-arm64/dhcpcd/usr/share/dhcpcd/hooks/10-wpa_supplicant
ba1412ce405aaa73d10f59ccfffea470d0dcdb32b3192aea2e8c8f79bda6b5d7 _output/bin/linuxkit/linux-arm64/dhcpcd/usr/share/dhcpcd/hooks/15-timezone
bfcf1a03c9fa16033fbfc7f045e7d14bea89d4e195a42c19375e425c86866c45 _output/bin/linuxkit/linux-arm64/dhcpcd/usr/share/dhcpcd/hooks/29-lookup-hostname
fe39319d5bcf11545f141667585faace7fb6a071ad06e2f4c5da28a06eacc7ea _output/bin/linuxkit/linux-arm64/dhcpcd/usr/share/dhcpcd/hooks/50-yp.conf
dc2451689c7e5bad2db4a704080015652b6a1ccc33419d780ae483de24d45bc6 _output/bin/linuxkit/linux-arm64/dhcpcd/usr/share/man/man5/dhcpcd.conf.5
bb800ef06e1db66f9488f89439a82999e04733c91aa444912f8297e1452b79ae _output/bin/linuxkit/linux-arm64/dhcpcd/usr/share/man/man8/dhcpcd-run-hooks.8
4d9d9ce6cd38bbc4ec71b6cc9b7bbbfd718cfa4b5ba63529814645eac1af5fb2 _output/bin/linuxkit/linux-arm64/dhcpcd/usr/share/man/man8/dhcpcd.8
ab9539ca2e05181fdd09842713cf9b9db0574ca05c4c1115098406ddee6cd4c6 _output/bin/linuxkit/linux-arm64/init
6599ea1fdfa2ca57968687449d22cfe3165044e051828cb7d21dd600a0a76eff _output/bin/linuxkit/linux-arm64/linuxkit
f65bb54f3d6a7b2372f4cab25e9d68a608b16e4e58bf8e7da47cb8870aa39330 _output/bin/linuxkit/linux-arm64/openntpd/usr/etc/ntpd.conf
30c064e5f38bd9d1e9278af2576393a340080dd215e783f83efe6c8191b75ed4 _output/bin/linuxkit/linux-arm64/openntpd/usr/sbin/ntpctl
30c064e5f38bd9d1e9278af2576393a340080dd215e783f83efe6c8191b75ed4 _output/bin/linuxkit/linux-arm64/openntpd/usr/sbin/ntpd
4bac51bd4e0b909e2577d7c43fbdcb086a285682ce50e216c286507f9b641e9f _output/bin/linuxkit/linux-arm64/openntpd/usr/share/man/man5/ntpd.conf.5
9ad7eb4e30724f82d902b1128321397d5eaf7914e288451c1ff962ca0a02dc7c _output/bin/linuxkit/linux-arm64/openntpd/usr/share/man/man8/ntpctl.8
8b78b1af2f93643685055d69867d295e633d6b5266eede437fcefed68fb71498 _output/bin/linuxkit/linux-arm64/openntpd/usr/share/man/man8/ntpd.8
50054f69aa251876a85b17104b96bb30291d6136960e106dd854cc0c1ff1e4d9 _output/bin/linuxkit/linux-arm64/rc.init
3b993a1075c67b01436458f2928ae3efc34cd4c96bfb3c4a8d4a06e231e9f0ed _output/bin/linuxkit/linux-arm64/rngd
bbf890706953d9c739f6c7486c383ce429c7875f4314b8ca8234ed13e079ada9 _output/bin/linuxkit/linux-arm64/service
7dbeb393a3b534b4e3ea8f3a07e1e303df30f92357a41f9510dc8ed77cd7c3a7 _output/bin/linuxkit/linux-arm64/sysctl
d0dcbcc93777dc894efcc88e081e13e1ee5b027e3dc344d2122a062539f7b674 _output/bin/linuxkit/linux-arm64/sysfs
320cb1a54c971178fc469c55b100488406b9212bfd63aad965f11c3ec652a9cc _output/bin/linuxkit/linux-arm64/usermode-helper
57 changes: 49 additions & 8 deletions projects/linuxkit/linuxkit/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ REPO_OWNER=linuxkit

BASE_IMAGE_NAME?=eks-distro-minimal-base

BINARY_TARGET_FILES=linuxkit rngd sysfs sysctl init rc.init service
GO_MOD_PATHS=src/cmd/linuxkit pkg/rngd pkg/sysfs pkg/sysctl pkg/init pkg/init pkg/init
SOURCE_PATTERNS=. ./cmd/rngd . . ./cmd/init ./cmd/rc.init ./cmd/service
# The go_mod_path for usermode/dhcpcd/ntpd are set to the linuxkit path to avoid issues trying to go mod vendor
# and source_patterns are ignored since these are native builds
BINARY_TARGET_FILES=linuxkit usermode-helper dhcpcd/usr/sbin/dhcpcd openntpd/usr/sbin/ntpd rngd sysfs sysctl init rc.init service
GO_MOD_PATHS=src/cmd/linuxkit src/cmd/linuxkit src/cmd/linuxkit src/cmd/linuxkit pkg/rngd pkg/sysfs pkg/sysctl pkg/init pkg/init pkg/init
SOURCE_PATTERNS=. . . . ./cmd/rngd . . ./cmd/init ./cmd/rc.init ./cmd/service


# this is a native build which we can not cross compile
Expand All @@ -17,7 +19,6 @@ SOURCE_PATTERNS=. ./cmd/rngd . . ./cmd/init ./cmd/rc.init ./cmd/service
# binary in the wrong folder
BINARY_PLATFORMS?=linux/$(BUILDER_PLATFORM_ARCH)
IMAGE_PLATFORMS?=linux/$(BUILDER_PLATFORM_ARCH)
USERMODE_HELPER_TARGETS=$(foreach platform,$(IMAGE_PLATFORMS),$(OUTPUT_BIN_DIR)/$(subst /,-,$(platform))/usermode-helper)

IMAGE_NAMES=init ca-certificates firmware rngd sysctl sysfs modprobe dhcpcd openntpd getty

Expand All @@ -28,7 +29,7 @@ IMAGE_NAMES=init ca-certificates firmware rngd sysctl sysfs modprobe dhcpcd open
# to the standard combine-images dockerfile
# If we setup our override in this Makefile at the target it does not allow the combine-images
# to override it
IMAGES_USING_UPSTREAM_DOCKERFILES=ca-certificates dhcpcd firmware getty init modprobe openntpd
IMAGES_USING_UPSTREAM_DOCKERFILES=ca-certificates firmware getty init modprobe
DOCKERFILE_FOLDER=$(if $(filter $(IMAGE_NAME),$(IMAGES_USING_UPSTREAM_DOCKERFILES)),$(REPO)/pkg/$(IMAGE_NAME),./docker/linux/$(IMAGE_NAME))

INIT_IMAGE_COMPONENT=linuxkit/init
Expand Down Expand Up @@ -69,15 +70,14 @@ BUILDSPEC_1_VARS_VALUES=IMAGE_PLATFORMS
BUILDSPEC_1_ARCH_TYPES=LINUX_CONTAINER ARM_CONTAINER
BUILDSPEC_2_DEPENDS_ON_OVERRIDE=linuxkit_linuxkit_linux_amd64 linuxkit_linuxkit_linux_arm64


# Since we build the arm and amd binaries on difference instances in codebuild
# we do not want to delete missing files when s3 sync-ing from local to the bucket
# since this would clobber the other build's artifacts
UPLOAD_DO_NOT_DELETE=true

include $(BASE_DIRECTORY)/Common.mk

# build usermode-helper with binary targets
validate-checksums: $(USERMODE_HELPER_TARGETS)

dhcpcd/images/% getty/images/% modprobe/images/% openntpd/images/% rngd/images/% sysctl/images/% sysfs/images/%: IMAGE_BUILD_ARGS+=MOBY_CONFIG

Expand All @@ -91,7 +91,12 @@ $(OUTPUT_BIN_DIR)/linux-%/rngd: EXTRA_GO_LDFLAGS=-extldflags -static
$(OUTPUT_BIN_DIR)/linux-%/rngd: EXTRA_GOBUILD_FLAGS=-tags netgo,osusergo,static_build
$(OUTPUT_DIR)/rngd/attribution/go-license.csv: CGO_CREATE_BINARIES=true

ca-certificates/images/% dhcpcd/images/% firmware/images/% getty/images/% modprobe/images/% openntpd/images/%: IMAGE_CONTEXT_DIR=$(REPO)/pkg/$(IMAGE_NAME)
ca-certificates/images/% firmware/images/% getty/images/% modprobe/images/%: IMAGE_CONTEXT_DIR=$(REPO)/pkg/$(IMAGE_NAME)

dhcpcd/images/% openntpd/images/%: BASE_IMAGE_NAME=eks-distro-minimal-base-glibc

$(call IMAGE_TARGETS_FOR_NAME,openntpd): openntpd-useradd/images/export
openntpd-useradd/images/export: IMAGE_USERADD_USER_NAME=_ntp
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is this username coming from? Couldn't find it in the upstream Linuxkit openntpd Dockerfile.


$(OUTPUT_BIN_DIR)/%/usermode-helper: MAKEFLAGS=
$(OUTPUT_BIN_DIR)/%/usermode-helper: PLATFORM=$(subst -,/,$*)
Expand All @@ -100,6 +105,42 @@ $(OUTPUT_BIN_DIR)/%/usermode-helper: $(GIT_PATCH_TARGET) | $$(call ENABLE_DOCKER
LDFLAGS=-static CFLAGS=-Werror $(MAKE) -C $(REPO)/pkg/init usermode-helper; \
mv $(REPO)/pkg/init/usermode-helper $@

$(OUTPUT_BIN_DIR)/%/dhcpcd/usr/sbin/dhcpcd: MAKEFLAGS=
$(OUTPUT_BIN_DIR)/%/dhcpcd/usr/sbin/dhcpcd: PLATFORM=$(subst -,/,$*)
$(OUTPUT_BIN_DIR)/%/dhcpcd/usr/sbin/dhcpcd: OUTPUT_PATH=$(MAKE_ROOT)/$(OUTPUT_BIN_DIR)/$*/dhcpcd
$(OUTPUT_BIN_DIR)/%/dhcpcd/usr/sbin/dhcpcd: VERSION=$(shell yq '.DHCPCD.version' dependencies.yaml )
$(OUTPUT_BIN_DIR)/%/dhcpcd/usr/sbin/dhcpcd: SHA256SUM=$(shell yq '.DHCPCD.sha256sum' dependencies.yaml )
$(OUTPUT_BIN_DIR)/%/dhcpcd/usr/sbin/dhcpcd: $(GIT_PATCH_TARGET) | $$(call ENABLE_DOCKER_PLATFORM,$$(PLATFORM))
mkdir -p $(OUTPUT_DIR)/dhcpcd; \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could move this and the one below for openntpd into a common script or Macro

cd $(OUTPUT_DIR)/dhcpcd; \
curl -qL --retry-connrefused -O https://github.com/NetworkConfiguration/dhcpcd/releases/download/v$(VERSION)/dhcpcd-$(VERSION).tar.xz; \
echo "$(SHA256SUM) dhcpcd-$(VERSION).tar.xz" > shasum; \
sha256sum -c shasum; \
tar -xf dhcpcd-$(VERSION).tar.xz; \
cd dhcpcd-$(VERSION); \
LDFLAGS="-Wl,--build-id=none" ./configure; \
make; \
DESTDIR=$(OUTPUT_PATH) make install; \
mv $(OUTPUT_PATH)/sbin $(OUTPUT_PATH)/usr

$(OUTPUT_BIN_DIR)/%/openntpd/usr/sbin/ntpd: MAKEFLAGS=
$(OUTPUT_BIN_DIR)/%/openntpd/usr/sbin/ntpd: PLATFORM=$(subst -,/,$*)
$(OUTPUT_BIN_DIR)/%/openntpd/usr/sbin/ntpd: OUTPUT_PATH=$(MAKE_ROOT)/$(OUTPUT_BIN_DIR)/$*/openntpd
$(OUTPUT_BIN_DIR)/%/openntpd/usr/sbin/ntpd: VERSION=$(shell yq '.NTPD.version' dependencies.yaml )
$(OUTPUT_BIN_DIR)/%/openntpd/usr/sbin/ntpd: SHA256SUM=$(shell yq '.NTPD.sha256sum' dependencies.yaml )
$(OUTPUT_BIN_DIR)/%/openntpd/usr/sbin/ntpd: $(GIT_PATCH_TARGET) | $$(call ENABLE_DOCKER_PLATFORM,$$(PLATFORM))
mkdir -p $(OUTPUT_DIR)/openntpd $(OUTPUT_PATH)/usr; \
cd $(OUTPUT_DIR)/openntpd; \
curl -qL --retry-connrefused -O https://cdn.openbsd.org/pub/OpenBSD/OpenNTPD/openntpd-$(VERSION).tar.gz; \
echo "$(SHA256SUM) openntpd-$(VERSION).tar.gz" > shasum; \
sha256sum -c shasum; \
tar -xf openntpd-$(VERSION).tar.gz; \
cd openntpd-$(VERSION); \
LDFLAGS="-Wl,--build-id=none" ./configure --prefix=/usr; \
make; \
DESTDIR=$(OUTPUT_PATH) make install


$(FIX_LICENSES_SUB_MOD_TARGETS): $(GIT_PATCH_TARGET)
# the src/cmd/linuxkit dir does not have the license file, copy from repo root
cp $(REPO)/LICENSE $@
Expand Down
6 changes: 6 additions & 0 deletions projects/linuxkit/linuxkit/dependencies.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
DHCPCD:
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is kind of a new pattern, we may want to break these builds out later on, for now we are only going to use them here to produce images we only use during hook build time. I did model this a bit off how we do the builder-base versions.yaml. I was thinking this would be easy to add the upgrade script to check for new versions and update.

sha256sum: d582012992efddd2442bb1213c518a37d90febbcf8b11f8e76448c710dacad27
version: 10.0.10
NTPD:
sha256sum: 8582db838a399153d4a17f2a76518b638cc3020f58028575bf54127518f55a46
version: 6.8p1
34 changes: 34 additions & 0 deletions projects/linuxkit/linuxkit/docker/linux/dhcpcd/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
ARG BASE_IMAGE # https://gallery.ecr.aws/eks-distro-build-tooling/eks-distro-minimal-base-glibc

ARG BUILDER_IMAGE
FROM $BUILDER_IMAGE as builder

# Bash and the following utils are needed
# by the various dhcpcd hook scripts
# and the dhcp.sh provided by hook
RUN set -x && \
install_rpm bash && \
install_binary \
/usr/bin/cat \
/usr/bin/chmod \
/sbin/ifconfig \
/usr/bin/mkdir \
/usr/bin/sed \
/usr/bin/sleep \
/usr/bin/rm && \
cleanup "deps"

FROM $BASE_IMAGE
ARG TARGETARCH
ARG TARGETOS

ARG MOBY_CONFIG
LABEL "org.mobyproject.config"="${MOBY_CONFIG}"

COPY --from=builder /newroot /
COPY _output/bin/linuxkit/$TARGETOS-$TARGETARCH/dhcpcd /
# put the config file in / because we bind mount /etc to handle resolv.conf symlinks
COPY linuxkit/pkg/dhcpcd/dhcpcd.conf /
COPY linuxkit/pkg/dhcpcd/usr/ /usr/

CMD ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf"]
22 changes: 22 additions & 0 deletions projects/linuxkit/linuxkit/docker/linux/openntpd/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
ARG BASE_IMAGE # https://gallery.ecr.aws/eks-distro-build-tooling/eks-distro-minimal-base-glibc
ARG BUILDER_IMAGE
FROM $BUILDER_IMAGE as builder

RUN set -x && \
mkdir -p /home/_ntp && \
chmod 750 /home/_ntp

FROM $BASE_IMAGE

ARG TARGETARCH
ARG TARGETOS
ARG MOBY_CONFIG

LABEL "org.mobyproject.config"="${MOBY_CONFIG}"

COPY --from=builder /home/_ntp/ /home/_ntp/
COPY _output/files/openntpd /
COPY _output/bin/linuxkit/$TARGETOS-$TARGETARCH/openntpd/ /
COPY linuxkit/pkg/openntpd/etc/ /etc/

CMD ["/usr/sbin/ntpd", "-d"]
Original file line number Diff line number Diff line change
@@ -1,31 +1,16 @@
From 0351bc722895d515183b79282beef2e61c1ba28f Mon Sep 17 00:00:00 2001
From c5522a1404d9f5b425538c9c4d36cba22be64782 Mon Sep 17 00:00:00 2001
From: Jackson West <[email protected]>
Date: Wed, 2 Oct 2024 17:57:37 +0000
Subject: [PATCH 1/3] add moby config to dockerfiles for packages used by hook

---
pkg/dhcpcd/Dockerfile | 2 ++
pkg/getty/Dockerfile | 2 ++
pkg/modprobe/Dockerfile | 2 ++
pkg/openntpd/Dockerfile | 2 ++
pkg/rngd/Dockerfile | 2 ++
pkg/sysctl/Dockerfile | 2 ++
pkg/sysfs/Dockerfile | 2 ++
7 files changed, 14 insertions(+)
5 files changed, 10 insertions(+)

diff --git a/pkg/dhcpcd/Dockerfile b/pkg/dhcpcd/Dockerfile
index ed760cfed..0ff5500e9 100644
--- a/pkg/dhcpcd/Dockerfile
+++ b/pkg/dhcpcd/Dockerfile
@@ -10,6 +10,8 @@ RUN apk add --no-cache --initdb -p /out \
RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache

FROM scratch
+ARG MOBY_CONFIG
+LABEL "org.mobyproject.config"="${MOBY_CONFIG}"
ENTRYPOINT []
CMD []
WORKDIR /
diff --git a/pkg/getty/Dockerfile b/pkg/getty/Dockerfile
index ae10de07d..60d687065 100644
--- a/pkg/getty/Dockerfile
Expand All @@ -48,19 +33,6 @@ index 0cb683fa6..3c1cab58c 100644

FROM scratch
+ARG MOBY_CONFIG
+LABEL "org.mobyproject.config"="${MOBY_CONFIG}"
ENTRYPOINT []
CMD []
WORKDIR /
diff --git a/pkg/openntpd/Dockerfile b/pkg/openntpd/Dockerfile
index b8c073005..4fd4928c3 100644
--- a/pkg/openntpd/Dockerfile
+++ b/pkg/openntpd/Dockerfile
@@ -10,6 +10,8 @@ RUN apk add --no-cache --initdb -p /out \
RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache

FROM scratch
+ARG MOBY_CONFIG
+LABEL "org.mobyproject.config"="${MOBY_CONFIG}"
ENTRYPOINT []
CMD []
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
From 07ca76275ceda7f3e3eb5302f20c57bf5d05bc62 Mon Sep 17 00:00:00 2001
From 0bd21723c4ddceb0cb1b343a5099105445fedc77 Mon Sep 17 00:00:00 2001
From: Jackson West <[email protected]>
Date: Sat, 31 Aug 2024 02:17:22 +0000
Subject: [PATCH 2/3] init dockerfile to use eks-a built bins
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
From caf17c8da1cf7bfeccaa216b1c4d654f2fabb682 Mon Sep 17 00:00:00 2001
From 9036535ea40179bd1fb924037dbf17ff9fb02500 Mon Sep 17 00:00:00 2001
From: Prow Bot <[email protected]>
Date: Mon, 7 Oct 2024 19:35:59 +0000
Subject: [PATCH 3/3] pass cpu host when running qemu to support testing al23
Expand Down
4 changes: 4 additions & 0 deletions projects/tinkerbell/hook/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ If the config file names change upstream be sure to change `HOOK_IMAGE_FILES` in
1. Verify the golang version has not changed. Currently for `hook-bootkit` and `hook-docker` the version mentioned in a [dockerfile](https://github.com/tinkerbell/hook/blob/main/images/hook-bootkit/Dockerfile) of the respective projects is being used to build.
We only support building with one golang version per project, pick the latest from these two dockerfiles if they do not match.
1. Verify no changes have been made to the dockerfile for each image. Looking specifically for added runtime deps.
1. Pay attention to new or changed scripts referenced in the [hook-template](https://github.com/tinkerbell/hook/blob/main/linuxkit-templates/hook.template.yaml). For example
the [dhcp.sh](https://github.com/tinkerbell/hook/blob/main/linuxkit-templates/hook.template.yaml#L280) script, if changes are made that require new runtime deps
be sure to update the dhcpcd [Dockerfile](../../linuxkit/linuxkit/docker/linux/dhcpcd/Dockerfile). If new ones are added, be sure the runtime images we are building which
execute that respective script have the needed dependencies.
1. `hook-docker` image has docker runtime. Hence, verify no new changes have been made with docker version updates.
1. Update checksums and attribution using `make attribution checksums`.
1. Update the version at the top of this Readme.
Expand Down