Fix conflict between ETCDCTL_ENDPOINTS env var and --endpoints cmdline parameter. Add debug output for store_member_id function.

This commit is contained in:
Matt Everett
2019-09-26 11:06:02 +01:00
parent 8e2cd124cb
commit de0ebfaeb3
2 changed files with 11 additions and 6 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
apiVersion: v1
name: etcd
version: 4.3.7
version: 4.3.8
appVersion: 3.4.1
description: etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines
keywords:
+10 -5
View File
@@ -51,6 +51,7 @@ data:
store_member_id() {
while ! etcdctl $AUTH_OPTIONS member list; do sleep 1; done
etcdctl $AUTH_OPTIONS member list | grep "$HOSTNAME" | awk '{ print $1}' | awk -F "," '{ print $1}' > "$ETCD_DATA_DIR/member_id"
echo "==> Stored member id: $(cat ${ETCD_DATA_DIR}/member_id)" 1>&3 2>&4
exit 0
}
## Configure RBAC
@@ -75,7 +76,7 @@ data:
local -r min_endpoints=$((({{ $replicaCount }} + 1)/2))
for e in "${endpoints_array[@]}"; do
if [[ "$e" != "$ETCD_ADVERTISE_CLIENT_URLS" ]] && etcdctl $AUTH_OPTIONS endpoint health --endpoints="$e"; then
if [[ "$e" != "$ETCD_ADVERTISE_CLIENT_URLS" ]] && (unset -v ETCDCTL_ENDPOINTS; exec etcdctl $AUTH_OPTIONS endpoint health --endpoints="$e"); then
active_endpoints=$((active_endpoints + 1))
fi
done
@@ -130,13 +131,15 @@ data:
--initial-cluster $ETCD_INITIAL_CLUSTER \
--initial-cluster-token $ETCD_INITIAL_CLUSTER_TOKEN \
--initial-advertise-peer-urls $ETCD_INITIAL_ADVERTISE_PEER_URLS 1>&3 2>&4
store_member_id &
store_member_id & 1>&3 2>&4
else
echo "==> There was no snapshot to perform data recovery!!" 1>&3 2>&4
exit 1
fi
{{- else }}
store_member_id &
store_member_id & 1>&3 2>&4
configure_rbac
{{- end }}
else
@@ -154,7 +157,8 @@ data:
--initial-cluster $ETCD_INITIAL_CLUSTER \
--initial-cluster-token $ETCD_INITIAL_CLUSTER_TOKEN \
--initial-advertise-peer-urls $ETCD_INITIAL_ADVERTISE_PEER_URLS 1>&3 2>&4
store_member_id &
store_member_id & 1>&3 2>&4
else
echo "==> There was no snapshot to perform data recovery!!" 1>&3 2>&4
exit 1
@@ -169,7 +173,8 @@ data:
sed -ie 's/^/export /' "$ETCD_DATA_DIR/new_member_envs"
echo "==> Loading env vars of existing cluster..." 1>&3 2>&4
source "$ETCD_DATA_DIR/new_member_envs" 1>&3 2>&4
store_member_id &
store_member_id & 1>&3 2>&4
else
echo "==> Updating member in existing cluster..." 1>&3 2>&4
etcdctl $AUTH_OPTIONS member update "$(cat "$ETCD_DATA_DIR/member_id")" --peer-urls="{{ $etcdPeerProtocol }}://${HOSTNAME}.{{ $etcdHeadlessServiceName }}.{{ .Release.Namespace }}.{{ $dnsBase }}:{{ $peerPort }}" 1>&3 2>&4