Merge pull request #32359 from wojtek-t/rollback_etcd

Automatic merge from submit-queue

Use etcd 2.3.7

This will switch to etcd 2.3.7 for release 1.4, to resolve issues rolling back from 1.4 to 1.3 (while preventing those same issues rolling back to 1.4.0 from a release including etcd 3.0.x).

Fixes #32253.

See #32253 (comment) for etcd roadmap.
This commit is contained in:
Kubernetes Submit Queue 2016-09-09 09:53:02 -07:00 committed by GitHub
commit f535aea7fd
11 changed files with 25 additions and 22 deletions

View File

@ -72,7 +72,7 @@ RUN mkdir $TMPDIR \
github.com/jteeuwen/go-bindata/go-bindata github.com/jteeuwen/go-bindata/go-bindata
# Download and symlink etcd. We need this for our integration tests. # Download and symlink etcd. We need this for our integration tests.
RUN export ETCD_VERSION=v3.0.4; \ RUN export ETCD_VERSION=v2.3.7; \
mkdir -p /usr/local/src/etcd \ mkdir -p /usr/local/src/etcd \
&& cd /usr/local/src/etcd \ && cd /usr/local/src/etcd \
&& curl -fsSL https://github.com/coreos/etcd/releases/download/${ETCD_VERSION}/etcd-${ETCD_VERSION}-linux-amd64.tar.gz | tar -xz \ && curl -fsSL https://github.com/coreos/etcd/releases/download/${ETCD_VERSION}/etcd-${ETCD_VERSION}-linux-amd64.tar.gz | tar -xz \

View File

@ -1 +1 @@
v1.6.3-4 v1.6.3-5

View File

@ -23,7 +23,7 @@ RELEASES_DIR=${RELEASES_DIR:-/tmp/downloads}
FLANNEL_VERSION=${FLANNEL_VERSION:-"0.5.5"} FLANNEL_VERSION=${FLANNEL_VERSION:-"0.5.5"}
# Define etcd version to use. # Define etcd version to use.
ETCD_VERSION=${ETCD_VERSION:-"3.0.4"} ETCD_VERSION=${ETCD_VERSION:-"2.3.7"}
# Define k8s version to use. # Define k8s version to use.
K8S_VERSION=${K8S_VERSION:-"1.1.1"} K8S_VERSION=${K8S_VERSION:-"1.1.1"}

View File

@ -14,7 +14,7 @@ spec:
--listen-client-urls=http://127.0.0.1:4002 --listen-client-urls=http://127.0.0.1:4002
--data-dir=/var/etcd/data-events --data-dir=/var/etcd/data-events
1>>/var/log/etcd-events.log 2>&1 1>>/var/log/etcd-events.log 2>&1
image: gcr.io/google_containers/etcd:3.0.4 image: gcr.io/google_containers/etcd:2.3.7
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
livenessProbe: livenessProbe:
httpGet: httpGet:

View File

@ -14,7 +14,7 @@ spec:
--listen-client-urls=http://127.0.0.1:2379 --listen-client-urls=http://127.0.0.1:2379
--data-dir=/var/etcd/data --data-dir=/var/etcd/data
1>>/var/log/etcd.log 2>&1 1>>/var/log/etcd.log 2>&1
image: gcr.io/google_containers/etcd:3.0.4 image: gcr.io/google_containers/etcd:2.3.7
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
livenessProbe: livenessProbe:
httpGet: httpGet:

View File

