mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Merge pull request #34004 from wojtek-t/all_versions_in_etcd_image
Automatic merge from submit-queue Grab different etcd versions in etcd image. Ref #20504 @timothysc
This commit is contained in:
commit
d631d8e751
@ -16,4 +16,5 @@ FROM BASEIMAGE
|
||||
MAINTAINER Dawn Chen <dawnchen@google.com>
|
||||
|
||||
EXPOSE 2379 2380 4001 7001
|
||||
COPY etcd etcdctl migrate-if-needed.sh attachlease /usr/local/bin/
|
||||
COPY etcd* etcdctl* /usr/local/bin/
|
||||
COPY migrate-if-needed.sh attachlease /usr/local/bin/
|
||||
|
@ -15,10 +15,19 @@
|
||||
# Build the etcd image
|
||||
#
|
||||
# Usage:
|
||||
# [TAG=3.0.4] [REGISTRY=gcr.io/google_containers] [ARCH=amd64] [BASEIMAGE=busybox] make (build|push)
|
||||
# [TAGS=2.2.1 2.3.7 3.0.10] [REGISTRY=gcr.io/google_containers] [ARCH=amd64] [BASEIMAGE=busybox] make (build|push)
|
||||
|
||||
TAG?=3.0.4
|
||||
REGISTRY_TAG?=$(TAG)
|
||||
# The image contains different etcd versions to simplify
|
||||
# upgrades. Thus be careful when removing any tag from here.
|
||||
#
|
||||
# NOTE: The etcd upgrade rules are that you can upgrade only 1 minor
|
||||
# version at a time, and patch release don't matter.
|
||||
#
|
||||
# Except from etcd-$(tag) and etcdctl-$(tag) binaries, we also
|
||||
# need etcd and etcdctl binaries for backward compatibility reasons.
|
||||
# That binary will be set to the last tag from $(TAGS).
|
||||
TAGS?=2.2.1 2.3.7 3.0.10
|
||||
REGISTRY_TAG?=3.0.10
|
||||
ARCH?=amd64
|
||||
REGISTRY?=gcr.io/google_containers
|
||||
GOLANG_VERSION?=1.6.3
|
||||
@ -50,16 +59,30 @@ build:
|
||||
ifeq ($(ARCH),amd64)
|
||||
|
||||
# Do not compile if we should make an image for amd64, use the official etcd binaries instead
|
||||
curl -sSL --retry 5 https://github.com/coreos/etcd/releases/download/v$(TAG)/etcd-v$(TAG)-linux-amd64.tar.gz | tar -xz -C $(TEMP_DIR) --strip-components=1
|
||||
# For each release create a tmp dir 'etcd_release_tmp_dir' and unpack the release tar there.
|
||||
for tag in $(TAGS); do \
|
||||
etcd_release_tmp_dir=$(shell mktemp -d); \
|
||||
curl -sSL --retry 5 https://github.com/coreos/etcd/releases/download/v$$tag/etcd-v$$tag-linux-amd64.tar.gz | tar -xz -C $$etcd_release_tmp_dir --strip-components=1; \
|
||||
cp $$etcd_release_tmp_dir/etcd $$etcd_release_tmp_dir/etcdctl $(TEMP_DIR)/; \
|
||||
cp $(TEMP_DIR)/etcd $(TEMP_DIR)/etcd-$$tag; \
|
||||
cp $(TEMP_DIR)/etcdctl $(TEMP_DIR)/etcdctl-$$tag; \
|
||||
done
|
||||
else
|
||||
|
||||
# Download etcd in a golang container and cross-compile it statically
|
||||
docker run -it -v $(TEMP_DIR):/etcdbin golang:$(GOLANG_VERSION) /bin/bash -c \
|
||||
"git clone https://github.com/coreos/etcd /go/src/github.com/coreos/etcd \
|
||||
&& cd /go/src/github.com/coreos/etcd \
|
||||
&& git checkout v$(TAG) \
|
||||
&& GOARM=$(GOARM) GOARCH=$(ARCH) ./build \
|
||||
&& cp -f bin/$(ARCH)/etcd* bin/etcd* /etcdbin; echo 'done'"
|
||||
# For each release create a tmp dir 'etcd_release_tmp_dir' and unpack the release tar there.
|
||||
for tag in $(TAGS); do \
|
||||
etcd_release_tmp_dir=$(shell mktemp -d); \
|
||||
docker run -it -v $$etcd_release_tmp_dir:/etcdbin golang:$(GOLANG_VERSION) /bin/bash -c \
|
||||
"git clone https://github.com/coreos/etcd /go/src/github.com/coreos/etcd \
|
||||
&& cd /go/src/github.com/coreos/etcd \
|
||||
&& git checkout v$$tag \
|
||||
&& GOARM=$(GOARM) GOARCH=$(ARCH) ./build \
|
||||
&& cp -f bin/$(ARCH)/etcd* bin/etcd* /etcdbin; echo 'done'"; \
|
||||
cp $$etcd_release_tmp_dir/etcd $$etcd_release_tmp_dir/etcdctl $(TEMP_DIR)/; \
|
||||
cp $(TEMP_DIR)/etcd $(TEMP_DIR)/etcd-$$tag; \
|
||||
cp $(TEMP_DIR)/etcdctl $(TEMP_DIR)/etcdctl-$$tag; \
|
||||
done
|
||||
|
||||
# Add this ENV variable in order to workaround an unsupported arch blocker
|
||||
# The multiarch feature is in an limited and experimental state right now, and etcd should work fine on arm64
|
||||
|
Loading…
Reference in New Issue
Block a user