Retry for stack deploy
diff --git a/docker/client/stack.sls b/docker/client/stack.sls
index 4671735..985a6fc 100644
--- a/docker/client/stack.sls
+++ b/docker/client/stack.sls
@@ -67,7 +67,17 @@
 
 docker_stack_{{ app }}:
   cmd.run:
-    - name: docker stack deploy --compose-file docker-compose.yml {{ app }}
+    - name: >
+        i=1;
+        while [ $i -lt 5 ]; do
+        docker stack deploy --compose-file docker-compose.yml {{ app }};
+        ret=$?;
+        [ $ret -eq 0 ] && exit 0;
+        echo "Stack creation failed, retrying in 3 seconds.." >&2;
+        sleep 3;
+        i=$[ $i + 1 ];
+        done
+    - shell: /bin/bash
     - cwd: {{ client.compose.base }}/{{ app }}
     - user: {{ compose.user|default("root") }}
     - unless: "docker stack ls | grep '{{ app }}'"
@@ -77,7 +87,17 @@
 
 docker_stack_{{ app }}_update:
   cmd.wait:
-    - name: docker stack deploy --compose-file docker-compose.yml {{ app }}
+    - name: >
+        i=1;
+        while [ $i -lt 5 ]; do
+        docker stack deploy --compose-file docker-compose.yml {{ app }};
+        ret=$?;
+        [ $ret -eq 0 ] && exit 0;
+        echo "Stack update failed, retrying in 3 seconds.." >&2;
+        sleep 3;
+        i=$[ $i + 1 ];
+        done
+    - shell: /bin/bash
     - cwd: {{ client.compose.base }}/{{ app }}
     - user: {{ compose.user|default("root") }}
     - require: