Merge pull request #35694 from wojtek-t/update_etcd_3_0_13

Automatic merge from submit-queue

Update Godeps etcd to 3.0.13

Ref #20504
This commit is contained in:
Kubernetes Submit Queue 2016-10-29 05:00:55 -07:00 committed by GitHub
commit bb992150fa
14 changed files with 139 additions and 133 deletions

208
Godeps/Godeps.json generated
View File

@ -358,263 +358,263 @@
},
{
"ImportPath": "github.com/coreos/etcd/alarm",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/auth",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/auth/authpb",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/client",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/clientv3",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/compactor",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/discovery",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/error",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v2http/httptypes",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/auth",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/etcdserverpb",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/membership",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/etcdserver/stats",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/integration",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/lease",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/lease/leasehttp",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/lease/leasepb",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/mvcc",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/mvcc/backend",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/mvcc/mvccpb",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/adt",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/contention",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/crc",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/fileutil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/httputil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/idutil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/ioutil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/logutil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/netutil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/pathutil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/pbutil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/runtime",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/schedule",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/testutil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/tlsutil",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/transport",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/types",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/pkg/wait",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/raft",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/raft/raftpb",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/rafthttp",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/snap",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/snap/snappb",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/store",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/version",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/wal",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/etcd/wal/walpb",
"Comment": "v3.0.12",
"Rev": "2d1e2e8e646e65f73ca0d9ee905a5343d6135a50"
"Comment": "v3.0.13",
"Rev": "c99d0d4b255f0dfc117b59555c89933192237c27"
},
{
"ImportPath": "github.com/coreos/go-oidc/http",

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.10; \
RUN export ETCD_VERSION=v3.0.13; \
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.7.1-0
v1.7.1-2

View File

@ -15,7 +15,7 @@
# Build the etcd image
#
# Usage:
# [TAGS=2.2.1 2.3.7 3.0.12] [REGISTRY=gcr.io/google_containers] [ARCH=amd64] [BASEIMAGE=busybox] make (build|push)
# [TAGS=2.2.1 2.3.7 3.0.13] [REGISTRY=gcr.io/google_containers] [ARCH=amd64] [BASEIMAGE=busybox] make (build|push)
# The image contains different etcd versions to simplify
# upgrades. Thus be careful when removing any tag from here.
@ -26,8 +26,8 @@
# 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.12
REGISTRY_TAG?=3.0.12
TAGS?=2.2.1 2.3.7 3.0.13
REGISTRY_TAG?=3.0.13
ARCH?=amd64
REGISTRY?=gcr.io/google_containers
GOLANG_VERSION?=1.6.3

View File

@ -18,7 +18,7 @@
# This script performs etcd upgrade based on the following environmental
# variables:
# TARGET_STORAGE - API of etcd to be used (supported: 'etcd2', 'etcd3')
# TARGET_VERSION - etcd release to be used (supported: '2.2.1', '2.3.7', '3.0.12')
# TARGET_VERSION - etcd release to be used (supported: '2.2.1', '2.3.7', '3.0.13')
# DATA_DIRECTORY - directory with etcd data
#
# The current etcd version and storage format is detected based on the
@ -27,8 +27,8 @@
#
# The update workflow support the following upgrade steps:
# - 2.2.1/etcd2 -> 2.3.7/etcd2
# - 2.3.7/etcd2 -> 3.0.12/etcd2
# - 3.0.12/etcd2 -> 3.0.12/etcd3
# - 2.3.7/etcd2 -> 3.0.13/etcd2
# - 3.0.13/etcd2 -> 3.0.13/etcd3
#
# NOTE: The releases supported in this script has to match release binaries
# present in the etcd image (to make this script work correctly).
@ -60,7 +60,7 @@ fi
# NOTE: SUPPORTED_VERSION has to match release binaries present in the
# etcd image (to make this script work correctly).
# We cannot use array since sh doesn't support it.
SUPPORTED_VERSIONS_STRING="2.2.1 2.3.7 3.0.12"
SUPPORTED_VERSIONS_STRING="2.2.1 2.3.7 3.0.13"
SUPPORTED_VERSIONS=$(echo "${SUPPORTED_VERSIONS_STRING}" | tr " " "\n")
VERSION_FILE="version.txt"

View File

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

View File

@ -160,7 +160,7 @@ killApiServer
kube::etcd::stop
TARGET_STORAGE="etcd3" \
TARGET_VERSION="3.0.12" \
TARGET_VERSION="3.0.13" \
DATA_DIRECTORY="${ETCD_DIR}" \
ETCD=$(which etcd) \
ETCDCTL=$(which etcdctl) \

View File

@ -603,6 +603,11 @@ func (as *authStore) isOpPermitted(userName string, key, rangeEnd []byte, permTy
return false
}
// root role should have permission on all ranges
if hasRootRole(user) {
return true
}
if as.isRangeOpPermitted(tx, userName, key, rangeEnd, permTyp) {
return true
}

View File

@ -154,13 +154,13 @@ type Server interface {
// EtcdServer is the production implementation of the Server interface
type EtcdServer struct {
// r and inflightSnapshots must be the first elements to keep 64-bit alignment for atomic
// access to fields
// count the number of inflight snapshots.
// MUST use atomic operation to access this field.
inflightSnapshots int64
Cfg *ServerConfig
// inflightSnapshots holds count the number of snapshots currently inflight.
inflightSnapshots int64 // must use atomic operations to access; keep 64-bit aligned.
appliedIndex uint64 // must use atomic operations to access; keep 64-bit aligned.
// consistIndex used to hold the offset of current executing entry
// It is initialized to 0 before executing any entry.
consistIndex consistentIndex // must use atomic operations to access; keep 64-bit aligned.
Cfg *ServerConfig
readych chan struct{}
r raftNode
@ -195,10 +195,6 @@ type EtcdServer struct {
// compactor is used to auto-compact the KV.
compactor *compactor.Periodic
// consistent index used to hold the offset of current executing entry
// It is initialized to 0 before executing any entry.
consistIndex consistentIndex
// peerRt used to send requests (version, lease) to peers.
peerRt http.RoundTripper
reqIDGen *idutil.Generator
@ -212,8 +208,6 @@ type EtcdServer struct {
// wg is used to wait for the go routines that depends on the server state
// to exit when stopping the server.
wg sync.WaitGroup
appliedIndex uint64
}
// NewServer creates a new EtcdServer from the supplied configuration. The

View File

@ -408,6 +408,13 @@ func (s *store) restore() error {
s.currentRev = rev
}
// keys in the range [compacted revision -N, compaction] might all be deleted due to compaction.
// the correct revision should be set to compaction revision in the case, not the largest revision
// we have seen.
if s.currentRev.main < s.compactMainRev {
s.currentRev.main = s.compactMainRev
}
for key, lid := range keyToLease {
if s.le == nil {
panic("no lessor to attach lease")

View File

@ -38,7 +38,7 @@ var (
// SoftState provides state that is useful for logging and debugging.
// The state is volatile and does not need to be persisted to the WAL.
type SoftState struct {
Lead uint64
Lead uint64 // must use atomic operations to access; keep 64-bit aligned.
RaftState StateType
}

View File

@ -183,9 +183,9 @@ func (x *ConfChangeType) UnmarshalJSON(data []byte) error {
func (ConfChangeType) EnumDescriptor() ([]byte, []int) { return fileDescriptorRaft, []int{2} }
type Entry struct {
Type EntryType `protobuf:"varint,1,opt,name=Type,json=type,enum=raftpb.EntryType" json:"Type"`
Term uint64 `protobuf:"varint,2,opt,name=Term,json=term" json:"Term"`
Index uint64 `protobuf:"varint,3,opt,name=Index,json=index" json:"Index"`
Type EntryType `protobuf:"varint,1,opt,name=Type,json=type,enum=raftpb.EntryType" json:"Type"`
Data []byte `protobuf:"bytes,4,opt,name=Data,json=data" json:"Data,omitempty"`
XXX_unrecognized []byte `json:"-"`
}

View File

@ -15,9 +15,9 @@ enum EntryType {
}
message Entry {
optional uint64 Term = 2 [(gogoproto.nullable) = false]; // must be 64-bit aligned for atomic operations
optional uint64 Index = 3 [(gogoproto.nullable) = false]; // must be 64-bit aligned for atomic operations
optional EntryType Type = 1 [(gogoproto.nullable) = false];
optional uint64 Term = 2 [(gogoproto.nullable) = false];
optional uint64 Index = 3 [(gogoproto.nullable) = false];
optional bytes Data = 4;
}

View File

@ -29,7 +29,7 @@ import (
var (
// MinClusterVersion is the min cluster version this etcd binary is compatible with.
MinClusterVersion = "2.3.0"
Version = "3.0.12"
Version = "3.0.13"
// Git SHA Value will be set during build
GitSHA = "Not provided (use ./build instead of go build)"