diff options
Diffstat (limited to 'salt/openbook/admin_api_server')
| -rw-r--r-- | salt/openbook/admin_api_server/files/Dockerfile | 8 | ||||
| -rw-r--r-- | salt/openbook/admin_api_server/files/admin_api_server.json | 15 | ||||
| -rw-r--r-- | salt/openbook/admin_api_server/files/build.sh | 35 | ||||
| -rw-r--r-- | salt/openbook/admin_api_server/files/installdeps.sh | 11 | ||||
| -rw-r--r-- | salt/openbook/admin_api_server/files/run.sh | 4 | ||||
| -rw-r--r-- | salt/openbook/admin_api_server/files/start_app.sh | 3 | ||||
| -rw-r--r-- | salt/openbook/admin_api_server/init.sls | 55 |
7 files changed, 131 insertions, 0 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 %} |
