Skip to content

Commit de0a3aa

Browse files
committed
improves hook build
1 parent 7b5b5b1 commit de0a3aa

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,12 +183,12 @@ stop-docker-builder:
183183

184184
.PHONY: run-buildkit-and-registry
185185
run-buildkit-and-registry:
186-
docker run --rm -d --name buildkitd --net host --privileged moby/buildkit:v0.12.2-rootless
186+
docker buildx create --name multiarch --driver docker-container --use --driver-opt network=host
187187
docker run --rm -d --name registry --net host registry:2
188188

189189
.PHONY: stop-buildkit-and-registry
190190
stop-buildkit-and-registry:
191-
docker rm -v --force buildkitd
191+
docker buildx rm multiarch
192192
docker rm -v --force registry
193193

194194
.PHONY: generate-project-list

projects/tinkerbell/hook/Makefile

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ EMBEDDED_IMAGES=$(foreach platform,$(HOOK_PLATFORMS),$(OUTPUT_DIR)/hook-embedded
7272
LINUXKIT_VERSION=$(shell cat $(MAKE_ROOT)/../../linuxkit/linuxkit/GIT_TAG | cut -c2-)
7373
LINUXKIT_CACHE_FILE=$(REPO)/cache/linuxkit-linux-$(BUILDER_PLATFORM_ARCH)-$(LINUXKIT_VERSION)
7474
LINUXKIT_IMAGE_REPO?=$(IMAGE_REPO)
75+
EMBEDDED_IMAGES_REPO?=$(IMAGE_REPO)
7576

7677
# we need to set IMAGE_BUILD_ARGS here even though its the same as the default.
7778
# it is set in Common.mk on the images target (https://github.com/aws/eks-anywhere-build-tooling/blob/8b6d6d66974e881b22e3c9c8ea29adc26f7df5fd/Common.mk#L799)
@@ -143,6 +144,20 @@ $(LINUXKIT_CACHE_FILE): $(PROJECT_DEPENDENCIES_TARGETS)
143144
@mkdir -p $(@D)
144145
cp $(BINARY_DEPS_DIR)/linux-$(BUILDER_PLATFORM_ARCH)/eksa/linuxkit/linuxkit/linuxkit $@
145146

147+
.PHONY: populate-linuxkit-cache
148+
populate-linuxkit-cache:
149+
@git -C $(REPO) checkout -- linuxkit-templates/hook.template.yaml; \
150+
sed -i 's/[^ ]*linuxkit\/\([^:]*\)\(:.*$$\)/$(subst /,\/,$(LINUXKIT_IMAGE_REPO))\/linuxkit\/\1:$(LATEST_TAG)/' $(REPO)/linuxkit-templates/hook.template.yaml; \
151+
images=(); \
152+
while read -r image; do \
153+
if [[ "$$image" == *"sshd"* ]]; then continue; fi; \
154+
images+=($$image); \
155+
done < <(sed -n 's/.*\($(subst /,\/,$(LINUXKIT_IMAGE_REPO)).*$$\)/\1/p' $(REPO)/linuxkit-templates/hook.template.yaml); \
156+
for image in hook-bootkit hook-docker hook-runc hook-containerd hook-kernel hook-ip hook-mdev hook-embedded; do \
157+
images+=($(IMAGE_REPO)/tinkerbell/$$image:$(LATEST_TAG)$(IMAGE_TAG_SUFFIX)); \
158+
done; \
159+
for image in "$${images[@]}"; do build::common::echo_and_run retry $(LINUXKIT_CACHE_FILE) cache pull --cache $(REPO)/cache/linuxkit $$image; done
160+
146161
# We use the linuxkit built from eks-a build tooling
147162
# This includes the linuxkit bin and the images
148163
# The hook linuxkit-template has two sets of images it pulls in
@@ -156,19 +171,9 @@ $(LINUXKIT_CACHE_FILE): $(PROJECT_DEPENDENCIES_TARGETS)
156171
# Using sed they are pulled back out so that we can run cache pull with retries since we tend to see
157172
# issues from time to time pulling from ecr
158173
$(CREATE_HOOK_FILES_PATTERN)-%: BUILD_ARCH=$(if $(findstring x86_64,$*),amd64,arm64)
159-
$(CREATE_HOOK_FILES_PATTERN)-%: $(LINUXKIT_CACHE_FILE) | $$(ENABLE_DOCKER)
174+
$(CREATE_HOOK_FILES_PATTERN)-%: $(LINUXKIT_CACHE_FILE) | populate-linuxkit-cache $$(ENABLE_DOCKER)
160175
@source $(BUILD_LIB)/common.sh && build::common::use_go_version $(GOLANG_VERSION); \
161176
if [ -f $(REPO)/out/linuxkit-hook-default-$(BUILD_ARCH)/hook-cmdline ]; then echo "remove hook/out before continuing"; exit 1; fi; \
162-
sed -i 's/[^ ]*linuxkit\/\([^:]*\)\(:.*$$\)/$(subst /,\/,$(LINUXKIT_IMAGE_REPO))\/linuxkit\/\1:$(LATEST_TAG)/' $(REPO)/linuxkit-templates/hook.template.yaml; \
163-
images=(); \
164-
while read -r image; do \
165-
if [[ "$$image" == *"sshd"* ]]; then continue; fi; \
166-
images+=($$image); \
167-
done < <(sed -n 's/.*\($(subst /,\/,$(LINUXKIT_IMAGE_REPO)).*$$\)/\1/p' $(REPO)/linuxkit-templates/hook.template.yaml); \
168-
for image in hook-bootkit hook-docker hook-runc hook-containerd hook-kernel hook-ip hook-mdev hook-embedded; do \
169-
images+=($(IMAGE_REPO)/tinkerbell/$$image:$(LATEST_TAG)$(IMAGE_TAG_SUFFIX)); \
170-
done; \
171-
for image in "$${images[@]}"; do build::common::echo_and_run retry $(LINUXKIT_CACHE_FILE) cache pull --cache $(REPO)/cache/linuxkit $$image; done; \
172177
cd $(REPO); \
173178
DEBUG=yes LINUXKIT_VERSION_DEFAULT=$(LINUXKIT_VERSION) HOOK_KERNEL_OCI_BASE=$(IMAGE_REPO)/$(KERNEL_IMAGE_COMPONENT) \
174179
HOOK_LK_CONTAINERS_OCI_BASE=$(IMAGE_REPO)/tinkerbell/ \
@@ -194,9 +199,9 @@ $(OUTPUT_DIR)/hook-embedded/linux-%/images: IMAGE_TAG_SUFFIX=
194199
$(OUTPUT_DIR)/hook-embedded/linux-%/images: DIND_IMAGE=$(shell $(MAKE) var-value-LATEST_IMAGE IMAGE_NAME=hook-dind)
195200
$(OUTPUT_DIR)/hook-embedded/linux-%/images: $(GIT_PATCH_TARGET)
196201
mkdir -p $(@D)
197-
echo "$$($(MAKE) -C $(MAKE_ROOT)/../tink var-value-LATEST_IMAGE IMAGE_NAME=tink-worker) 127.0.0.1/embedded/tink-worker true" > $@.txt
202+
echo "$$($(MAKE) -C $(MAKE_ROOT)/../tink var-value-LATEST_IMAGE IMAGE_NAME=tink-worker IMAGE_REPO=$(EMBEDDED_IMAGES_REPO)) 127.0.0.1/embedded/tink-worker true" > $@.txt
198203
for action in cexec kexec image2disk oci2disk writefile reboot; do \
199-
echo "$$($(MAKE) -C $(MAKE_ROOT)/../hub var-value-LATEST_IMAGE IMAGE_NAME=$$action) 127.0.0.1/embedded/$$action true" >> $@.txt; \
204+
echo "$$($(MAKE) -C $(MAKE_ROOT)/../hub var-value-LATEST_IMAGE IMAGE_NAME=$$action IMAGE_REPO=$(EMBEDDED_IMAGES_REPO)) 127.0.0.1/embedded/$$action true" >> $@.txt; \
200205
done
201206
cat $@.txt
202207
@if [[ "$(JOB_TYPE)" == "presubmit" ]] && [[ "$(DOCKER_AVAILABLE)" == "false" ]]; then \

0 commit comments

Comments
 (0)