summaryrefslogtreecommitdiff
path: root/salt/openbook/baseimage
diff options
context:
space:
mode:
authorCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-11-22 13:07:43 -0700
committerCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-11-22 13:07:43 -0700
commitd96f56a838671424580766beccbe63ad677e4ab8 (patch)
treedb6877f763b7aa72f12ec681578e9d53ee088b3b /salt/openbook/baseimage
parent1d12614280fe82454053e2bf381023dcb0c6612c (diff)
added docker baseimage
Issue: IS-34
Diffstat (limited to 'salt/openbook/baseimage')
-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
4 files changed, 76 insertions, 0 deletions
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 %}