use initial_cluster_state to configure cluster

Change-Id: I2d288f25b30e842551a92dd559852a1bf283c056
diff --git a/etcd/files/configenv b/etcd/files/configenv
index 43550b4..7fdf06d 100644
--- a/etcd/files/configenv
+++ b/etcd/files/configenv
@@ -1,6 +1,6 @@
 {%- from "etcd/map.jinja" import server with context %}
 # this file can be sourced and used to configure etcdctl
-export ETCDCTL_ENDPOINT="{%- if server.bind.host != '127.0.0.1' %}http{% if server.get('ssl', {}).get('enabled') %}s{% endif %}://{{ server.bind.host }}:4001,{% endif %}http{% if server.get('ssl', {}).get('enabled') %}s{% endif %}://127.0.0.1:4001"
+export ETCDCTL_ENDPOINT="{% for member in server.members %}http{% if server.get('ssl', {}).get('enabled') %}s{% endif %}://{{ member.host }}:4001{% if not loop.last %},{% endif %}{% endfor %}"
 {%- if server.get('ssl', {}).get('enabled') %}
 export ETCDCTL_CA_FILE=/var/lib/etcd/ca.pem
 export ETCDCTL_CERT_FILE=/var/lib/etcd/etcd-server.pem
diff --git a/etcd/files/default b/etcd/files/default
index 4eb2319..84fe090 100644
--- a/etcd/files/default
+++ b/etcd/files/default
@@ -156,7 +156,7 @@
 ## value is set, etcd will attempt to start but fail safely.
 ## default: "new"
 # ETCD_INITIAL_CLUSTER_STATE="existing"
-ETCD_INITIAL_CLUSTER_STATE="new"
+ETCD_INITIAL_CLUSTER_STATE="{{ initial_cluster_state }}"
 
 ##### -initial-cluster-token
 ## Initial cluster token for the etcd cluster during bootstrap.
diff --git a/etcd/server/service.sls b/etcd/server/service.sls
index e9c2306..618e76b 100644
--- a/etcd/server/service.sls
+++ b/etcd/server/service.sls
@@ -38,6 +38,12 @@
   file.managed:
     - source: salt://etcd/files/default
     - template: jinja
+    - defaults:
+{%- if salt['cmd.run']('. /var/lib/etcd/configenv; etcdctl cluster-health > /dev/null 2>&1; echo $?') != '0' %}
+        initial_cluster_state: new
+{%- else %}
+        initial_cluster_state: existing
+{%- endif %}
 
 /var/lib/etcd/:
   file.directory:
diff --git a/etcd/server/setup.sls b/etcd/server/setup.sls
index 13f417d..ddde63f 100644
--- a/etcd/server/setup.sls
+++ b/etcd/server/setup.sls
@@ -10,4 +10,4 @@
 {%- endfor %}
 
 
-{%- endif %}
\ No newline at end of file
+{%- endif %}