@ -10,7 +10,7 @@
"containers": [ "containers": [
{ {
"name": "etcd", "name": "etcd",
"image": "gcr.io/google_containers/etcd-ARCH:3.0.4", "image": "gcr.io/google_containers/etcd-ARCH:2.3.7",
"command": [ "command": [
"/usr/local/bin/etcd", "/usr/local/bin/etcd",
"--listen-client-urls=http://127.0.0.1:2379,http://127.0.0.1:4001", "--listen-client-urls=http://127.0.0.1:2379,http://127.0.0.1:4001",

View File

@ -28,7 +28,7 @@
"containers":[ "containers":[
{ {
"name": "etcd-container", "name": "etcd-container",
"image": "gcr.io/google_containers/etcd:{{ pillar.get('etcd_docker_tag', '3.0.4') }}", "image": "gcr.io/google_containers/etcd:{{ pillar.get('etcd_docker_tag', '2.3.7') }}",
"resources": { "resources": {
"requests": { "requests": {
"cpu": {{ cpulimit }} "cpu": {{ cpulimit }}

View File

@ -75,7 +75,7 @@
}, },
{ {
"name": "etcd-container", "name": "etcd-container",
"image": "gcr.io/google_containers/etcd:3.0.4", "image": "gcr.io/google_containers/etcd:2.3.7",
"command": [ "command": [
"/bin/sh", "/bin/sh",
"-c", "-c",

View File

@ -16,7 +16,7 @@
# A set of helpers for starting/running etcd for tests # A set of helpers for starting/running etcd for tests
ETCD_VERSION=${ETCD_VERSION:-3.0.4} ETCD_VERSION=${ETCD_VERSION:-2.3.7}
ETCD_HOST=${ETCD_HOST:-127.0.0.1} ETCD_HOST=${ETCD_HOST:-127.0.0.1}
ETCD_PORT=${ETCD_PORT:-2379} ETCD_PORT=${ETCD_PORT:-2379}

View File

@ -157,14 +157,15 @@ killApiServer
# We always perform offline migration, so we need to stop etcd. # We always perform offline migration, so we need to stop etcd.
####################################################### #######################################################
kube::etcd::stop # TODO: Uncomment once we support migration.
TARGET_STORAGE="etcd3" \ #kube::etcd::stop
DATA_DIRECTORY="${ETCD_DIR}" \ #TARGET_STORAGE="etcd3" \
ETCD=$(which etcd) \ # DATA_DIRECTORY="${ETCD_DIR}" \
ETCDCTL=$(which etcdctl) \ # ETCD=$(which etcd) \
ATTACHLEASE="${KUBE_OUTPUT_HOSTBIN}/attachlease" \ # ETCDCTL=$(which etcdctl) \
${KUBE_ROOT}/cluster/images/etcd/migrate-if-needed.sh # ATTACHLEASE="${KUBE_OUTPUT_HOSTBIN}/attachlease" \
kube::etcd::start # ${KUBE_ROOT}/cluster/images/etcd/migrate-if-needed.sh
#kube::etcd::start
####################################################### #######################################################
@ -175,7 +176,8 @@ kube::etcd::start
KUBE_API_VERSIONS="${KUBE_NEW_API_VERSION},${KUBE_OLD_API_VERSION}" KUBE_API_VERSIONS="${KUBE_NEW_API_VERSION},${KUBE_OLD_API_VERSION}"
RUNTIME_CONFIG="api/all=false,api/${KUBE_OLD_API_VERSION}=true,api/${KUBE_NEW_API_VERSION}=true" RUNTIME_CONFIG="api/all=false,api/${KUBE_OLD_API_VERSION}=true,api/${KUBE_NEW_API_VERSION}=true"
startApiServer ${STORAGE_BACKEND_ETCD3} ${KUBE_NEW_STORAGE_VERSIONS} ${KUBE_STORAGE_MEDIA_TYPE_JSON} # TODO: Switch to STORAGE_BACKEND_ETCD3 once we support it.
startApiServer ${STORAGE_BACKEND_ETCD2} ${KUBE_NEW_STORAGE_VERSIONS} ${KUBE_STORAGE_MEDIA_TYPE_JSON}
# Update etcd objects, so that will now be stored in the new api version. # Update etcd objects, so that will now be stored in the new api version.
kube::log::status "Updating storage versions in etcd" kube::log::status "Updating storage versions in etcd"
@ -190,7 +192,7 @@ for test in ${tests[@]}; do
new_storage_version=${test_data[5]} new_storage_version=${test_data[5]}
kube::log::status "Verifying ${resource}/${namespace}/${name} has updated storage version ${new_storage_version} in etcd" kube::log::status "Verifying ${resource}/${namespace}/${name} has updated storage version ${new_storage_version} in etcd"
ETCDCTL_API=3 ${ETCDCTL} --endpoints="${ETCD_HOST}:${ETCD_PORT}" get "/${ETCD_PREFIX}/${resource}/${namespace}/${name}" | grep ${new_storage_version} ${ETCDCTL} --endpoints="${ETCD_HOST}:${ETCD_PORT}" get "/${ETCD_PREFIX}/${resource}/${namespace}/${name}" | grep ${new_storage_version}
done done
killApiServer killApiServer
@ -206,7 +208,8 @@ RUNTIME_CONFIG="api/all=false,api/${KUBE_NEW_API_VERSION}=true"
# This seems to reduce flakiness. # This seems to reduce flakiness.
sleep 1 sleep 1
startApiServer ${STORAGE_BACKEND_ETCD3} ${KUBE_NEW_STORAGE_VERSIONS} ${KUBE_STORAGE_MEDIA_TYPE_PROTOBUF} # TODO: Switch to STORAGE_BACKEND_ETCD3 once we support it.
startApiServer ${STORAGE_BACKEND_ETCD2} ${KUBE_NEW_STORAGE_VERSIONS} ${KUBE_STORAGE_MEDIA_TYPE_PROTOBUF}
for test in ${tests[@]}; do for test in ${tests[@]}; do
IFS=',' read -ra test_data <<<"$test" IFS=',' read -ra test_data <<<"$test"

View File

@ -31,7 +31,7 @@ if [ "${EVENT_STORE_IP}" == "127.0.0.1" ]; then
# Retry starting etcd to avoid pulling image errors. # Retry starting etcd to avoid pulling image errors.
retry sudo docker run --net=host \ retry sudo docker run --net=host \
-v /var/etcd/data-events:/var/etcd/data -v /var/log:/var/log -d \ -v /var/etcd/data-events:/var/etcd/data -v /var/log:/var/log -d \
gcr.io/google_containers/etcd:3.0.4 /bin/sh -c "/usr/local/bin/etcd \ gcr.io/google_containers/etcd:2.3.7 /bin/sh -c "/usr/local/bin/etcd \
--listen-peer-urls http://127.0.0.1:2381 \ --listen-peer-urls http://127.0.0.1:2381 \
--advertise-client-urls=http://127.0.0.1:4002 \ --advertise-client-urls=http://127.0.0.1:4002 \
--listen-client-urls=http://0.0.0.0:4002 \ --listen-client-urls=http://0.0.0.0:4002 \
@ -41,7 +41,7 @@ fi
# Retry starting etcd to avoid pulling image errors. # Retry starting etcd to avoid pulling image errors.
retry sudo docker run --net=host \ retry sudo docker run --net=host \
-v /var/etcd/data:/var/etcd/data -v /var/log:/var/log -d \ -v /var/etcd/data:/var/etcd/data -v /var/log:/var/log -d \
gcr.io/google_containers/etcd:3.0.4 /bin/sh -c "/usr/local/bin/etcd \ gcr.io/google_containers/etcd:2.3.7 /bin/sh -c "/usr/local/bin/etcd \
--listen-peer-urls http://127.0.0.1:2380 \ --listen-peer-urls http://127.0.0.1:2380 \
--advertise-client-urls=http://127.0.0.1:2379 \ --advertise-client-urls=http://127.0.0.1:2379 \
--listen-client-urls=http://0.0.0.0:2379 \ --listen-client-urls=http://0.0.0.0:2379 \