Decapod deployment with docker stack

Change-Id: I88276a6199740ac73bca86b66d171c709faadcb3
diff --git a/docker/swarm/stack/decapod.yml b/docker/swarm/stack/decapod.yml
new file mode 100644
index 0000000..90f16d9
--- /dev/null
+++ b/docker/swarm/stack/decapod.yml
@@ -0,0 +1,65 @@
+parameters:
+  _param:
+    docker_decapod_fe_replicas: 3
+    decapod_version: latest
+    docker_image_admin: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/admin:${_param:decapod_version}
+    docker_image_db: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/db:${_param:decapod_version}
+    docker_image_api: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/api:${_param:decapod_version}
+    docker_image_controller: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/controller:latest
+    docker_image_frontend: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/controller:${_param:decapod_version}
+  docker:
+    client:
+      stack:
+        decapod:
+          service:
+            database:
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_db}
+              volumes:
+                - /srv/volumes/decapod/db:/data/db
+              ports:
+                - 37017:27017
+            api:
+              links:
+                - database
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_api}
+              volumes:
+                - /srv/volumes/decapod/config:/etc/decapod
+            controller:
+              links:
+                - database
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_controller}
+              volumes:
+                - /srv/volumes/decapod/key:/root/.ssh
+                - /srv/volumes/decapod/config:/etc/decapod
+            frontend:
+              links:
+                - api
+              ports:
+                - 19999:80
+                - 20000:443
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_frontend}
+            admin:
+              links:
+                - database
+              ports:
+                - 20001:8000
+                - 19998:8001
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_admin}
+              volumes:
+                - /srv/volumes/decapod/key:/root/.ssh
+                - /srv/volumes/decapod/config:/etc/decapod
diff --git a/glusterfs/client/volume/decapod.yml b/glusterfs/client/volume/decapod.yml
new file mode 100644
index 0000000..ef9de8a
--- /dev/null
+++ b/glusterfs/client/volume/decapod.yml
@@ -0,0 +1,13 @@
+parameters:
+  _param:
+    decapod_glusterfs_service_host: ${_param:glusterfs_service_host}
+    glusterfs_node01_address: ${_param:cluster_node01_address}
+    glusterfs_node02_address: ${_param:cluster_node02_address}
+    glusterfs_node03_address: ${_param:cluster_node03_address}
+  glusterfs:
+    client:
+      volumes:
+        decapod:
+          path: /srv/volumes/decapod
+          server: ${_param:decapod_glusterfs_service_host}
+          opts: "defaults,backup-volfile-servers=${_param:glusterfs_node01_address}:${_param:glusterfs_node02_address}:${_param:glusterfs_node03_address}"
diff --git a/glusterfs/server/volume/decapod.yml b/glusterfs/server/volume/decapod.yml
new file mode 100644
index 0000000..e4b80df
--- /dev/null
+++ b/glusterfs/server/volume/decapod.yml
@@ -0,0 +1,17 @@
+parameters:
+  glusterfs:
+    server:
+      volumes:
+        decapod:
+          storage: /srv/glusterfs/decapod
+          replica: 3
+          bricks:
+            - ${_param:cluster_node01_address}:/srv/glusterfs/decapod
+            - ${_param:cluster_node02_address}:/srv/glusterfs/decapod
+            - ${_param:cluster_node03_address}:/srv/glusterfs/decapod
+          options:
+            cluster.readdir-optimize: On
+            nfs.disable: On
+            network.remote-dio: On
+            diagnostics.client-log-level: WARNING
+            diagnostics.brick-log-level: WARNING
diff --git a/haproxy/proxy/listen/decapod.yml b/haproxy/proxy/listen/decapod.yml
new file mode 100644
index 0000000..a3d79ab
--- /dev/null
+++ b/haproxy/proxy/listen/decapod.yml
@@ -0,0 +1,28 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        decapod:
+          mode: http
+          options:
+            - forwardfor
+#            - httpchk
+            - httpclose
+            - httplog
+          balance: source
+          binds:
+            - address: ${_param:haproxy_jenkins_bind_host}
+              port: 9999
+          servers:
+            - name: ${_param:cluster_node01_name}
+              host: ${_param:cluster_node01_address}
+              port: 19999
+              params: check
+            - name: ${_param:cluster_node02_name}
+              host: ${_param:cluster_node02_address}
+              port: 19999
+              params: backup check
+            - name: ${_param:cluster_node03_name}
+              host: ${_param:cluster_node03_address}
+              port: 19999
+              params: backup check