Merge pull request #6 from aric49/image_caching

Enable or Disable image prefetching
This commit is contained in:
Mark Burnett 2017-05-26 19:34:39 -05:00 committed by GitHub
commit 41ceee7e19
5 changed files with 35 additions and 9 deletions

2
.gitignore vendored
View File

@ -6,3 +6,5 @@
/helm
/kubelet
/linux-amd64
/genesis_image_cache/
/join_image_cache/

View File

@ -29,7 +29,7 @@ WORKDIR /promenade
ENTRYPOINT /promenade/scripts/entrypoint.sh
COPY genesis-images.tar cni.tgz helm kubelet /promenade/
COPY genesis_image_cache/* cni.tgz helm kubelet /promenade/
COPY kubelet.service.template /promenade/
COPY env.sh scripts/common/* /promenade/scripts/

View File

@ -29,7 +29,7 @@ WORKDIR /promenade
ENTRYPOINT /promenade/scripts/entrypoint.sh
COPY join-images.tar cni.tgz kubelet /promenade/
COPY join_image_cache/* cni.tgz kubelet /promenade/
COPY kubelet.service.template /promenade/
COPY env.sh scripts/common/* /promenade/scripts/

View File

@ -25,6 +25,9 @@ GENESIS_REPO := promenade-genesis
JOIN_REPO := promenade-join
TAG := dev
#PreFetch Images for Offline deployment
PREFETCH_IMAGES := false
GENESIS_IMAGES := \
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1 \
gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1 \
@ -58,6 +61,18 @@ JOIN_IMAGES := \
quay.io/coreos/kenc:48b6feceeee56c657ea9263f47b6ea091e8d3035 \
quay.io/coreos/pod-checkpointer:20cf8b9a6018731a0770192f30dfa7a1941521e3 \
#Build Dependencies online vs offline
GENESIS_BUILD_DEPS := Dockerfile.genesis cni.tgz env.sh helm kubelet kubelet.service.template
ifeq ($(PREFETCH_IMAGES), true)
GENESIS_BUILD_DEPS += genesis_image_cache/genesis-images.tar
endif
JOIN_BUILD_DEPS := Dockerfile.join kubelet.service.template
ifeq ($(PREFETCH_IMAGES), true)
JOIN_BUILD_DEPS += join_image_cache/join-images.tar
endif
#-------#
# Rules #
@ -72,9 +87,10 @@ save: save-genesis save-join
genesis: build-genesis
build-genesis: Dockerfile.genesis cni.tgz env.sh helm genesis-images.tar kubelet kubelet.service.template
build-genesis: $(GENESIS_BUILD_DEPS)
sudo docker build -f Dockerfile.genesis -t $(NAMESPACE)/$(GENESIS_REPO):$(TAG) .
push-genesis: build-genesis
sudo docker push $(NAMESPACE)/$(GENESIS_REPO):$(TAG)
@ -84,7 +100,7 @@ save-genesis: build-genesis
join: build-join
build-join: Dockerfile.join join-images.tar kubelet.service.template
build-join: $(JOIN_BUILD_DEPS)
sudo docker build -f Dockerfile.join -t $(NAMESPACE)/$(JOIN_REPO):$(TAG) .
push-join: build-join
@ -111,17 +127,19 @@ helm:
rm -f helm.tgz
chmod +x helm
genesis-images.tar:
genesis_image_cache/genesis-images.tar:
for IMAGE in $(GENESIS_IMAGES); do \
sudo docker pull $$IMAGE; \
done
sudo docker save -o genesis-images.tar $(GENESIS_IMAGES)
mkdir genesis_image_cache
sudo docker save -o genesis_image_cache/genesis-images.tar $(GENESIS_IMAGES)
join-images.tar:
join_image_cache/join-images.tar:
for IMAGE in $(JOIN_IMAGES); do \
sudo docker pull $$IMAGE; \
done
sudo docker save -o join-images.tar $(JOIN_IMAGES)
mkdir join_image_cache
sudo docker save -o join_image_cache/join-images.tar $(JOIN_IMAGES)
kubelet:
curl -LO http://storage.googleapis.com/kubernetes-release/release/$(KUBERNETES_VERSION)/bin/linux/amd64/kubelet
@ -136,6 +154,8 @@ clean:
helm.tgz \
kubelet \
linux-amd64 \
genesis_image_cache \
join_image_cache \
.PHONY : build build-genesis build-join clean genesis join push push-genesis push-join

View File

@ -22,7 +22,11 @@ source ./scripts/func.sh
validate_environment
# XXX validate_genesis_assets
docker load -i ./genesis-images.tar
if [ -f "genesis_image_cache/genesis-images.tar" ]; then
docker load -i ./genesis-images.tar
else
echo "Image Cache Not Found.. Skipping."
fi
install_assets
install_cni