summaryrefslogtreecommitdiff
path: root/salt/openbook/workflow_server
diff options
context:
space:
mode:
authorCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-09-21 20:54:25 -0600
committerCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-09-21 20:54:25 -0600
commit412c4c232cafde4cf59bb6e5225454bcca92a29d (patch)
tree9e838d99a53bcad90f712d531c4d904ee3d96782 /salt/openbook/workflow_server
parent823dd08650327cd935b27fbe05b8dd646183dc20 (diff)
adding new microservices
Diffstat (limited to 'salt/openbook/workflow_server')
-rw-r--r--salt/openbook/workflow_server/files/Dockerfile8
-rw-r--r--salt/openbook/workflow_server/files/build.sh35
-rw-r--r--salt/openbook/workflow_server/files/installdeps.sh11
-rw-r--r--salt/openbook/workflow_server/files/run.sh4
-rw-r--r--salt/openbook/workflow_server/files/start_app.sh3
-rw-r--r--salt/openbook/workflow_server/files/workflow_server.json15
-rw-r--r--salt/openbook/workflow_server/init.sls55
7 files changed, 131 insertions, 0 deletions
diff --git a/salt/openbook/workflow_server/files/Dockerfile b/salt/openbook/workflow_server/files/Dockerfile
new file mode 100644
index 0000000..d6bf531
--- /dev/null
+++ b/salt/openbook/workflow_server/files/Dockerfile
@@ -0,0 +1,8 @@
+FROM {{ pillar["baseimage"]["image_name"] }}
+MAINTAINER Carlos Konstanski <carlos@talligent.com>
+ADD docker-start.tar.xz /
+EXPOSE 8081 5701 5702
+VOLUME {{ pillar["workflow_server"]["dirs"]["etc_openbook_workflow_server"]["name"] }}
+VOLUME {{ pillar["workflow_server"]["dirs"]["var_log_openbook_workflow_server"]["name"] }}
+RUN /installdeps.sh
+ENTRYPOINT [ "/start_app.sh" ]
diff --git a/salt/openbook/workflow_server/files/build.sh b/salt/openbook/workflow_server/files/build.sh
new file mode 100644
index 0000000..d89c34e
--- /dev/null
+++ b/salt/openbook/workflow_server/files/build.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Do not call directly. Meant to be called from CI build script.
+
+pushd {{ pillar["workflow_server"]["build_dir"] }} 2>/dev/null
+
+echo "Creating tmp directory"
+rm -rf tmp
+mkdir tmp
+rm -f docker-start.tar.xz
+
+echo "Populating with custom files"
+rsync -aq data/ tmp/
+
+echo "Repackaging into .xz file"
+tar Jcvf docker-start.tar.xz -C tmp/ .
+
+echo "Deleting existing docker container"
+docker stop {{ pillar["workflow_server"]["container_name"] }}
+docker container prune -f
+docker rmi -f {{ pillar["workflow_server"]["image_name"] }}
+
+echo "Building docker Ubuntu image"
+docker build -t {{ pillar["workflow_server"]["image_name"] }} .
+
+echo "Push docker image to the registry"
+docker tag {{ pillar["workflow_server"]["image_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["workflow_server"]["image_name"] }}
+docker push {{ pillar["registry"]["url"] }}/{{ pillar["workflow_server"]["image_name"] }}
+
+echo "Cleaning up"
+rm -rf tmp
+rm -f docker-start.tar.xz
+
+popd 2>/dev/null
+exit 0
diff --git a/salt/openbook/workflow_server/files/installdeps.sh b/salt/openbook/workflow_server/files/installdeps.sh
new file mode 100644
index 0000000..ccb638a
--- /dev/null
+++ b/salt/openbook/workflow_server/files/installdeps.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+export DEBIAN_FRONTEND=noninteractive
+apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" openjdk-8-jre-headless
+
+curl -k \
+ -u '{{ pillar["jars"]["username"] }}:{{ pillar["jars"]["password"] }}' \
+ -o "{{ pillar["workflow_server"]["jar_name"] }}" \
+ "{{ pillar["jars"]["url"] }}{{ pillar["workflow_server"]["jar_name"] }}"
+
+exit 0
diff --git a/salt/openbook/workflow_server/files/run.sh b/salt/openbook/workflow_server/files/run.sh
new file mode 100644
index 0000000..427a3da
--- /dev/null
+++ b/salt/openbook/workflow_server/files/run.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+docker run -d --net=host -v {{ pillar["workflow_server"]["dirs"]["etc_openbook_workflow_server"]["name"] }}:{{ pillar["workflow_server"]["dirs"]["etc_openbook_workflow_server"]["name"] }} -v {{ pillar["workflow_server"]["dirs"]["var_log_openbook_workflow_server"]["name"] }}:{{ pillar["workflow_server"]["dirs"]["var_log_openbook_workflow_server"]["name"] }} --name {{ pillar["workflow_server"]["container_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["workflow_server"]["image_name"] }}
+exit 0
diff --git a/salt/openbook/workflow_server/files/start_app.sh b/salt/openbook/workflow_server/files/start_app.sh
new file mode 100644
index 0000000..3324f4f
--- /dev/null
+++ b/salt/openbook/workflow_server/files/start_app.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+exec java -jar {{ pillar["workflow_server"]["jar_name"] }} run com.talligent.openbook.verticle.Startup --cluster
diff --git a/salt/openbook/workflow_server/files/workflow_server.json b/salt/openbook/workflow_server/files/workflow_server.json
new file mode 100644
index 0000000..0ff5f64
--- /dev/null
+++ b/salt/openbook/workflow_server/files/workflow_server.json
@@ -0,0 +1,15 @@
+{% raw %}
+{% set ips = openbook_gcomm_addresses.split(",") %}
+{% if ips|length > 1 %}
+{% set failover = "failover:" %}
+{% else %}
+{% set failover = "" %}
+{% endif %}
+{% endraw %}
+
+{
+ "log.path": "{{ pillar["workflow_server"]["log"] }}",
+ "entityDS.url": "jdbc:mariadb:{% raw %}{{ failover }}{% endraw %}//{% raw %}{{ openbook_gcomm_addresses }}{% endraw %}/openbook",
+ "workflowDS.url": "jdbc:mariadb:{% raw %}{{ failover }}{% endraw %}//{% raw %}{{ openbook_gcomm_addresses }}{% endraw %}/openbook_workflow",
+ "jobsDS.url": "jdbc:mariadb:{% raw %}{{ failover }}{% endraw %}//{% raw %}{{ openbook_gcomm_addresses }}{% endraw %}/openbook_jobs"
+}
diff --git a/salt/openbook/workflow_server/init.sls b/salt/openbook/workflow_server/init.sls
new file mode 100644
index 0000000..2b8ba27
--- /dev/null
+++ b/salt/openbook/workflow_server/init.sls
@@ -0,0 +1,55 @@
+{% for dir in pillar["workflow_server"]["dirs"].items() %}
+workflow_server_dirs_{{ dir[0] }}:
+ file.directory:
+{% if dir[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["workflow_server"]["build_dir"] }}/{{ dir[1]["name"] }}
+{% else %}
+ - name: {{ dir[1]["name"] }}
+{% endif %}
+ - user: root
+ - group: root
+ - mode: {{ dir[1]["mode"] }}
+ - makedirs: True
+{% endfor %}
+
+{% for file in pillar["workflow_server"]["files"].items() %}
+workflow_server_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["workflow_server"]["build_dir"] }}/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% else %}
+ - name: {{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/workflow_server/files/{{ file[1]["source"] }}
+{% if file[1]["is_template"] %}
+ - template: jinja
+{% endif %}
+ - user: root
+ - group: root
+ - mode: {{ file[1]["mode"] }}
+{% if file[1]["ansible"] %}
+ansible_workflow_server_dirs_{{ file[0] }}:
+ file.directory:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/workflow_server/{{ file[1]["path"] }}
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/workflow_server/{{ file[1]["path"] }}
+{% endif %}
+ - user: root
+ - group: root
+ - mode: "0755"
+ - makedirs: True
+ansible_workflow_server_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/workflow_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+ - template: jinja
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/workflow_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/workflow_server/files/{{ file[1]["source"] }}
+ - user: root
+ - group: root
+ - mode: {{ file[1]["mode"] }}
+{% endif %}
+{% endfor %}