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 /helm
/kubelet /kubelet
/linux-amd64 /linux-amd64
/genesis_image_cache/
/join_image_cache/

View File

@ -29,7 +29,7 @@ WORKDIR /promenade
ENTRYPOINT /promenade/scripts/entrypoint.sh 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 kubelet.service.template /promenade/
COPY env.sh scripts/common/* /promenade/scripts/ COPY env.sh scripts/common/* /promenade/scripts/

View File

@ -29,7 +29,7 @@ WORKDIR /promenade
ENTRYPOINT /promenade/scripts/entrypoint.sh 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 kubelet.service.template /promenade/
COPY env.sh scripts/common/* /promenade/scripts/ COPY env.sh scripts/common/* /promenade/scripts/

View File

@ -25,6 +25,9 @@ GENESIS_REPO := promenade-genesis
JOIN_REPO := promenade-join JOIN_REPO := promenade-join
TAG := dev TAG := dev
#PreFetch Images for Offline deployment
PREFETCH_IMAGES := false
GENESIS_IMAGES := \ GENESIS_IMAGES := \
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1 \ gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1 \
gcr.io/google_containers/k8s-dns-kube-dns-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/kenc:48b6feceeee56c657ea9263f47b6ea091e8d3035 \
quay.io/coreos/pod-checkpointer:20cf8b9a6018731a0770192f30dfa7a1941521e3 \ 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 # # Rules #
@ -72,9 +87,10 @@ save: save-genesis save-join
genesis: build-genesis 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) . sudo docker build -f Dockerfile.genesis -t $(NAMESPACE)/$(GENESIS_REPO):$(TAG) .
push-genesis: build-genesis push-genesis: build-genesis
sudo docker push $(NAMESPACE)/$(GENESIS_REPO):$(TAG) sudo docker push $(NAMESPACE)/$(GENESIS_REPO):$(TAG)
@ -84,7 +100,7 @@ save-genesis: build-genesis
join: build-join 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) . sudo docker build -f Dockerfile.join -t $(NAMESPACE)/$(JOIN_REPO):$(TAG) .
push-join: build-join push-join: build-join
@ -111,17 +127,19 @@ helm:
rm -f helm.tgz rm -f helm.tgz
chmod +x helm chmod +x helm
genesis-images.tar: genesis_image_cache/genesis-images.tar:
for IMAGE in $(GENESIS_IMAGES); do \ for IMAGE in $(GENESIS_IMAGES); do \
sudo docker pull $$IMAGE; \ sudo docker pull $$IMAGE; \
done 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 \ for IMAGE in $(JOIN_IMAGES); do \
sudo docker pull $$IMAGE; \ sudo docker pull $$IMAGE; \
done 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: kubelet:
curl -LO http://storage.googleapis.com/kubernetes-release/release/$(KUBERNETES_VERSION)/bin/linux/amd64/kubelet curl -LO http://storage.googleapis.com/kubernetes-release/release/$(KUBERNETES_VERSION)/bin/linux/amd64/kubelet
@ -136,6 +154,8 @@ clean:
helm.tgz \ helm.tgz \
kubelet \ kubelet \
linux-amd64 \ linux-amd64 \
genesis_image_cache \
join_image_cache \
.PHONY : build build-genesis build-join clean genesis join push push-genesis push-join .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 validate_environment
# XXX validate_genesis_assets # 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_assets
install_cni install_cni