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.
pull/6/head
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
# 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 \
&& 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 \

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"}
# Define etcd version to use.
ETCD_VERSION=${ETCD_VERSION:-"3.0.4"}
ETCD_VERSION=${ETCD_VERSION:-"2.3.7"}
# Define k8s version to use.
K8S_VERSION=${K8S_VERSION:-"1.1.1"}

View File

@ -14,7 +14,7 @@ spec:
--listen-client-urls=http://127.0.0.1:4002
--data-dir=/var/etcd/data-events
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
livenessProbe:
httpGet:

View File

@ -14,7 +14,7 @@ spec:
--listen-client-urls=http://127.0.0.1:2379
--data-dir=/var/etcd/data
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
livenessProbe:
httpGet:

View File

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

View File

@ -28,7 +28,7 @@
"containers":[
{
"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": {
"requests": {
"cpu": {{ cpulimit }}

View File

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

View File

@ -16,7 +16,7 @@
# 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_PORT=${ETCD_PORT:-2379}

View File

@ -157,14 +157,15 @@ killApiServer
# We always perform offline migration, so we need to stop etcd.
#######################################################
kube::etcd::stop
TARGET_STORAGE="etcd3" \
DATA_DIRECTORY="${ETCD_DIR}" \
ETCD=$(which etcd) \
ETCDCTL=$(which etcdctl) \
ATTACHLEASE="${KUBE_OUTPUT_HOSTBIN}/attachlease" \
${KUBE_ROOT}/cluster/images/etcd/migrate-if-needed.sh
kube::etcd::start
# TODO: Uncomment once we support migration.
#kube::etcd::stop
#TARGET_STORAGE="etcd3" \
# DATA_DIRECTORY="${ETCD_DIR}" \
# ETCD=$(which etcd) \
# ETCDCTL=$(which etcdctl) \
# ATTACHLEASE="${KUBE_OUTPUT_HOSTBIN}/attachlease" \
# ${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}"
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.
kube::log::status "Updating storage versions in etcd"
@ -190,7 +192,7 @@ for test in ${tests[@]}; do
new_storage_version=${test_data[5]}
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
killApiServer
@ -206,7 +208,8 @@ RUNTIME_CONFIG="api/all=false,api/${KUBE_NEW_API_VERSION}=true"
# This seems to reduce flakiness.
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
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 sudo docker run --net=host \
-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 \
--advertise-client-urls=http://127.0.0.1:4002 \
--listen-client-urls=http://0.0.0.0:4002 \
@ -41,7 +41,7 @@ fi
# Retry starting etcd to avoid pulling image errors.
retry sudo docker run --net=host \
-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 \
--advertise-client-urls=http://127.0.0.1:2379 \
--listen-client-urls=http://0.0.0.0:2379 \