summaryrefslogtreecommitdiff
path: root/salt/openbook/customer_web_ui
diff options
context:
space:
mode:
authorCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-08-30 13:09:56 -0600
committerCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-08-30 13:09:56 -0600
commit649f0dd9c5ca586d8b637400dd19c0c4059447d6 (patch)
tree5ccc992a3aa5de1bcb510911dfdb21e6a54bd197 /salt/openbook/customer_web_ui
initial commit
Diffstat (limited to 'salt/openbook/customer_web_ui')
-rw-r--r--salt/openbook/customer_web_ui/files/Dockerfile8
-rw-r--r--salt/openbook/customer_web_ui/files/build.sh35
-rw-r--r--salt/openbook/customer_web_ui/files/customer_web_ui.json3
-rw-r--r--salt/openbook/customer_web_ui/files/installdeps.sh11
-rw-r--r--salt/openbook/customer_web_ui/files/run.sh4
-rw-r--r--salt/openbook/customer_web_ui/files/start_app.sh3
-rw-r--r--salt/openbook/customer_web_ui/init.sls55
7 files changed, 119 insertions, 0 deletions
diff --git a/salt/openbook/customer_web_ui/files/Dockerfile b/salt/openbook/customer_web_ui/files/Dockerfile
new file mode 100644
index 0000000..b5885c1
--- /dev/null
+++ b/salt/openbook/customer_web_ui/files/Dockerfile
@@ -0,0 +1,8 @@
+FROM {{ pillar["baseimage"]["image_name"] }}
+MAINTAINER Carlos Konstanski <carlos@talligent.com>
+ADD docker-start.tar.xz /
+EXPOSE 8080 5701 5702
+VOLUME {{ pillar["customer_web_ui"]["dirs"]["etc_openbook_customer_web_ui"]["name"] }}
+VOLUME {{ pillar["customer_web_ui"]["dirs"]["var_log_openbook_customer_web_ui"]["name"] }}
+RUN /installdeps.sh
+ENTRYPOINT [ "/start_app.sh" ]
diff --git a/salt/openbook/customer_web_ui/files/build.sh b/salt/openbook/customer_web_ui/files/build.sh
new file mode 100644
index 0000000..6119a0c
--- /dev/null
+++ b/salt/openbook/customer_web_ui/files/build.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Do not call directly. Meant to be called from CI build script.
+
+pushd {{ pillar["customer_web_ui"]["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_web_ui"]["container_name"] }}
+docker container prune -f
+docker rmi -f {{ pillar["customer_web_ui"]["image_name"] }}
+
+echo "Building docker Ubuntu image"
+docker build -t {{ pillar["customer_web_ui"]["image_name"] }} .
+
+echo "Push docker image to the registry"
+docker tag {{ pillar["customer_web_ui"]["image_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["customer_web_ui"]["image_name"] }}
+docker push {{ pillar["registry"]["url"] }}/{{ pillar["customer_web_ui"]["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_web_ui/files/customer_web_ui.json b/salt/openbook/customer_web_ui/files/customer_web_ui.json
new file mode 100644
index 0000000..db06bc4
--- /dev/null
+++ b/salt/openbook/customer_web_ui/files/customer_web_ui.json
@@ -0,0 +1,3 @@
+{
+ "log.path": "{{ pillar["customer_web_ui"]["log"] }}"
+}
diff --git a/salt/openbook/customer_web_ui/files/installdeps.sh b/salt/openbook/customer_web_ui/files/installdeps.sh
new file mode 100644
index 0000000..f76ccfa
--- /dev/null
+++ b/salt/openbook/customer_web_ui/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_web_ui"]["jar_name"] }}" \
+ "{{ pillar["jars"]["url"] }}{{ pillar["customer_web_ui"]["jar_name"] }}"
+
+exit 0
diff --git a/salt/openbook/customer_web_ui/files/run.sh b/salt/openbook/customer_web_ui/files/run.sh
new file mode 100644
index 0000000..ce6b485
--- /dev/null
+++ b/salt/openbook/customer_web_ui/files/run.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+docker run -d --net=host -v {{ pillar["customer_web_ui"]["dirs"]["etc_openbook_customer_web_ui"]["name"] }}:{{ pillar["customer_web_ui"]["dirs"]["etc_openbook_customer_web_ui"]["name"] }} -v {{ pillar["customer_web_ui"]["dirs"]["var_log_openbook_customer_web_ui"]["name"] }}:{{ pillar["customer_web_ui"]["dirs"]["var_log_openbook_customer_web_ui"]["name"] }} --name {{ pillar["customer_web_ui"]["container_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["customer_web_ui"]["image_name"] }}
+exit 0
diff --git a/salt/openbook/customer_web_ui/files/start_app.sh b/salt/openbook/customer_web_ui/files/start_app.sh
new file mode 100644
index 0000000..7f24089
--- /dev/null
+++ b/salt/openbook/customer_web_ui/files/start_app.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+exec java -jar {{ pillar["customer_web_ui"]["jar_name"] }} run com.talligent.openbook.verticle.Startup --cluster
diff --git a/salt/openbook/customer_web_ui/init.sls b/salt/openbook/customer_web_ui/init.sls
new file mode 100644
index 0000000..957e220
--- /dev/null
+++ b/salt/openbook/customer_web_ui/init.sls
@@ -0,0 +1,55 @@
+{% for dir in pillar["customer_web_ui"]["dirs"].items() %}
+customerui_dirs_{{ dir[0] }}:
+ file.directory:
+{% if dir[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["customer_web_ui"]["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_web_ui"]["files"].items() %}
+customerui_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["relative_to_buildroot"] %}
+ - name: {{ pillar["customer_web_ui"]["build_dir"] }}/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% else %}
+ - name: {{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/customer_web_ui/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_customerui_dirs_{{ file[0] }}:
+ file.directory:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/customer_web_ui/{{ file[1]["path"] }}
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/customer_web_ui/{{ file[1]["path"] }}
+{% endif %}
+ - user: root
+ - group: root
+ - mode: "0755"
+ - makedirs: True
+ansible_customerui_files_{{ file[0] }}:
+ file.managed:
+{% if file[1]["is_template"] %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/templates/customer_web_ui/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+ - template: jinja
+{% else %}
+ - name: {{ pillar["ansible"]["build_dir"] }}/files/customer_web_ui/{{ file[1]["path"] }}/{{ file[1]["name"] }}
+{% endif %}
+ - source: salt://openbook/customer_web_ui/files/{{ file[1]["source"] }}
+ - user: root
+ - group: root
+ - mode: {{ file[1]["mode"] }}
+{% endif %}
+{% endfor %}