diff options
Diffstat (limited to 'salt')
19 files changed, 97 insertions, 43 deletions
diff --git a/salt/openbook/admin_api_server/files/Dockerfile b/salt/openbook/admin_api_server/files/Dockerfile index c72d861..f6d22ba 100644 --- a/salt/openbook/admin_api_server/files/Dockerfile +++ b/salt/openbook/admin_api_server/files/Dockerfile @@ -1,5 +1,5 @@ -FROM ubuntu:xenial -MAINTAINER Carlos Konstanski <carlos@talligent.com> +FROM {{ pillar["registry"]["url"] }}/openbook_baseimage:latest +MAINTAINER Carlos Konstanski <carlos.konstanski@verizonwireless.com> ADD docker-start.tar.xz / EXPOSE 8083 5701 5702 VOLUME {{ pillar["admin_api_server"]["dirs"]["etc_openbook_admin_api_server"]["name"] }} diff --git a/salt/openbook/admin_api_server/files/installdeps.sh b/salt/openbook/admin_api_server/files/installdeps.sh index fae7690..5a1398f 100644 --- a/salt/openbook/admin_api_server/files/installdeps.sh +++ b/salt/openbook/admin_api_server/files/installdeps.sh @@ -1,10 +1,5 @@ #!/bin/bash -export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade -apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" curl python openjdk-8-jre-headless - current_jar=($(curl -s \ -k \ -u '{{ pillar["jars"]["username"] }}:{{ pillar["jars"]["password"] }}' \ diff --git a/salt/openbook/admin_web_ui/files/Dockerfile b/salt/openbook/admin_web_ui/files/Dockerfile index 77f4a17..5bd87ad 100644 --- a/salt/openbook/admin_web_ui/files/Dockerfile +++ b/salt/openbook/admin_web_ui/files/Dockerfile @@ -1,5 +1,5 @@ -FROM ubuntu:xenial -MAINTAINER Carlos Konstanski <carlos@talligent.com> +FROM {{ pillar["registry"]["url"] }}/openbook_baseimage:latest +MAINTAINER Carlos Konstanski <carlos.konstanski@verizonwireless.com> ADD docker-start.tar.xz / EXPOSE 8082 5701 5702 VOLUME {{ pillar["admin_web_ui"]["dirs"]["etc_openbook_admin_web_ui"]["name"] }} diff --git a/salt/openbook/admin_web_ui/files/installdeps.sh b/salt/openbook/admin_web_ui/files/installdeps.sh index d52a202..8c7305c 100644 --- a/salt/openbook/admin_web_ui/files/installdeps.sh +++ b/salt/openbook/admin_web_ui/files/installdeps.sh @@ -1,10 +1,5 @@ #!/bin/bash -export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade -apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" curl python openjdk-8-jre-headless - current_jar=($(curl -s \ -k \ -u '{{ pillar["jars"]["username"] }}:{{ pillar["jars"]["password"] }}' \ diff --git a/salt/openbook/ansible/files/openbook.yaml b/salt/openbook/ansible/files/openbook.yaml index b6f4c21..15908c6 100644 --- a/salt/openbook/ansible/files/openbook.yaml +++ b/salt/openbook/ansible/files/openbook.yaml @@ -202,6 +202,8 @@ if [ "{% raw %}{{ openbook_install_customer_web_ui|string() }}{% endraw %}" == "True" ]; then docker pull "{% raw %}{{ openbook_docker_registry_url }}{% endraw %}/{{ pillar["customer_web_ui"]["image_name"] }}" fi + args: + executable: /bin/bash - name: "Start Openbook" hosts: "{% raw %}{{ groups['target']|sort }}{% endraw %}" diff --git a/salt/openbook/baseimage/files/Dockerfile b/salt/openbook/baseimage/files/Dockerfile new file mode 100644 index 0000000..a1cc8b9 --- /dev/null +++ b/salt/openbook/baseimage/files/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:xenial +MAINTAINER Carlos Konstanski <carlos.konstanski@verizonwireless.com> +ADD docker-start.tar.xz / +RUN /installdeps.sh diff --git a/salt/openbook/baseimage/files/build.sh b/salt/openbook/baseimage/files/build.sh new file mode 100644 index 0000000..a1c5316 --- /dev/null +++ b/salt/openbook/baseimage/files/build.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Do not call directly. Meant to be called from CI build script. + +pushd {{ pillar["baseimage"]["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["baseimage"]["container_name"] }} +docker container prune -f +docker rmi -f {{ pillar["baseimage"]["image_name"] }} + +echo "Building docker Ubuntu image" +docker build -t {{ pillar["baseimage"]["image_name"] }} . + +echo "Push docker image to the registry" +docker tag {{ pillar["baseimage"]["image_name"] }} {{ pillar["registry"]["url"] }}/{{ pillar["baseimage"]["image_name"] }} +docker push {{ pillar["registry"]["url"] }}/{{ pillar["baseimage"]["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/baseimage/files/installdeps.sh b/salt/openbook/baseimage/files/installdeps.sh new file mode 100644 index 0000000..1a1b1be --- /dev/null +++ b/salt/openbook/baseimage/files/installdeps.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +export DEBIAN_FRONTEND=noninteractive +apt-get update +apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade +apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" curl python openjdk-8-jre-headless +exit 0 diff --git a/salt/openbook/baseimage/init.sls b/salt/openbook/baseimage/init.sls new file mode 100644 index 0000000..2cdd293 --- /dev/null +++ b/salt/openbook/baseimage/init.sls @@ -0,0 +1,30 @@ +{% for dir in pillar["baseimage"]["dirs"].items() %} +baseimage_dirs_{{ dir[0] }}: + file.directory: +{% if dir[1]["relative_to_buildroot"] %} + - name: {{ pillar["baseimage"]["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["baseimage"]["files"].items() %} +baseimage_files_{{ file[0] }}: + file.managed: +{% if file[1]["relative_to_buildroot"] %} + - name: {{ pillar["baseimage"]["build_dir"] }}/{{ file[1]["path"] }}/{{ file[1]["name"] }} +{% else %} + - name: {{ file[1]["path"] }}/{{ file[1]["name"] }} +{% endif %} + - source: salt://openbook/baseimage/files/{{ file[1]["source"] }} +{% if file[1]["is_template"] %} + - template: jinja +{% endif %} + - user: root + - group: root + - mode: {{ file[1]["mode"] }} +{% endfor %} diff --git a/salt/openbook/ci/files/build.sh b/salt/openbook/ci/files/build.sh index 77f2a5e..99fadf0 100644 --- a/salt/openbook/ci/files/build.sh +++ b/salt/openbook/ci/files/build.sh @@ -18,7 +18,10 @@ pushd {{ pillar["ci"]["build_dir"] }} 2>/dev/null echo "Login to docker registry" docker login --username {{ pillar["registry"]["username"] }} --password {{ pillar["registry"]["password"] }} {{ pillar["registry"]["url"] }} -if [ "${artifact}" == "database" ]; then +if [ "${artifact}" == "baseimage" ]; then + delete_old_image "{{ pillar["baseimage"]["image_name"] }}" + {{ pillar["baseimage"]["build_dir"] }}/build.sh +elif [ "${artifact}" == "database" ]; then delete_old_image "{{ pillar["database"]["image_name"] }}" {{ pillar["database"]["build_dir"] }}/build.sh elif [ "${artifact}" == "admin-api-server" ]; then @@ -40,6 +43,7 @@ elif [ "${artifact}" == "workflow-server" ]; then delete_old_image "{{ pillar["workflow_server"]["image_name"] }}" {{ pillar["workflow_server"]["build_dir"] }}/build.sh else + delete_old_image "{{ pillar["baseimage"]["image_name"] }}" delete_old_image "{{ pillar["database"]["image_name"] }}" delete_old_image "{{ pillar["admin_api_server"]["image_name"] }}" delete_old_image "{{ pillar["customer_api_server"]["image_name"] }}" @@ -47,6 +51,7 @@ else delete_old_image "{{ pillar["customer_web_ui"]["image_name"] }}" delete_old_image "{{ pillar["job_scheduler_server"]["image_name"] }}" delete_old_image "{{ pillar["workflow_server"]["image_name"] }}" + {{ pillar["baseimage"]["build_dir"] }}/build.sh {{ pillar["database"]["build_dir"] }}/build.sh {{ pillar["admin_api_server"]["build_dir"] }}/build.sh {{ pillar["customer_api_server"]["build_dir"] }}/build.sh diff --git a/salt/openbook/customer_api_server/files/Dockerfile b/salt/openbook/customer_api_server/files/Dockerfile index fb4d46f..d80916f 100644 --- a/salt/openbook/customer_api_server/files/Dockerfile +++ b/salt/openbook/customer_api_server/files/Dockerfile @@ -1,5 +1,5 @@ -FROM ubuntu:xenial -MAINTAINER Carlos Konstanski <carlos@talligent.com> +FROM {{ pillar["registry"]["url"] }}/openbook_baseimage:latest +MAINTAINER Carlos Konstanski <carlos.konstanski@verizonwireless.com> ADD docker-start.tar.xz / EXPOSE 8081 5701 5702 VOLUME {{ pillar["customer_api_server"]["dirs"]["etc_openbook_customer_api_server"]["name"] }} diff --git a/salt/openbook/customer_api_server/files/installdeps.sh b/salt/openbook/customer_api_server/files/installdeps.sh index 3a4f2fa..8ced89e 100644 --- a/salt/openbook/customer_api_server/files/installdeps.sh +++ b/salt/openbook/customer_api_server/files/installdeps.sh @@ -1,10 +1,5 @@ #!/bin/bash -export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade -apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" curl python openjdk-8-jre-headless - current_jar=($(curl -s \ -k \ -u '{{ pillar["jars"]["username"] }}:{{ pillar["jars"]["password"] }}' \ diff --git a/salt/openbook/customer_web_ui/files/Dockerfile b/salt/openbook/customer_web_ui/files/Dockerfile index e4ad953..9a44a6c 100644 --- a/salt/openbook/customer_web_ui/files/Dockerfile +++ b/salt/openbook/customer_web_ui/files/Dockerfile @@ -1,5 +1,5 @@ -FROM ubuntu:xenial -MAINTAINER Carlos Konstanski <carlos@talligent.com> +FROM {{ pillar["registry"]["url"] }}/openbook_baseimage:latest +MAINTAINER Carlos Konstanski <carlos.konstanski@verizonwireless.com> ADD docker-start.tar.xz / EXPOSE 8080 5701 5702 VOLUME {{ pillar["customer_web_ui"]["dirs"]["etc_openbook_customer_web_ui"]["name"] }} diff --git a/salt/openbook/customer_web_ui/files/installdeps.sh b/salt/openbook/customer_web_ui/files/installdeps.sh index 9c96042..79027be 100644 --- a/salt/openbook/customer_web_ui/files/installdeps.sh +++ b/salt/openbook/customer_web_ui/files/installdeps.sh @@ -1,10 +1,5 @@ #!/bin/bash -export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade -apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" curl python openjdk-8-jre-headless - current_jar=($(curl -s \ -k \ -u '{{ pillar["jars"]["username"] }}:{{ pillar["jars"]["password"] }}' \ diff --git a/salt/openbook/job_scheduler_server/files/Dockerfile b/salt/openbook/job_scheduler_server/files/Dockerfile index 78a7f0c..6d7b63f 100644 --- a/salt/openbook/job_scheduler_server/files/Dockerfile +++ b/salt/openbook/job_scheduler_server/files/Dockerfile @@ -1,5 +1,5 @@ -FROM ubuntu:xenial -MAINTAINER Carlos Konstanski <carlos@talligent.com> +FROM {{ pillar["registry"]["url"] }}/openbook_baseimage:latest +MAINTAINER Carlos Konstanski <carlos.konstanski@verizonwireless.com> ADD docker-start.tar.xz / EXPOSE 5701 5702 VOLUME {{ pillar["job_scheduler_server"]["dirs"]["etc_openbook_job_scheduler_server"]["name"] }} diff --git a/salt/openbook/job_scheduler_server/files/installdeps.sh b/salt/openbook/job_scheduler_server/files/installdeps.sh index dfe4522..e9a7173 100644 --- a/salt/openbook/job_scheduler_server/files/installdeps.sh +++ b/salt/openbook/job_scheduler_server/files/installdeps.sh @@ -1,10 +1,5 @@ #!/bin/bash -export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade -apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" curl python openjdk-8-jre-headless - current_jar=($(curl -s \ -k \ -u '{{ pillar["jars"]["username"] }}:{{ pillar["jars"]["password"] }}' \ diff --git a/salt/openbook/workflow_server/files/Dockerfile b/salt/openbook/workflow_server/files/Dockerfile index ae18ced..6008269 100644 --- a/salt/openbook/workflow_server/files/Dockerfile +++ b/salt/openbook/workflow_server/files/Dockerfile @@ -1,5 +1,5 @@ -FROM ubuntu:xenial -MAINTAINER Carlos Konstanski <carlos@talligent.com> +FROM {{ pillar["registry"]["url"] }}/openbook_baseimage:latest +MAINTAINER Carlos Konstanski <carlos.konstanski@verizonwireless.com> ADD docker-start.tar.xz / EXPOSE 5701 5702 VOLUME {{ pillar["workflow_server"]["dirs"]["etc_openbook_workflow_server"]["name"] }} diff --git a/salt/openbook/workflow_server/files/installdeps.sh b/salt/openbook/workflow_server/files/installdeps.sh index a90c3c9..507c2d3 100644 --- a/salt/openbook/workflow_server/files/installdeps.sh +++ b/salt/openbook/workflow_server/files/installdeps.sh @@ -1,10 +1,5 @@ #!/bin/bash -export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade -apt-get -y install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" curl python openjdk-8-jre-headless - current_jar=($(curl -s \ -k \ -u '{{ pillar["jars"]["username"] }}:{{ pillar["jars"]["password"] }}' \ diff --git a/salt/top.sls b/salt/top.sls index 3f1b067..22ffb32 100644 --- a/salt/top.sls +++ b/salt/top.sls @@ -2,6 +2,7 @@ base: "*": - openbook.ci - openbook.ansible + - openbook.baseimage - openbook.database - openbook.admin_api_server - openbook.admin_web_ui |
