summaryrefslogtreecommitdiff
path: root/salt
diff options
context:
space:
mode:
Diffstat (limited to 'salt')
-rw-r--r--salt/openbook/admin_api_server/files/Dockerfile8
-rw-r--r--salt/openbook/admin_api_server/files/admin_api_server.json15
-rw-r--r--salt/openbook/admin_api_server/files/build.sh35
-rw-r--r--salt/openbook/admin_api_server/files/installdeps.sh11
-rw-r--r--salt/openbook/admin_api_server/files/run.sh4
-rw-r--r--salt/openbook/admin_api_server/files/start_app.sh3
-rw-r--r--salt/openbook/admin_api_server/init.sls55
-rw-r--r--salt/openbook/ansible/files/openbook.yaml4
-rw-r--r--salt/openbook/api_server/files/run.sh4
-rw-r--r--salt/openbook/api_server/files/start_app.sh3
-rw-r--r--salt/openbook/api_server/init.sls55
-rw-r--r--salt/openbook/customer_api_server/files/Dockerfile8
-rw-r--r--salt/openbook/customer_api_server/files/build.sh35
-rw-r--r--salt/openbook/customer_api_server/files/customer_api_server.json15
-rw-r--r--salt/openbook/customer_api_server/files/installdeps.sh11
-rw-r--r--salt/openbook/customer_api_server/files/run.sh4
-rw-r--r--salt/openbook/customer_api_server/files/start_app.sh3
-rw-r--r--salt/openbook/customer_api_server/init.sls55
-rw-r--r--salt/openbook/job_scheduler_server/files/Dockerfile8
-rw-r--r--salt/openbook/job_scheduler_server/files/build.sh35
-rw-r--r--salt/openbook/job_scheduler_server/files/installdeps.sh11
-rw-r--r--salt/openbook/job_scheduler_server/files/job_scheduler_server.json15
-rw-r--r--salt/openbook/job_scheduler_server/files/run.sh4
-rw-r--r--salt/openbook/job_scheduler_server/files/start_app.sh3
-rw-r--r--salt/openbook/job_scheduler_server/init.sls55
-rw-r--r--salt/openbook/workflow_server/files/Dockerfile (renamed from salt/openbook/api_server/files/Dockerfile)4
-rw-r--r--salt/openbook/workflow_server/files/build.sh (renamed from salt/openbook/api_server/files/build.sh)12
-rw-r--r--salt/openbook/workflow_server/files/installdeps.sh (renamed from salt/openbook/api_server/files/installdeps.sh)4
-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.json (renamed from salt/openbook/api_server/files/api_server.json)2
-rw-r--r--salt/openbook/workflow_server/init.sls55
-rw-r--r--salt/top.sls5
33 files changed, 473 insertions, 75 deletions
diff --git a/salt/openbook/admin_api_server/files/Dockerfile b/salt/openbook/admin_api_server/files/Dockerfile
new file mode 100644
index 0000000..35c5079
--- /dev/null
+++ b/salt/openbook/admin_api_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["admin_api_server"]["dirs"]["etc_openbook_admin_api_server"]["name"] }}
+VOLUME {{ pillar["admin_api_server"]["dirs"]["var_log_openbook_admin_api_server"]["name"] }}
+RUN /installdeps.sh
+ENTRYPOINT [ "/start_app.sh" ]
diff --git a/salt/openbook/admin_api_server/files/admin_api_server.json b/salt/openbook/admin_api_server/files/admin_api_server.json
new file mode 100644
index 0000000..40eb9a7
--- /dev/null
+++ b/salt/openbook/admin_api_server/files/admin_api_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["admin_api_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/admin_api_server/files/build.sh b/salt/openbook/admin_api_server/files/build.sh
new file mode 100644
index 0000000..feaaaa1
--- /dev/null
+++ b/salt/openbook/admin_api_server/files/build.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Do not call directly. Meant to be called from CI build script.
+
+pushd {{ pillar["admin_api_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["admin_api_server"]["container_name"] }}
+docker container prune -f
+docker rmi -f {{ pillar["admin_api_server"]["image_name"] }}
+
+echo "Building docker Ubuntu image"
+docker build -t {{ pillar["admin_api_server"]["image_name"] }} .
+
+echo "Push docker image to the registry"
+docker tag {{ pillar["admin_api_server"]["image_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["admin_api_server"]["image_name"] }}
+docker push {{ pillar["registry"]["url"] }}/{{ pillar["admin_api_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/admin_api_server/files/installdeps.sh b/salt/openbook/admin_api_server/files/installdeps.sh
new file mode 100644
index 0000000..2d97c9f
--- /dev/null
+++ b/salt/openbook/admin_api_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["admin_api_server"]["jar_name"] }}" \
+ "{{ pillar["jars"]["url"] }}{{ pillar["admin_api_server"]["jar_name"] }}"
+
+exit 0
diff --git a/salt/openbook/admin_api_server/files/run.sh b/salt/openbook/admin_api_server/files/run.sh
new file mode 100644
index 0000000..1f5df60
--- /dev/null
+++ b/salt/openbook/admin_api_server/files/run.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+docker run -d --net=host -v {{ pillar["admin_api_server"]["dirs"]["etc_openbook_admin_api_server"]["name"] }}:{{ pillar["admin_api_server"]["dirs"]["etc_openbook_admin_api_server"]["name"] }} -v {{ pillar["admin_api_server"]["dirs"]["var_log_openbook_admin_api_server"]["name"] }}:{{ pillar["admin_api_server"]["dirs"]["var_log_openbook_admin_api_server"]["name"] }} --name {{ pillar["admin_api_server"]["container_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["admin_api_server"]["image_name"] }}
+exit 0
diff --git a/salt/openbook/admin_api_server/files/start_app.sh b/salt/openbook/admin_api_server/files/start_app.sh
new file mode 100644
index 0000000..d610377
--- /dev/null
+++ b/salt/openbook/admin_api_server/files/start_app.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+exec java -jar {{ pillar["admin_api_server"]["jar_name"] }} run com.talligent.openbook.verticle.Startup --cluster
diff --git a/salt/openbook/admin_api_server/init.sls b/salt/openbook/admin_api_server/init.sls
new file mode 100644
index 0000000..681d5d8
--- /dev/null
+++ b/salt/openbook/admin_api_server/init.sls
@@ -0,0 +1,55 @@
+{% for dir in pillar["admin_api_server"]["dirs"].items() %}
+admin_api_server_dirs_{{ dir[0] }}:
+ file.directory:
+{% if dir[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["admin_api_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["admin_api_server"]["files"].items() %}
+admin_api_server_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["admin_api_server"]["build_dir"] }}/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% else %}
+ - name: {{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/admin_api_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_admin_api_server_dirs_{{ file[0] }}:
+ file.directory:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/admin_api_server/{{ file[1]["path"] }}
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/admin_api_server/{{ file[1]["path"] }}
+{% endif %}
+ - user: root
+ - group: root
+ - mode: "0755"
+ - makedirs: True
+ansible_admin_api_server_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/admin_api_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+ - template: jinja
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/admin_api_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/admin_api_server/files/{{ file[1]["source"] }}
+ - user: root
+ - group: root
+ - mode: {{ file[1]["mode"] }}
+{% endif %}
+{% endfor %}
diff --git a/salt/openbook/ansible/files/openbook.yaml b/salt/openbook/ansible/files/openbook.yaml
index b6992ba..c4b8d64 100644
--- a/salt/openbook/ansible/files/openbook.yaml
+++ b/salt/openbook/ansible/files/openbook.yaml
@@ -115,7 +115,9 @@
- name: "Pull docker images"
shell: |
docker login --username {{ pillar["registry"]["username"] }} --password {{ pillar["registry"]["password"] }} {{ pillar["registry"]["url"] }}
- docker pull {{ pillar["registry"]["url"] }}/{{ pillar["database"]["image_name"] }}
+ if [ "{{ openbook_install_database }}" == "True" ]; then
+ docker pull {{ pillar["registry"]["url"] }}/{{ pillar["database"]["image_name"] }}
+ fi
docker pull {{ pillar["registry"]["url"] }}/{{ pillar["api_server"]["image_name"] }}
docker pull {{ pillar["registry"]["url"] }}/{{ pillar["admin_web_ui"]["image_name"] }}
docker pull {{ pillar["registry"]["url"] }}/{{ pillar["customer_web_ui"]["image_name"] }}
diff --git a/salt/openbook/api_server/files/run.sh b/salt/openbook/api_server/files/run.sh
deleted file mode 100644
index 86f5ede..0000000
--- a/salt/openbook/api_server/files/run.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-
-docker run -d --net=host -v {{ pillar["api_server"]["dirs"]["etc_openbook_api_server"]["name"] }}:{{ pillar["api_server"]["dirs"]["etc_openbook_api_server"]["name"] }} -v {{ pillar["api_server"]["dirs"]["var_log_openbook_api_server"]["name"] }}:{{ pillar["api_server"]["dirs"]["var_log_openbook_api_server"]["name"] }} --name {{ pillar["api_server"]["container_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["api_server"]["image_name"] }}
-exit 0
diff --git a/salt/openbook/api_server/files/start_app.sh b/salt/openbook/api_server/files/start_app.sh
deleted file mode 100644
index 87cea8b..0000000
--- a/salt/openbook/api_server/files/start_app.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-
-exec java -jar {{ pillar["api_server"]["jar_name"] }} run com.talligent.openbook.verticle.Startup --cluster
diff --git a/salt/openbook/api_server/init.sls b/salt/openbook/api_server/init.sls
deleted file mode 100644
index f0fdb7c..0000000
--- a/salt/openbook/api_server/init.sls
+++ /dev/null
@@ -1,55 +0,0 @@
-{% for dir in pillar["api_server"]["dirs"].items() %}
-apiserver_dirs_{{ dir[0] }}:
- file.directory:
-{% if dir[1]["relative_to_buildroot"] %}
- - name: {{ pillar["api_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["api_server"]["files"].items() %}
-apiserver_files_{{ file[0] }}:
- file.managed:
-{% if file[1]["relative_to_buildroot"] %}
- - name: {{ pillar["api_server"]["build_dir"] }}/{{ file[1]["path"] }}/{{ file[1]["name"] }}
-{% else %}
- - name: {{ file[1]["path"] }}/{{ file[1]["name"] }}
-{% endif %}
- - source: salt://openbook/api_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_apiserver_dirs_{{ file[0] }}:
- file.directory:
-{% if file[1]["is_template"] %}
- - name: {{ pillar["ansible"]["build_dir"] }}/templates/api_server/{{ file[1]["path"] }}
-{% else %}
- - name: {{ pillar["ansible"]["build_dir"] }}/files/api_server/{{ file[1]["path"] }}
-{% endif %}
- - user: root
- - group: root
- - mode: "0755"
- - makedirs: True
-ansible_apiserver_files_{{ file[0] }}:
- file.managed:
-{% if file[1]["is_template"] %}
- - name: {{ pillar["ansible"]["build_dir"] }}/templates/api_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
- - template: jinja
-{% else %}
- - name: {{ pillar["ansible"]["build_dir"] }}/files/api_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
-{% endif %}
- - source: salt://openbook/api_server/files/{{ file[1]["source"] }}
- - user: root
- - group: root
- - mode: {{ file[1]["mode"] }}
-{% endif %}
-{% endfor %}
diff --git a/salt/openbook/customer_api_server/files/Dockerfile b/salt/openbook/customer_api_server/files/Dockerfile
new file mode 100644
index 0000000..98303c5
--- /dev/null
+++ b/salt/openbook/customer_api_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["customer_api_server"]["dirs"]["etc_openbook_customer_api_server"]["name"] }}
+VOLUME {{ pillar["customer_api_server"]["dirs"]["var_log_openbook_customer_api_server"]["name"] }}
+RUN /installdeps.sh
+ENTRYPOINT [ "/start_app.sh" ]
diff --git a/salt/openbook/customer_api_server/files/build.sh b/salt/openbook/customer_api_server/files/build.sh
new file mode 100644
index 0000000..513ca2d
--- /dev/null
+++ b/salt/openbook/customer_api_server/files/build.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Do not call directly. Meant to be called from CI build script.
+
+pushd {{ pillar["customer_api_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["customer_api_server"]["container_name"] }}
+docker container prune -f
+docker rmi -f {{ pillar["customer_api_server"]["image_name"] }}
+
+echo "Building docker Ubuntu image"
+docker build -t {{ pillar["customer_api_server"]["image_name"] }} .
+
+echo "Push docker image to the registry"
+docker tag {{ pillar["customer_api_server"]["image_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["customer_api_server"]["image_name"] }}
+docker push {{ pillar["registry"]["url"] }}/{{ pillar["customer_api_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/customer_api_server/files/customer_api_server.json b/salt/openbook/customer_api_server/files/customer_api_server.json
new file mode 100644
index 0000000..a69a8af
--- /dev/null
+++ b/salt/openbook/customer_api_server/files/customer_api_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["customer_api_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/customer_api_server/files/installdeps.sh b/salt/openbook/customer_api_server/files/installdeps.sh
new file mode 100644
index 0000000..e8054cf
--- /dev/null
+++ b/salt/openbook/customer_api_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["customer_api_server"]["jar_name"] }}" \
+ "{{ pillar["jars"]["url"] }}{{ pillar["customer_api_server"]["jar_name"] }}"
+
+exit 0
diff --git a/salt/openbook/customer_api_server/files/run.sh b/salt/openbook/customer_api_server/files/run.sh
new file mode 100644
index 0000000..11156c5
--- /dev/null
+++ b/salt/openbook/customer_api_server/files/run.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+docker run -d --net=host -v {{ pillar["customer_api_server"]["dirs"]["etc_openbook_customer_api_server"]["name"] }}:{{ pillar["customer_api_server"]["dirs"]["etc_openbook_customer_api_server"]["name"] }} -v {{ pillar["customer_api_server"]["dirs"]["var_log_openbook_customer_api_server"]["name"] }}:{{ pillar["customer_api_server"]["dirs"]["var_log_openbook_customer_api_server"]["name"] }} --name {{ pillar["customer_api_server"]["container_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["customer_api_server"]["image_name"] }}
+exit 0
diff --git a/salt/openbook/customer_api_server/files/start_app.sh b/salt/openbook/customer_api_server/files/start_app.sh
new file mode 100644
index 0000000..6fd1f62
--- /dev/null
+++ b/salt/openbook/customer_api_server/files/start_app.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+exec java -jar {{ pillar["customer_api_server"]["jar_name"] }} run com.talligent.openbook.verticle.Startup --cluster
diff --git a/salt/openbook/customer_api_server/init.sls b/salt/openbook/customer_api_server/init.sls
new file mode 100644
index 0000000..e6b497c
--- /dev/null
+++ b/salt/openbook/customer_api_server/init.sls
@@ -0,0 +1,55 @@
+{% for dir in pillar["customer_api_server"]["dirs"].items() %}
+customer_api_server_dirs_{{ dir[0] }}:
+ file.directory:
+{% if dir[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["customer_api_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["customer_api_server"]["files"].items() %}
+customer_api_server_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["customer_api_server"]["build_dir"] }}/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% else %}
+ - name: {{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/customer_api_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_customer_api_server_dirs_{{ file[0] }}:
+ file.directory:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/customer_api_server/{{ file[1]["path"] }}
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/customer_api_server/{{ file[1]["path"] }}
+{% endif %}
+ - user: root
+ - group: root
+ - mode: "0755"
+ - makedirs: True
+ansible_customer_api_server_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/customer_api_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+ - template: jinja
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/customer_api_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/customer_api_server/files/{{ file[1]["source"] }}
+ - user: root
+ - group: root
+ - mode: {{ file[1]["mode"] }}
+{% endif %}
+{% endfor %}
diff --git a/salt/openbook/job_scheduler_server/files/Dockerfile b/salt/openbook/job_scheduler_server/files/Dockerfile
new file mode 100644
index 0000000..5eb261a
--- /dev/null
+++ b/salt/openbook/job_scheduler_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["job_scheduler_server"]["dirs"]["etc_openbook_job_scheduler_server"]["name"] }}
+VOLUME {{ pillar["job_scheduler_server"]["dirs"]["var_log_openbook_job_scheduler_server"]["name"] }}
+RUN /installdeps.sh
+ENTRYPOINT [ "/start_app.sh" ]
diff --git a/salt/openbook/job_scheduler_server/files/build.sh b/salt/openbook/job_scheduler_server/files/build.sh
new file mode 100644
index 0000000..84b5759
--- /dev/null
+++ b/salt/openbook/job_scheduler_server/files/build.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Do not call directly. Meant to be called from CI build script.
+
+pushd {{ pillar["job_scheduler_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["job_scheduler_server"]["container_name"] }}
+docker container prune -f
+docker rmi -f {{ pillar["job_scheduler_server"]["image_name"] }}
+
+echo "Building docker Ubuntu image"
+docker build -t {{ pillar["job_scheduler_server"]["image_name"] }} .
+
+echo "Push docker image to the registry"
+docker tag {{ pillar["job_scheduler_server"]["image_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["job_scheduler_server"]["image_name"] }}
+docker push {{ pillar["registry"]["url"] }}/{{ pillar["job_scheduler_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/job_scheduler_server/files/installdeps.sh b/salt/openbook/job_scheduler_server/files/installdeps.sh
new file mode 100644
index 0000000..ad8643f
--- /dev/null
+++ b/salt/openbook/job_scheduler_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["job_scheduler_server"]["jar_name"] }}" \
+ "{{ pillar["jars"]["url"] }}{{ pillar["job_scheduler_server"]["jar_name"] }}"
+
+exit 0
diff --git a/salt/openbook/job_scheduler_server/files/job_scheduler_server.json b/salt/openbook/job_scheduler_server/files/job_scheduler_server.json
new file mode 100644
index 0000000..673a8c2
--- /dev/null
+++ b/salt/openbook/job_scheduler_server/files/job_scheduler_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["job_scheduler_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/job_scheduler_server/files/run.sh b/salt/openbook/job_scheduler_server/files/run.sh
new file mode 100644
index 0000000..284bb15
--- /dev/null
+++ b/salt/openbook/job_scheduler_server/files/run.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+docker run -d --net=host -v {{ pillar["job_scheduler_server"]["dirs"]["etc_openbook_job_scheduler_server"]["name"] }}:{{ pillar["job_scheduler_server"]["dirs"]["etc_openbook_job_scheduler_server"]["name"] }} -v {{ pillar["job_scheduler_server"]["dirs"]["var_log_openbook_job_scheduler_server"]["name"] }}:{{ pillar["job_scheduler_server"]["dirs"]["var_log_openbook_job_scheduler_server"]["name"] }} --name {{ pillar["job_scheduler_server"]["container_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["job_scheduler_server"]["image_name"] }}
+exit 0
diff --git a/salt/openbook/job_scheduler_server/files/start_app.sh b/salt/openbook/job_scheduler_server/files/start_app.sh
new file mode 100644
index 0000000..9a7dbf4
--- /dev/null
+++ b/salt/openbook/job_scheduler_server/files/start_app.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+exec java -jar {{ pillar["job_scheduler_server"]["jar_name"] }} run com.talligent.openbook.verticle.Startup --cluster
diff --git a/salt/openbook/job_scheduler_server/init.sls b/salt/openbook/job_scheduler_server/init.sls
new file mode 100644
index 0000000..0bb4aca
--- /dev/null
+++ b/salt/openbook/job_scheduler_server/init.sls
@@ -0,0 +1,55 @@
+{% for dir in pillar["job_scheduler_server"]["dirs"].items() %}
+job_scheduler_server_dirs_{{ dir[0] }}:
+ file.directory:
+{% if dir[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["job_scheduler_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["job_scheduler_server"]["files"].items() %}
+job_scheduler_server_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["job_scheduler_server"]["build_dir"] }}/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% else %}
+ - name: {{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/job_scheduler_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_job_scheduler_server_dirs_{{ file[0] }}:
+ file.directory:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/job_scheduler_server/{{ file[1]["path"] }}
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/job_scheduler_server/{{ file[1]["path"] }}
+{% endif %}
+ - user: root
+ - group: root
+ - mode: "0755"
+ - makedirs: True
+ansible_job_scheduler_server_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/job_scheduler_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+ - template: jinja
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/job_scheduler_server/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/job_scheduler_server/files/{{ file[1]["source"] }}
+ - user: root
+ - group: root
+ - mode: {{ file[1]["mode"] }}
+{% endif %}
+{% endfor %}
diff --git a/salt/openbook/api_server/files/Dockerfile b/salt/openbook/workflow_server/files/Dockerfile
index 57c48ea..d6bf531 100644
--- a/salt/openbook/api_server/files/Dockerfile
+++ b/salt/openbook/workflow_server/files/Dockerfile
@@ -2,7 +2,7 @@ FROM {{ pillar["baseimage"]["image_name"] }}
MAINTAINER Carlos Konstanski <carlos@talligent.com>
ADD docker-start.tar.xz /
EXPOSE 8081 5701 5702
-VOLUME {{ pillar["api_server"]["dirs"]["etc_openbook_api_server"]["name"] }}
-VOLUME {{ pillar["api_server"]["dirs"]["var_log_openbook_api_server"]["name"] }}
+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/api_server/files/build.sh b/salt/openbook/workflow_server/files/build.sh
index 95f7077..d89c34e 100644
--- a/salt/openbook/api_server/files/build.sh
+++ b/salt/openbook/workflow_server/files/build.sh
@@ -2,7 +2,7 @@
# Do not call directly. Meant to be called from CI build script.
-pushd {{ pillar["api_server"]["build_dir"] }} 2>/dev/null
+pushd {{ pillar["workflow_server"]["build_dir"] }} 2>/dev/null
echo "Creating tmp directory"
rm -rf tmp
@@ -16,16 +16,16 @@ echo "Repackaging into .xz file"
tar Jcvf docker-start.tar.xz -C tmp/ .
echo "Deleting existing docker container"
-docker stop {{ pillar["api_server"]["container_name"] }}
+docker stop {{ pillar["workflow_server"]["container_name"] }}
docker container prune -f
-docker rmi -f {{ pillar["api_server"]["image_name"] }}
+docker rmi -f {{ pillar["workflow_server"]["image_name"] }}
echo "Building docker Ubuntu image"
-docker build -t {{ pillar["api_server"]["image_name"] }} .
+docker build -t {{ pillar["workflow_server"]["image_name"] }} .
echo "Push docker image to the registry"
-docker tag {{ pillar["api_server"]["image_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["api_server"]["image_name"] }}
-docker push {{ pillar["registry"]["url"] }}/{{ pillar["api_server"]["image_name"] }}
+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
diff --git a/salt/openbook/api_server/files/installdeps.sh b/salt/openbook/workflow_server/files/installdeps.sh
index 94a6353..ccb638a 100644
--- a/salt/openbook/api_server/files/installdeps.sh
+++ b/salt/openbook/workflow_server/files/installdeps.sh
@@ -5,7 +5,7 @@ apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--fo
curl -k \
-u '{{ pillar["jars"]["username"] }}:{{ pillar["jars"]["password"] }}' \
- -o "{{ pillar["api_server"]["jar_name"] }}" \
- "{{ pillar["jars"]["url"] }}{{ pillar["api_server"]["jar_name"] }}"
+ -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/api_server/files/api_server.json b/salt/openbook/workflow_server/files/workflow_server.json
index 8e75119..0ff5f64 100644
--- a/salt/openbook/api_server/files/api_server.json
+++ b/salt/openbook/workflow_server/files/workflow_server.json
@@ -8,7 +8,7 @@
{% endraw %}
{
- "log.path": "{{ pillar["api_server"]["log"] }}",
+ "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 %}
diff --git a/salt/top.sls b/salt/top.sls
index f471540..22ffb32 100644
--- a/salt/top.sls
+++ b/salt/top.sls
@@ -4,6 +4,9 @@ base:
- openbook.ansible
- openbook.baseimage
- openbook.database
- - openbook.api_server
+ - openbook.admin_api_server
- openbook.admin_web_ui
+ - openbook.customer_api_server
- openbook.customer_web_ui
+ - openbook.job_scheduler_server
+ - openbook.workflow_server