[CORD-795]
Docker image building/tagging/labeling, Makefile based build

Change-Id: I0d70ab01353999c0e0585547582af9c62d247987
diff --git a/scenarios/opencloud/Vagrantfile b/scenarios/opencloud/Vagrantfile
new file mode 100644
index 0000000..91ad1bd
--- /dev/null
+++ b/scenarios/opencloud/Vagrantfile
@@ -0,0 +1,68 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+#
+# opencloud Vagrantfile
+
+require 'yaml'
+settings = YAML.load_file('genconfig/config.yml')
+
+Vagrant.configure(2) do |config|
+
+  config.vm.box = "ubuntu/trusty64"
+
+  config.vm.define "head1" do |h|
+    h.vm.hostname = "head1"
+    h.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: '*'
+    h.vm.provider :libvirt do |v|
+      v.memory = settings['head_vm_mem']
+      v.cpus = settings['head_vm_cpu']
+      v.machine_virtual_size = 100
+      v.management_network_name = settings['public_network_name'] # public network
+      v.management_network_address = settings['public_network_cidr']
+    end
+    h.vm.network "private_network", # management network, eth1
+      ip: "0.1.1.0", # not used, ignore
+      auto_config: false,
+      libvirt__network_name: settings['mgmt_network_name'],
+      libvirt__forward_mode: "none",
+      libvirt__dhcp_enabled: false
+  end
+
+  config.vm.define "compute1" do |c|
+    c.vm.hostname = "compute1"
+    c.vm.provider :libvirt do |v|
+      v.memory = settings['compute_vm_mem']
+      v.cpus = settings['compute_vm_cpu'] 
+      v.machine_virtual_size = 50
+      v.nested = true
+      v.management_network_name = settings['public_network_name'] # public network
+      v.management_network_address = settings['public_network_cidr']
+    end
+    c.vm.network "private_network", # management network, eth1
+      ip: "0.1.1.0",
+      auto_config: false,
+      libvirt__network_name: settings['mgmt_network_name'],
+      libvirt__forward_mode: "none",
+      libvirt__dhcp_enabled: false
+  end
+
+  config.vm.define "compute2" do |c|
+    c.vm.hostname = "compute2"
+    c.vm.provider :libvirt do |v|
+      v.memory = settings['compute_vm_mem']
+      v.cpus = settings['compute_vm_cpu'] 
+      v.machine_virtual_size = 50
+      v.nested = true
+      v.management_network_name = settings['public_network_name'] # public network
+      v.management_network_address = settings['public_network_cidr']
+    end
+    c.vm.network "private_network", # management network, eth1
+      ip: "0.1.1.0",
+      auto_config: false,
+      libvirt__network_name: settings['mgmt_network_name'],
+      libvirt__forward_mode: "none",
+      libvirt__dhcp_enabled: false
+  end
+
+end
+
diff --git a/scenarios/opencloud/config.yml b/scenarios/opencloud/config.yml
new file mode 100644
index 0000000..cfc9eb2
--- /dev/null
+++ b/scenarios/opencloud/config.yml
@@ -0,0 +1,95 @@
+---
+# opencloud Scenario
+# For a virtual install, physical does not use VMs
+
+# opencloud profile config
+frontend_only: False
+
+# create a cord_profile dir next to the cord checkout
+config_cord_dir: "{{ ( playbook_dir ~ '/../..' ) | realpath }}"
+config_cord_profile_dir: "{{ ( playbook_dir ~ '/../../../cord_profile' ) | realpath }}"
+
+build_cord_dir: /opt/cord
+
+buildnode: head1
+headnode: head1
+
+# make build config
+build_targets:
+ - onboard-openstack
+
+vagrant_up_prereqs:
+  - prereqs-check
+
+# have to copy cord and config to physical/virtual nodes
+cord_config_prereqs:
+  - copy-cord
+
+copy_config_prereqs:
+  - cord-config
+
+prep_buildnode_prereqs:
+  - copy-cord
+  - copy-config
+
+# have to run build prep before head prep, when build == head
+prep_headnode_prereqs:
+  - prep-buildnode
+
+# Vagrant VM configuration
+vagrant_vms:
+  - head1
+  - compute1
+
+head_vm_mem: 10240
+head_vm_cpu: 8
+
+compute_vm_mem: 16384
+compute_vm_cpu: 8
+
+mgmt_network_name: cordmgmt
+public_network_name: cordpub
+public_network_cidr: "10.230.100.0/24"
+
+# images for imagebuilder to build/pull (tagged elsewhere)
+docker_image_whitelist:
+  - "xosproject/xos-base"
+  - "xosproject/xos"
+  - "xosproject/xos-client"
+  - "xosproject/xos-corebuilder"
+  - "xosproject/xos-gui"
+  - "xosproject/xos-gui-extension-builder"
+  - "xosproject/xos-postgres"
+  - "xosproject/xos-synchronizer-base"
+  - "xosproject/xos-ws"
+  - "xosproject/chameleon"
+  - "xosproject/gui-extension-rcord"
+  - "xosproject/gui-extension-sample"
+  - "xosproject/gui-extension-vtr"
+  - "xosproject/onos-synchronizer"
+  - "xosproject/openstack-synchronizer"
+  - "xosproject/vrouter-synchronizer"
+  - "xosproject/vtn-synchronizer"
+  - "xosproject/exampleservice-synchronizer"
+  - "gliderlabs/consul-server"
+  - "gliderlabs/registrator"
+  - "nginx"
+  - "onosproject/onos"
+  - "redis"
+
+# Ansible Inventory
+inventory_groups:
+
+  config:
+    localhost:
+      ansible_connection: local
+
+  build:
+    head1:
+
+  head:
+    head1:
+
+  compute:
+    compute1:
+