@@ -72,6 +72,7 @@ EMBEDDED_IMAGES=$(foreach platform,$(HOOK_PLATFORMS),$(OUTPUT_DIR)/hook-embedded
72
72
LINUXKIT_VERSION =$(shell cat $(MAKE_ROOT ) /../../linuxkit/linuxkit/GIT_TAG | cut -c2-)
73
73
LINUXKIT_CACHE_FILE =$(REPO ) /cache/linuxkit-linux-$(BUILDER_PLATFORM_ARCH ) -$(LINUXKIT_VERSION )
74
74
LINUXKIT_IMAGE_REPO? =$(IMAGE_REPO )
75
+ EMBEDDED_IMAGES_REPO? =$(IMAGE_REPO )
75
76
76
77
# we need to set IMAGE_BUILD_ARGS here even though its the same as the default.
77
78
# 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)
143
144
@mkdir -p $(@D )
144
145
cp $(BINARY_DEPS_DIR ) /linux-$(BUILDER_PLATFORM_ARCH ) /eksa/linuxkit/linuxkit/linuxkit $@
145
146
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
+
146
161
# We use the linuxkit built from eks-a build tooling
147
162
# This includes the linuxkit bin and the images
148
163
# The hook linuxkit-template has two sets of images it pulls in
@@ -156,19 +171,9 @@ $(LINUXKIT_CACHE_FILE): $(PROJECT_DEPENDENCIES_TARGETS)
156
171
# Using sed they are pulled back out so that we can run cache pull with retries since we tend to see
157
172
# issues from time to time pulling from ecr
158
173
$(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 )
160
175
@source $(BUILD_LIB ) /common.sh && build::common::use_go_version $(GOLANG_VERSION ) ; \
161
176
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 ; \
172
177
cd $(REPO ) ; \
173
178
DEBUG=yes LINUXKIT_VERSION_DEFAULT=$(LINUXKIT_VERSION ) HOOK_KERNEL_OCI_BASE=$(IMAGE_REPO ) /$(KERNEL_IMAGE_COMPONENT ) \
174
179
HOOK_LK_CONTAINERS_OCI_BASE=$(IMAGE_REPO ) /tinkerbell/ \
@@ -194,9 +199,9 @@ $(OUTPUT_DIR)/hook-embedded/linux-%/images: IMAGE_TAG_SUFFIX=
194
199
$(OUTPUT_DIR ) /hook-embedded/linux-% /images : DIND_IMAGE=$(shell $(MAKE ) var-value-LATEST_IMAGE IMAGE_NAME=hook-dind)
195
200
$(OUTPUT_DIR ) /hook-embedded/linux-% /images : $(GIT_PATCH_TARGET )
196
201
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
198
203
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; \
200
205
done
201
206
cat $@ .txt
202
207
@if [[ " $( JOB_TYPE) " == " presubmit" ]] && [[ " $( DOCKER_AVAILABLE) " == " false" ]]; then \
0 commit comments