Skip to content

Commit 4fe97eb

Browse files
authored
Merge pull request #17 from ijc/linuxkit-pkg-depends
Use new `depends.docker-image` support in `build.yml` for image cache…
2 parents fb971dc + ad642da commit 4fe97eb

File tree

22 files changed

+141
-173
lines changed

22 files changed

+141
-173
lines changed

.circleci/config.yml

Lines changed: 56 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -32,41 +32,6 @@ linuxkit_pkg_build: &linuxkit_pkg_build
3232
root: /workspace
3333
paths: packages
3434

35-
image_cache_build: &image_cache_build
36-
docker:
37-
- image: debian:stretch
38-
steps:
39-
- run:
40-
name: Configure $PATH
41-
command: echo 'export PATH=/workspace/bin:$PATH' >> $BASH_ENV
42-
- run:
43-
name: Install packages
44-
# ca-certificates are needed for attach_workspace (and git over https)
45-
command: apt-get update && apt-get install -y ca-certificates git make openssh-client
46-
- attach_workspace:
47-
at: /workspace
48-
- checkout
49-
- setup_remote_docker:
50-
version: 17.06.1-ce
51-
- run:
52-
name: Docker version
53-
command: |
54-
docker version
55-
- run:
56-
name: Building package
57-
command: |
58-
CACHE=${CIRCLE_JOB#pkg-image-cache-}
59-
PKG=kubernetes-docker-image-cache-$CACHE
60-
mkdir /workspace/packages
61-
make --no-print-directory -C pkg/image-cache build-$CACHE
62-
make --no-print-directory -C pkg/image-cache show-tag-$CACHE > /workspace/packages/$PKG.tag
63-
echo
64-
docker image ls --all
65-
docker image save -o /workspace/packages/$PKG.tar linuxkit/$PKG
66-
- persist_to_workspace:
67-
root: /workspace
68-
paths: packages
69-
7035
image_build: &image_build
7136
docker:
7237
- image: debian:stretch
@@ -129,7 +94,7 @@ jobs:
12994
command: |
13095
curl -fsSL -o /tmp/docker.tgz https://download.docker.com/linux/static/stable/x86_64/docker-17.06.2-ce.tgz
13196
tar xfO /tmp/docker.tgz docker/docker > /workspace/bin/docker
132-
curl -fsSL -o /workspace/bin/linuxkit https://215-46932243-gh.circle-artifacts.com/0/linuxkit-linux-amd64
97+
curl -fsSL -o /workspace/bin/linuxkit https://253-46932243-gh.circle-artifacts.com/0/linuxkit-linux-amd64
13398
curl -fsSL -o /workspace/bin/manifest-tool https://github.com/estesp/manifest-tool/releases/download/v0.7.0/manifest-tool-linux-amd64
13499
curl -fsSL -o /workspace/bin/notary https://github.com/theupdateframework/notary/releases/download/v0.4.3/notary-Linux-amd64
135100
@@ -140,7 +105,7 @@ jobs:
140105
echo "Checking checksums"
141106
sha256sum -c <<EOF
142107
6af40e74b2dbb2927882acab52d50bfc72551779d541957fc70b6adc325ee5ef /workspace/bin/docker
143-
1f39537da2b83fa618cbba110ede937fa7b34577026cf1369d280fd372c8efc1 /workspace/bin/linuxkit
108+
200099591f3ee30ffb8915bea2d09995a6fe31bb933ceab0d700f3c1440baba8 /workspace/bin/linuxkit
144109
e4ca2ef0015a4be8597d31d9e3e70d88da33924ae72b0999e9f3b79304d4710d /workspace/bin/manifest-tool
145110
06cd02c4c2e7a3b1ad9899b03b3d4dde5392d964c675247d32f604a24661f839 /workspace/bin/notary
146111
EOF
@@ -155,7 +120,7 @@ jobs:
155120
root: /workspace
156121
paths: bin
157122

158-
check-hashes:
123+
lint:
159124
docker:
160125
- image: debian:stretch
161126
steps:
@@ -168,26 +133,64 @@ jobs:
168133
command: apt-get update && apt-get install -y ca-certificates git make openssh-client
169134
- attach_workspace:
170135
at: /workspace
136+
- setup_remote_docker:
137+
version: 17.06.1-ce
138+
- run:
139+
name: Docker version
140+
command: |
141+
docker version
171142
- checkout
172143
- run:
173-
name: Check hashes
144+
name: Check YML hashes
174145
command: |
146+
# Check yml hashes are up to date.
175147
make update-hashes
176148
if ! git diff --exit-code ; then
177149
echo ""
178150
echo "*** Hashes are not up to date."
179151
exit 1
180152
fi
153+
- run:
154+
name: Check image-cache similarity
155+
command: |
156+
kdicc=pkg/kubernetes-docker-image-cache-common
157+
kdiccp=pkg/kubernetes-docker-image-cache-control-plane
158+
# Check that the image cache build files have not drifted apart
159+
if ! diff $kdicc/Dockerfile $kdiccp/Dockerfile ; then
160+
echo ""
161+
echo "*** image-cache Dockerfiles do not match."
162+
exit 1
163+
fi
164+
# These differ in one expected way, the name
165+
sed -e 's/^image: kubernetes-docker-image-cache-common$/image: kubernetes-docker-image-cache/' <$kdicc/build.yml >$kdicc/build.yml.for-lint
166+
sed -e 's/^image: kubernetes-docker-image-cache-control-plane$/image: kubernetes-docker-image-cache/' <$kdiccp/build.yml >$kdiccp/build.yml.for-lint
167+
if ! diff $kdicc/build.yml.for-lint $kdiccp/build.yml.for-lint ; then
168+
echo ""
169+
echo "*** image-cache build.yml files do not match."
170+
exit 1
171+
fi
172+
rm -f $kdicc/build.yml.for-lint $kdiccp/build.yml.for-lint
173+
- run:
174+
# This one potentially does a lot of docker pull, leave it until last.
175+
name: Check image cache images
176+
command: |
177+
# Check pkg/kubernetes-docker-image-cache-*/image.lst are up to date
178+
make refresh-image-caches
179+
if ! git diff --exit-code ; then
180+
echo ""
181+
echo "*** image cache lists are not up to date."
182+
exit 1
183+
fi
181184
182185
pkg-cri-containerd:
183186
<<: *linuxkit_pkg_build
184187
pkg-kubelet:
185188
<<: *linuxkit_pkg_build
186189

187-
pkg-image-cache-common:
188-
<<: *image_cache_build
189-
pkg-image-cache-control-plane:
190-
<<: *image_cache_build
190+
pkg-kubernetes-docker-image-cache-common:
191+
<<: *linuxkit_pkg_build
192+
pkg-kubernetes-docker-image-cache-control-plane:
193+
<<: *linuxkit_pkg_build
191194

192195
image-docker-weave:
193196
<<: *image_build
@@ -266,7 +269,7 @@ workflows:
266269
build:
267270
jobs:
268271
- dependencies
269-
- check-hashes:
272+
- lint:
270273
requires:
271274
- dependencies
272275

@@ -276,25 +279,25 @@ workflows:
276279
- pkg-cri-containerd:
277280
requires:
278281
- dependencies
279-
- pkg-image-cache-common:
282+
- pkg-kubernetes-docker-image-cache-common:
280283
requires:
281284
- dependencies
282-
- pkg-image-cache-control-plane:
285+
- pkg-kubernetes-docker-image-cache-control-plane:
283286
requires:
284287
- dependencies
285288

286289
- image-docker-weave:
287290
requires:
288291
- dependencies
289292
- pkg-kubelet
290-
- pkg-image-cache-common
291-
- pkg-image-cache-control-plane
293+
- pkg-kubernetes-docker-image-cache-common
294+
- pkg-kubernetes-docker-image-cache-control-plane
292295
- image-docker-bridge:
293296
requires:
294297
- dependencies
295298
- pkg-kubelet
296-
- pkg-image-cache-common
297-
- pkg-image-cache-control-plane
299+
- pkg-kubernetes-docker-image-cache-common
300+
- pkg-kubernetes-docker-image-cache-control-plane
298301
- image-cri-containerd-weave:
299302
requires:
300303
- dependencies
@@ -311,11 +314,11 @@ workflows:
311314
# tedious. Some of these are already covered transitively,
312315
# but be more explicit.
313316
requires:
314-
- check-hashes
317+
- lint
315318
- pkg-kubelet
316319
- pkg-cri-containerd
317-
- pkg-image-cache-common
318-
- pkg-image-cache-control-plane
320+
- pkg-kubernetes-docker-image-cache-common
321+
- pkg-kubernetes-docker-image-cache-control-plane
319322
- image-docker-weave
320323
- image-docker-bridge
321324
- image-cri-containerd-weave

Makefile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ kube-weave.yaml:
2626

2727
.PHONY: update-hashes
2828
update-hashes:
29-
for tag in $$(linuxkit pkg show-tag pkg/kubelet) \
29+
set -e ; for tag in $$(linuxkit pkg show-tag pkg/kubelet) \
3030
$$(linuxkit pkg show-tag pkg/cri-containerd) \
31-
$$(make --no-print-directory -C pkg/image-cache show-tag-common) \
32-
$$(make --no-print-directory -C pkg/image-cache show-tag-control-plane) ; do \
31+
$$(linuxkit pkg show-tag pkg/kubernetes-docker-image-cache-common) \
32+
$$(linuxkit pkg show-tag pkg/kubernetes-docker-image-cache-control-plane) ; do \
3333
image=$${tag%:*} ; \
3434
git grep -E -l "\b$$image:" | xargs --no-run-if-empty sed -i.bak -e "s,$$image:[[:xdigit:]]\{40\}\(-dirty\)\?,$$tag,g" ; \
3535
done
@@ -39,3 +39,8 @@ clean:
3939
rm -f -r \
4040
kube-*-kernel kube-*-cmdline kube-*-state kube-*-initrd.img *.iso \
4141
kube-weave.yaml
42+
43+
.PHONY: refresh-image-caches
44+
refresh-image-caches:
45+
./scripts/mk-image-cache-lst common > pkg/kubernetes-docker-image-cache-common/images.lst
46+
./scripts/mk-image-cache-lst control-plane > pkg/kubernetes-docker-image-cache-control-plane/images.lst

pkg/image-cache/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

pkg/image-cache/Makefile

Lines changed: 0 additions & 45 deletions
This file was deleted.

pkg/image-cache/Makefile.pkg

Lines changed: 0 additions & 22 deletions
This file was deleted.

pkg/image-cache/build.yml.in

Lines changed: 0 additions & 7 deletions
This file was deleted.

pkg/image-cache/common/.dockerignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

pkg/image-cache/common/.gitignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

pkg/image-cache/control-plane/.dockerignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

pkg/image-cache/control-plane/.gitignore

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)