summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbootstrap/pillar_config.rb4
-rw-r--r--jjb/yaml/openbook-all-ob-pipeline.yaml10
-rw-r--r--jjb/yaml/openbook-baseimage.yaml20
-rw-r--r--pillar/openbook/baseimage.sls28
-rw-r--r--pillar/top.sls1
-rw-r--r--salt/openbook/admin_api_server/files/Dockerfile4
-rw-r--r--salt/openbook/admin_api_server/files/installdeps.sh5
-rw-r--r--salt/openbook/admin_web_ui/files/Dockerfile4
-rw-r--r--salt/openbook/admin_web_ui/files/installdeps.sh5
-rw-r--r--salt/openbook/ansible/files/openbook.yaml2
-rw-r--r--salt/openbook/baseimage/files/Dockerfile4
-rw-r--r--salt/openbook/baseimage/files/build.sh35
-rw-r--r--salt/openbook/baseimage/files/installdeps.sh7
-rw-r--r--salt/openbook/baseimage/init.sls30
-rw-r--r--salt/openbook/ci/files/build.sh7
-rw-r--r--salt/openbook/customer_api_server/files/Dockerfile4
-rw-r--r--salt/openbook/customer_api_server/files/installdeps.sh5
-rw-r--r--salt/openbook/customer_web_ui/files/Dockerfile4
-rw-r--r--salt/openbook/customer_web_ui/files/installdeps.sh5
-rw-r--r--salt/openbook/job_scheduler_server/files/Dockerfile4
-rw-r--r--salt/openbook/job_scheduler_server/files/installdeps.sh5
-rw-r--r--salt/openbook/workflow_server/files/Dockerfile4
-rw-r--r--salt/openbook/workflow_server/files/installdeps.sh5
-rw-r--r--salt/top.sls1
24 files changed, 160 insertions, 43 deletions
diff --git a/bootstrap/pillar_config.rb b/bootstrap/pillar_config.rb
index 6d9d3fb..2a7ccbf 100755
--- a/bootstrap/pillar_config.rb
+++ b/bootstrap/pillar_config.rb
@@ -42,6 +42,10 @@ def process_yaml(branch)
"workflow-server"
]
yml = YAML.load_file(env_yaml_path)
+ yml["baseimage"] = {}
+ yml["baseimage"]["image_name"] = "openbook_baseimage"
+ yml["baseimage"]["container_name"] = "baseimage"
+ yml["baseimage"]["build_dir"] = "/root/openbook_build/baseimage"
yml["database"] = {}
yml["database"]["image_name"] = "openbook_database"
yml["database"]["container_name"] = "database"
diff --git a/jjb/yaml/openbook-all-ob-pipeline.yaml b/jjb/yaml/openbook-all-ob-pipeline.yaml
index eb56bc1..f81f8ab 100644
--- a/jjb/yaml/openbook-all-ob-pipeline.yaml
+++ b/jjb/yaml/openbook-all-ob-pipeline.yaml
@@ -31,6 +31,16 @@
git(poll: false, branch: "{branch}", url: "git@github.com:Talligent/openbook-core.git")
}}
}}
+ stage("baseimage") {{
+ steps {{
+ build(job: "openbook-baseimage")
+ }}
+ }}
+ stage("database") {{
+ steps {{
+ build(job: "openbook-database")
+ }}
+ }}
stage("admin-api-server") {{
steps {{
build(job: "admin-api-server-{branch}-ob-pipeline")
diff --git a/jjb/yaml/openbook-baseimage.yaml b/jjb/yaml/openbook-baseimage.yaml
new file mode 100644
index 0000000..d42cd60
--- /dev/null
+++ b/jjb/yaml/openbook-baseimage.yaml
@@ -0,0 +1,20 @@
+---
+- job:
+ name: openbook-baseimage
+ project-type: freestyle
+ node: openbook_v4
+ properties:
+ - build-discarder:
+ days-to-keep: 0
+ num-to-keep: 1
+ artifact-days-to-keep: 0
+ triggers:
+ - github
+ scm:
+ - git:
+ url: git@github.vcp.vzwnet.com:konstca/openbook-v4-ci.git
+ branches:
+ - master
+ builders:
+ - shell: |
+ ./build-docker-containers.sh baseimage unstable
diff --git a/pillar/openbook/baseimage.sls b/pillar/openbook/baseimage.sls
new file mode 100644
index 0000000..e906950
--- /dev/null
+++ b/pillar/openbook/baseimage.sls
@@ -0,0 +1,28 @@
+baseimage:
+ dirs:
+ data:
+ name: data
+ mode: "0755"
+ relative_to_buildroot: True
+ files:
+ build_sh:
+ name: build.sh
+ path: .
+ source: build.sh
+ mode: "0755"
+ is_template: True
+ relative_to_buildroot: True
+ dockerfile:
+ name: Dockerfile
+ path: .
+ source: Dockerfile
+ mode: "0644"
+ is_template: True
+ relative_to_buildroot: True
+ installdeps:
+ name: installdeps.sh
+ path: data
+ source: installdeps.sh
+ mode: "0755"
+ is_template: True
+ relative_to_buildroot: True
diff --git a/pillar/top.sls b/pillar/top.sls
index 3f1b067..22ffb32 100644
--- a/pillar/top.sls
+++ b/pillar/top.sls
@@ -2,6 +2,7 @@ base:
"*":
- openbook.ci
- openbook.ansible
+ - openbook.baseimage
- openbook.database
- openbook.admin_api_server
- openbook.admin_web_ui
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