CORD-1081 corebuilder playbooks

Change-Id: I1d9d03d57d096ae1ee439ca5c37d854abfa4f4cf
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..bf3d0dc
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,57 @@
+import org.yaml.snakeyaml.Yaml
+
+ext {
+
+    // Deployment target config file (yaml format); this can be overwritten from the command line
+    // using the -PdeployConfig=<file-path> syntax.
+    deployConfig = project.hasProperty('deployConfig') ? project.getProperty('deployConfig') : './config/default.yml'
+
+    println "Using deployment config: $deployConfig"
+    File configFile = new File(deployConfig)
+    def yaml = new Yaml()
+    config = yaml.load(configFile.newReader())
+
+    // Upstream registry to simplify filling out the comps table below
+    upstreamReg = project.hasProperty('upstreamReg') ? project.getProperty('upstreamReg') : 'docker.io'
+
+    // Target registry to be used to publish docker images needed for deployment
+    targetReg = project.hasProperty('targetReg')
+        ? project.getProperty('targetReg')
+        : config.docker && config.docker.registry
+            ? config.docker.registry
+            : config.headnode.ip
+                ? config.headnode.ip + ":5000"
+                : 'localhost:5000'
+
+    // The tag used to tag the docker images push to the target registry
+    targetTag = project.hasProperty('targetTag')
+        ? project.getProperty('targetTag')
+        : config.docker && config.docker.imageVersion
+            ? config.docker.imageVersion
+            : 'candidate'
+
+    profileName = config.common && config.common.cord_profile
+        ? config.common.cord_profile
+        : 'rcord'
+
+    inventoryFileName = 'inventory/' + profileName
+}
+
+task buildImages(type: Exec) {
+  executable = "ansible-playbook"
+  args = [ "-i", inventoryFileName,
+    "--extra-vars", "@../genconfig/config.yml",
+    "--extra-vars", "build_docker_tag="+targetTag,
+    "--extra-vars", "cord_dir=../..",
+    "build-platform-install-playbook.yml" ]
+}
+
+task publish(type: Exec) {
+  executable = "ansible-playbook"
+  args = [ "-i", "../genconfig/cord-inv",
+    "--extra-vars", "@../genconfig/config.yml",
+    "--extra-vars", "build_docker_tag="+targetTag,
+    "--extra-vars", "deploy_docker_tag="+targetTag,
+    "--extra-vars", "deploy_docker_registry="+targetReg,
+    "publish-platform-install-playbook.yml" ]
+}