unify bootstrap
remove image downloading
add admin_openrc.sh to docker-compose-bootstrap.yml for cord-pod
remove Tosca generated in platform-install
move more Tosca to platform-install
reinclude needed fabric config file
clarify relationship between making nodes and vtn config
whitespace
sleep as required to hack around management network not coming up
pauses moved to Makefile
dedicated, separate openstack configuration file

Change-Id: I78f4ce0121480fa6ef1509f5ff416b203b7d6013
diff --git a/common/Makefile b/common/Makefile
index 9f410d4..48f5ef3 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -36,15 +36,6 @@
 	mkdir -p $(CONFIG_DIR)/onboarding-docker-compose
 	mkdir -p $(CONFIG_DIR)/images
 
-nodes.yaml:
-	export SETUPDIR=$(CONFIG_DIR); bash $(COMMON_DIR)/make-nodes-yaml.sh
-
-clean_nodes:
-	rm -f $(CONFIG_DIR)/nodes.yaml
-
-images.yaml:
-	export SETUPDIR=$(CONFIG_DIR); bash $(COMMON_DIR)/make-images-yaml.sh
-
 
 # download/clone xos and service repos
 GITOPTS ?= -c advice.detachedHead=false
@@ -154,12 +145,11 @@
 	sudo CONFIG_DIR=$(CONFIG_DIR) docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) up -d
 	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_BOOTSTRAP_PORT)
 	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) run xos_bootstrap_ui python /opt/xos/tosca/run.py none - < $(COMMON_DIR)/tosca/fixtures.yaml
-	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) run xos_bootstrap_ui python /opt/xos/tosca/run.py none - < $(COMMON_DIR)/tosca/mydeployment.yaml
+	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) run xos_bootstrap_ui python /opt/xos/tosca/run.py none - < $(CONFIG_DIR)/deployment.yaml
+	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_BOOTSTRAP_PORT)
 	$(RUN_TOSCA_BOOTSTRAP) $(CONFIG_DIR)/xos.yaml
 
-
 # container creation targets
-
 local_containers: prereqs xos_download update_certs xos_base_c xos_devel_c
 
 test_containers: local_containers xos_test_c
@@ -174,7 +164,7 @@
 
 xos_base_c:
 	@[ -z "$(HAS_BASE)" ] || echo "skipping base container build"
-	@[ -n "$(HAS_BASE)" ] || ( cd $(XOS_DIR)/containers/xos; make base )   
+	@[ -n "$(HAS_BASE)" ] || ( cd $(XOS_DIR)/containers/xos; make base )
 #	cd $(XOS_DIR)/containers/xos; make base
 
 xos_devel_c:
@@ -184,24 +174,6 @@
 	cd $(XOS_DIR)/containers/xos; make test
 
 
-# image downloads
-
-$(CONFIG_DIR)images/trusty-server-multi-nic.img: config_dirs
-	curl -fLsS http://www.vicci.org/opencloud/trusty-server-cloudimg-amd64-disk1.img -o $@
-	echo "c2d0ffc937aeb96016164881052a496658efeb98959dc68e73d9895c5d9920f7  $@" | sha256sum -c -
-
-$(CONFIG_DIR)images/vsg-1.1.img: config_dirs
-	curl -fLsS http://www.vicci.org/cord/vsg-1.1.img -o $@
-	echo "16b0beb6778aed0f5feecb05f8d5750e6c262f98e6011e99ddadf7d46a177b6f  $@" | sha256sum -c -
-
-$(CONFIG_DIR)images/ceilometer-trusty-server-multi-nic.img: | config_dirs
-	curl -fLsS http://www.vicci.org/cord/ceilometer-trusty-server-multi-nic.compressed.qcow2 -o $@
-	echo "afde3f0448483902693be4d52ae76bb683fd74b1c7728019094bf81b37d86105  $@" | sha256sum -c -
-
-$(CONFIG_DIR)images/ceilometer-service-trusty-server-multi-nic.img: | config_dirs
-	curl -fLsS http://www.vicci.org/cord/ceilometer-service-trusty-server-multi-nic.compressed.qcow2 -o $@
-	echo "9c346ff15727e9a98942835d6bd34b3d033f868234425f517e53d64b5a124a13  $@" | sha256sum -c -
-
 # utilties/convenience targets
 cleanup: stop rm $(CONFIG_DIR)/cleanup.sh
 	$(CONFIG_DIR)/cleanup.sh
diff --git a/common/make-images-yaml.sh b/common/make-images-yaml.sh
deleted file mode 100644
index 6321a9d..0000000
--- a/common/make-images-yaml.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-FN=$SETUPDIR/images.yaml
-
-rm -f $FN
-
-cat >> $FN <<EOF
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-imports:
-   - custom_types/xos.yaml
-
-description: autogenerated nodes file
-
-topology_template:
-  node_templates:
-    mysite:
-        type: tosca.nodes.Site
-
-EOF
-
-IMAGES=$( bash -c "source $SETUPDIR/admin-openrc.sh ; glance image-list" |grep -v ID|grep -v +|awk '{print $4}' )
-I=0
-for IMAGE in $IMAGES; do
-    echo $IMAGE
-    cat >> $FN <<EOF
-    $IMAGE:
-      type: tosca.nodes.Image
-      properties:
-         disk_format: QCOW2
-         container_format: BARE
-
-EOF
-done
-
-cat >> $FN <<EOF
-    MyDeployment:
-      type: tosca.nodes.Deployment
-      properties:
-          flavors: m1.large, m1.medium, m1.small
-      requirements:
-EOF
-
-for IMAGE in $IMAGES; do
-    cat >> $FN <<EOF
-          - image:
-              node: $IMAGE
-              relationship: tosca.relationships.SupportsImage
-EOF
-done
diff --git a/common/make-nodes-yaml.sh b/common/make-nodes-yaml.sh
deleted file mode 100644
index 65e16bb..0000000
--- a/common/make-nodes-yaml.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-FN=$SETUPDIR/nodes.yaml
-
-rm -f $FN
-
-cat >> $FN <<EOF
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-imports:
-   - custom_types/xos.yaml
-
-description: autogenerated nodes file
-
-topology_template:
-  node_templates:
-    MyDeployment:
-        type: tosca.nodes.Deployment
-    mysite:
-        type: tosca.nodes.Site
-EOF
-
-NODES=$( bash -c "source $SETUPDIR/admin-openrc.sh ; nova host-list" |grep compute|awk '{print $2}' )
-I=0
-for NODE in $NODES; do
-    echo $NODE
-    cat >> $FN <<EOF
-    $NODE:
-      type: tosca.nodes.Node
-      requirements:
-        - site:
-            node: mysite
-            relationship: tosca.relationships.MemberOfSite
-        - deployment:
-            node: MyDeployment
-            relationship: tosca.relationships.MemberOfDeployment
-EOF
-done
diff --git a/common/tosca/base.yaml b/common/tosca/base.yaml
deleted file mode 100644
index 847b1fb..0000000
--- a/common/tosca/base.yaml
+++ /dev/null
@@ -1,88 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-# Note:
-#   assumes the following have been created and filled with appropriate data:
-#       /root/setup/admin_openrc
-#       /root/setup/flat_net_name
-#       /root/setup/padmin_public_key
-
-description: >
-    * Adds OpenCloud Sites, Deployments, and Controllers.
-
-imports:
-   - custom_types/xos.yaml
-
-topology_template:
-  node_templates:
-    trusty-server-multi-nic:
-      type: tosca.nodes.Image
-      properties:
-         disk_format: QCOW2
-         container_format: BARE
-
-    MyDeployment:
-      type: tosca.nodes.Deployment
-      properties:
-          flavors: m1.large, m1.medium, m1.small
-      requirements:
-          - image:
-              node: trusty-server-multi-nic
-              relationship: tosca.relationships.SupportsImage
-
-    CloudLab:
-      type: tosca.nodes.Controller
-      requirements:
-          - deployment:
-              node: MyDeployment
-              relationship: tosca.relationships.ControllerDeployment
-      properties:
-          backend_type: OpenStack
-          version: Kilo
-          auth_url: { get_script_env: [ SELF, adminrc, OS_AUTH_URL, LOCAL_FILE] }
-          admin_user: { get_script_env: [ SELF, adminrc, OS_USERNAME, LOCAL_FILE] }
-          admin_password: { get_script_env: [ SELF, adminrc, OS_PASSWORD, LOCAL_FILE] }
-          admin_tenant: { get_script_env: [ SELF, adminrc, OS_TENANT_NAME, LOCAL_FILE] }
-          rabbit_user: { get_script_env: [ SELF, controller_settings, RABBIT_USER, LOCAL_FILE] }
-          rabbit_password: { get_script_env: [ SELF, controller_settings, RABBIT_PASS, LOCAL_FILE] }
-          rabbit_host: { get_script_env: [ SELF, controller_settings, CONTROLLER_FLAT_LAN_IP, LOCAL_FILE] }
-          domain: Default
-      artifacts:
-          adminrc: /root/setup/admin-openrc.sh
-          controller_settings: /root/setup/controller_settings
-
-    mysite:
-      type: tosca.nodes.Site
-      properties:
-          display_name: MySite
-          site_url: http://opencloud.us/
-      requirements:
-          - deployment:
-               node: MyDeployment
-               relationship: tosca.relationships.MemberOfDeployment
-          - controller:
-               node: CloudLab
-               relationship: tosca.relationships.UsesController
-
-    Public shared IPv4:
-      type: tosca.nodes.NetworkTemplate
-      properties:
-          visibility: private
-          translation: NAT
-          shared_network_name: { get_artifact: [ SELF, flat_net_name, LOCAL_FILE] }
-      artifacts:
-          flat_net_name: /root/setup/flat_net_name
-
-    padmin@vicci.org:
-      type: tosca.nodes.User
-      requirements:
-          - site:
-              node: mysite
-              relationship: tosca.relationships.MemberOfSite
-      properties:
-          public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE ] }
-          is_admin: true
-          is_active: true
-          firstname: XOS
-          lastname: admin
-      artifacts:
-          pubkey: /root/setup/padmin_public_key
diff --git a/common/tosca/fixtures.yaml b/common/tosca/fixtures.yaml
index 9ac1a93..00da082 100644
--- a/common/tosca/fixtures.yaml
+++ b/common/tosca/fixtures.yaml
@@ -11,7 +11,6 @@
     xos:
       type: tosca.nodes.XOS
 
-
 # -----------------------------------------------------------------------------
 # Network Parameter Types
 # -----------------------------------------------------------------------------
@@ -155,7 +154,3 @@
           translation: none
           shared_network_name: ext-net
 
-
-
-
-
diff --git a/common/tosca/mgmt-net.yaml b/common/tosca/mgmt-net.yaml
deleted file mode 100644
index b45f0d5..0000000
--- a/common/tosca/mgmt-net.yaml
+++ /dev/null
@@ -1,64 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-description: Set up management network for CORD POD
-imports:
-   - custom_types/xos.yaml
-
-topology_template:
-  node_templates:
-
-    management_template:
-      type: tosca.nodes.NetworkTemplate
-      properties:
-          visibility: private
-          translation: none
-          vtn_kind: MANAGEMENT_LOCAL
-
-    management:
-      type: tosca.nodes.network.Network
-      properties:
-          ip_version: 4
-          cidr: 172.27.0.0/24
-      requirements:
-          - network_template:
-              node: management_template
-              relationship: tosca.relationships.UsesNetworkTemplate
-          - owner:
-              node: mysite_management
-              relationship: tosca.relationships.MemberOfSlice
-
-    management_hosts_template:
-      type: tosca.nodes.NetworkTemplate
-      properties:
-          visibility: private
-          translation: none
-          vtn_kind: MANAGEMENT_HOST
-
-#    management_hosts:
-#      type: tosca.nodes.network.Network
-#      properties:
-#          ip_version: 4
-#          cidr: 10.1.0.0/24
-#          start_ip: 10.1.0.128
-#          end_ip: 10.1.0.254
-#      requirements:
-#          - network_template:
-#              node: management_hosts_template
-#              relationship: tosca.relationships.UsesNetworkTemplate
-#          - owner:
-#              node: mysite_management
-#              relationship: tosca.relationships.MemberOfSlice
-
-    mysite:
-      type: tosca.nodes.Site
-
-    mysite_management:
-      description: This slice exists solely to own the management network
-      type: tosca.nodes.Slice
-      properties:
-          network: noauto
-      requirements:
-          - site:
-              node: mysite
-              relationship: tosca.relationships.MemberOfSite
-
diff --git a/common/tosca/public-net.yaml b/common/tosca/public-net.yaml
deleted file mode 100644
index c241fc0..0000000
--- a/common/tosca/public-net.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-description: Set up public network for CORD POD
-imports:
-   - custom_types/xos.yaml
-
-topology_template:
-  node_templates:
-
-    service#vrouter:
-      type: tosca.nodes.VRouterService
-
-    public_template:
-      type: tosca.nodes.NetworkTemplate
-      properties:
-          visibility: private
-          translation: none
-          vtn_kind: PUBLIC
-
-    public:
-      type: tosca.nodes.network.Network
-      properties:
-          ip_version: 4
-      requirements:
-          - network_template:
-              node: public_template
-              relationship: tosca.relationships.UsesNetworkTemplate
-          - owner:
-              node: mysite_public
-              relationship: tosca.relationships.MemberOfSlice
-          - vrouter_tenant:
-              node: service#vrouter
-              relationship: tosca.relationships.TenantOfService
-
-    mysite:
-      type: tosca.nodes.Site
-
-    mysite_public:
-      description: This slice exists solely to own the public network
-      type: tosca.nodes.Slice
-      properties:
-          network: noauto
-      requirements:
-          - site:
-              node: mysite
-              relationship: tosca.relationships.MemberOfSite
diff --git a/common/tosca/setup.yaml b/common/tosca/setup.yaml
deleted file mode 100644
index 20b1b12..0000000
--- a/common/tosca/setup.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-description: >
-    * Adds OpenCloud Sites, Deployments, and Controllers.
-
-imports:
-   - custom_types/xos.yaml
-
-topology_template:
-  node_templates:
-
-    MyDeployment:
-      type: tosca.nodes.Deployment
-      properties:
-          flavors: m1.large, m1.medium, m1.small
-
-    MyOpenStack:
-      type: tosca.nodes.Controller
-      requirements:
-          - deployment:
-              node: MyDeployment
-              relationship: tosca.relationships.ControllerDeployment
-      properties:
-          backend_type: OpenStack
-          version: Kilo
-          auth_url: { get_script_env: [ SELF, adminrc, OS_AUTH_URL, LOCAL_FILE] }
-          admin_user: { get_script_env: [ SELF, adminrc, OS_USERNAME, LOCAL_FILE] }
-          admin_password: { get_script_env: [ SELF, adminrc, OS_PASSWORD, LOCAL_FILE] }
-          admin_tenant: { get_script_env: [ SELF, adminrc, OS_TENANT_NAME, LOCAL_FILE] }
-          domain: Default
-      artifacts:
-          adminrc: /root/setup/admin-openrc.sh
-
-    mysite:
-      type: tosca.nodes.Site
-      properties:
-          display_name: MySite
-          site_url: http://xosproject.org/
-      requirements:
-          - deployment:
-               node: MyDeployment
-               relationship: tosca.relationships.MemberOfDeployment
-          - controller:
-               node: MyOpenStack
-               relationship: tosca.relationships.UsesController
-
-    # This user already exists in XOS with this password
-    # It's an example of how to create new users
-    padmin@vicci.org:
-      type: tosca.nodes.User
-      requirements:
-          - site:
-              node: mysite
-              relationship: tosca.relationships.MemberOfSite
-      properties:
-          is_admin: true
-          is_active: true
-          firstname: XOS
-          lastname: admin
-          password: letmein
diff --git a/cord-pod-ansible/images/README.md b/cord-pod-ansible/images/README.md
index aca55a9..08fa360 100644
--- a/cord-pod-ansible/images/README.md
+++ b/cord-pod-ansible/images/README.md
@@ -1,5 +1,6 @@
 # VM images for XOS
 
-Any Cloud image files placed in this directory (with suffix .img) will be automatically
-imported by XOS and added to Glance (OpenStack's image repository).  For instance, the image
-`trusty-server-multi-nic.img` will be imported with name `trusty-server-multi-nic`.
+This directory contains images downloaded using platform-install.
+
+Put the name and checksum of the image in the `xos_images` array in
+platform-install/vars/*.yaml for your profile.
diff --git a/cord-pod/Makefile b/cord-pod/Makefile
index 4676d2a..f03e831 100644
--- a/cord-pod/Makefile
+++ b/cord-pod/Makefile
@@ -13,7 +13,7 @@
 # Include common functions
 include $(COMMON_DIR)/Makefile
 
-xos: prereqs config_dirs xos_download cord_services cord_libraries bootstrap onboarding podconfig
+xos: prereqs config_dirs xos_download cord_services cord_libraries bootstrap onboarding
 
 onboarding: synchronizers.yaml id_rsa id_rsa.pub
 	@echo "[ONBOARDING]"
@@ -47,18 +47,17 @@
 	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/vtr
 	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
 	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_UI_PORT)
+	sleep 120
 
-podconfig: nodes.yaml images.yaml
-	@echo "[PODCONFIG]"
-	$(RUN_TOSCA) $(COMMON_DIR)/tosca/setup.yaml
+nodes: nodes.yaml
+	@echo "[NODES]"
+	$(RUN_TOSCA) openstack.yaml
 	$(RUN_TOSCA) nodes.yaml
-	$(RUN_TOSCA) images.yaml
+	sleep 10
 
-vtn: vtn-external.yaml
-	$(RUN_TOSCA) vtn-external.yaml
-
-vtn-external.yaml:
-	export SETUPDIR=$(CONFIG_DIR); bash ./make-vtn-external-yaml.sh
+vtn: nodes vtn.yaml
+	@echo "[VTN]"
+	$(RUN_TOSCA) vtn.yaml
 
 delete_fabric_config:
 	http -a karaf:karaf DELETE http://onos-fabric:8181/onos/v1/network/configuration/
@@ -67,31 +66,26 @@
 	http -a karaf:karaf POST http://onos-fabric:8181/onos/v1/applications/org.onosproject.vrouter/active
 	http -a karaf:karaf POST http://onos-fabric:8181/onos/v1/applications/org.onosproject.segmentrouting/active
 
-fabric: fabric.yaml
+fabric:
+	@echo "[FABRIC]"
 	cp $(SERVICE_DIR)/fabric/config/network-cfg-quickstart.json .
 	$(RUN_TOSCA) fabric.yaml
+	sleep 20
 
-fabric.yaml:
-	export SETUPDIR=$(CONFIG_DIR); bash ./make-fabric-yaml.sh
-
-cord: $(CONFIG_DIR)/images/vsg-1.1.img
-	$(RUN_TOSCA) $(COMMON_DIR)/tosca/mgmt-net.yaml
+cord:
+	@echo "[CORD]"
+	$(RUN_TOSCA) management-net.yaml
 	$(RUN_TOSCA) cord-services.yaml
-	$(RUN_TOSCA) $(COMMON_DIR)/tosca/public-net.yaml
+	$(RUN_TOSCA) public-net.yaml
 	$(RUN_TOSCA) $(COMMON_DIR)/tosca/cord-volt-devices.yaml
 
 cord-subscriber:
+	@echo "[CORD-SUBSCRIBER]"
 	$(RUN_TOSCA) cord-test-subscriber.yaml
+	sleep 60
 
-update_nodes: nodes.yaml
-	$(RUN_TOSCA) nodes.yaml
-
-new-nodes: clean_nodes update_nodes vtn
-
-exampleservice: onboard-exampleservice
-	$(RUN_TOSCA) pod-exampleservice.yaml
-
-onboard-exampleservice: $(SERVICE_DIR)/exampleservice
+exampleservice: $(SERVICE_DIR)/exampleservice
+	@echo "[EXAMPLESERVICE]"
 	sudo cp id_rsa key_import/exampleservice_rsa
 	sudo cp id_rsa.pub key_import/exampleservice_rsa.pub
 	$(RUN_TOSCA_BOOTSTRAP) $(COMMON_DIR)/tosca/disable-onboarding.yaml
@@ -101,16 +95,11 @@
 	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/exampleservice
 	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
 	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_UI_PORT)
+	$(RUN_TOSCA) exampleservice.yaml
+	sleep 60
 
-cord-monitoringservice: ceilometer_custom_images onboard-monitoringservice
-	$(RUN_TOSCA) monitoringservice.yaml
-	$(RUN_TOSCA) monitoringtenant.yaml
-
-rebuild-monitoringservice:
-	bash $(COMMON_DIR)/rebuild.sh $(XOS_BOOTSTRAP_PORT) monitoring
-	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
-
-onboard-monitoringservice: ceilometer_custom_images $(SERVICE_DIR)/monitoring
+cord-monitoringservice: $(SERVICE_DIR)/monitoring
+	@echo "[CORD-MONITORINGSERVICE]"
 	sudo cp id_rsa key_import/monitoringservice_rsa
 	sudo cp id_rsa.pub key_import/monitoringservice_rsa.pub
 	$(RUN_TOSCA_BOOTSTRAP) $(SERVICE_DIR)/monitoring/xos/monitoring-onboard.yaml
@@ -118,8 +107,12 @@
 	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) services/monitoring
 	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
 	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_UI_PORT)
+	$(RUN_TOSCA) monitoringservice.yaml
+	$(RUN_TOSCA) monitoringtenant.yaml
 
-ceilometer_custom_images: $(CONFIG_DIR)images/ceilometer-trusty-server-multi-nic.img $(CONFIG_DIR)images/ceilometer-service-trusty-server-multi-nic.img
+rebuild-monitoringservice:
+	bash $(COMMON_DIR)/rebuild.sh $(XOS_BOOTSTRAP_PORT) monitoring
+	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
 
 virtualbng_json:
 	export SETUPDIR=$(CONFIG_DIR); bash ./make-virtualbng-json.sh
diff --git a/cord-pod/cord-services.yaml b/cord-pod/cord-services.yaml
deleted file mode 100644
index 324bd2a..0000000
--- a/cord-pod/cord-services.yaml
+++ /dev/null
@@ -1,186 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-description: Just enough Tosca to get the vSG slice running on the CORD POD
-
-imports:
-   - custom_types/xos.yaml
-
-topology_template:
-  node_templates:
-    # CORD Services
-    service#vtr:
-      type: tosca.nodes.Service
-      properties:
-          view_url: /admin/vtr/vtrservice/$id$/
-          kind: vTR
-          replaces: service_vtr
-
-    service#volt:
-      type: tosca.nodes.VOLTService
-      requirements:
-          - vsg_tenant:
-              node: service#vsg
-              relationship: tosca.relationships.TenantOfService
-      properties:
-          view_url: /admin/volt/voltservice/$id$/
-          kind: vOLT
-          replaces: service_volt
-          public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
-          private_key_fn: /opt/xos/services/volt/keys/volt_rsa
-      artifacts:
-          pubkey: /opt/xos/services/volt/keys/volt_rsa.pub
-
-    addresses_vsg:
-      type: tosca.nodes.AddressPool
-      properties:
-          addresses: 10.6.1.128/26
-          gateway_ip: 10.6.1.129
-          gateway_mac: 02:42:0a:06:01:01
-
-    addresses_public:
-      type: tosca.nodes.AddressPool
-      properties:
-          addresses: 10.6.1.192/26
-          gateway_ip: 10.6.1.193
-          gateway_mac: 02:42:0a:06:01:01
-
-    service#vsg:
-      type: tosca.nodes.VSGService
-      requirements:
-          - vrouter_tenant:
-              node: service#vrouter
-              relationship: tosca.relationships.TenantOfService
-      properties:
-          view_url: /admin/vsg/vsgservice/$id$/
-          backend_network_label: hpc_client
-          public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
-          private_key_fn: /opt/xos/services/vsg/keys/vsg_rsa
-#          node_label: label_vsg
-          replaces: service_vsg
-      artifacts:
-          pubkey: /opt/xos/services/vsg/keys/vsg_rsa.pub
-
-    service#vrouter:
-      type: tosca.nodes.VRouterService
-      properties:
-          view_url: /admin/vrouter/vrouterservice/$id$/
-          replaces: service_vrouter
-      requirements:
-          - addresses_vsg:
-              node: addresses_vsg
-              relationship: tosca.relationships.ProvidesAddresses
-          - addresses_public:
-              node: addresses_public
-              relationship: tosca.relationships.ProvidesAddresses
-
-
-    service#ONOS_CORD:
-      type: tosca.nodes.ONOSService
-      properties:
-          no-delete: true
-          no-create: true
-          no-update: true
-
-    service#ONOS_Fabric:
-      type: tosca.nodes.ONOSService
-      properties:
-          no-delete: true
-          no-create: true
-          no-update: true
-
-    # The vOLT ONOS app is not yet fully integrated
-    #vOLT_ONOS_app:
-    #  type: tosca.nodes.ONOSvOLTApp
-    #  requirements:
-    #      - onos_tenant:
-    #          node: service#ONOS_CORD
-    #          relationship: tosca.relationships.TenantOfService
-    #      - volt_service:
-    #          node: service#volt
-    #          relationship: tosca.relationships.UsedByService
-    #  properties:
-    #      install_dependencies: onos-ext-notifier-1.0-SNAPSHOT.oar, onos-ext-volt-event-publisher-1.0-SNAPSHOT.oar
-    #      dependencies: org.onosproject.openflow-base, org.onosproject.olt, org.ciena.onos.ext_notifier, org.ciena.onos.volt_event_publisher
-    #      autogenerate: volt-network-cfg
-
-    vRouter_ONOS_app:
-      type: tosca.nodes.ONOSvRouterApp
-      requirements:
-          - onos_tenant:
-              node: service#ONOS_Fabric
-              relationship: tosca.relationships.TenantOfService
-          - vrouter_service:
-              node: service#vrouter
-              relationship: tosca.relationships.UsedByService
-      properties:
-          dependencies: org.onosproject.vrouter
-          autogenerate: vrouter-network-cfg
-
-    template#vsg:
-      type: tosca.nodes.NetworkTemplate
-      properties:
-          visibility: private
-          translation: none
-          vtn_kind: VSG
-
-    management:
-      type: tosca.nodes.network.Network.XOS
-      properties:
-          no-create: true
-          no-delete: true
-          no-update: true
-
-    management_hosts:
-      type: tosca.nodes.network.Network.XOS
-      properties:
-          no-create: true
-          no-delete: true
-          no-update: true
-
-    image#vsg-1.1:
-      type: tosca.nodes.Image
-
-    mysite:
-      type: tosca.nodes.Site
-
-    label_vsg:
-      type: tosca.nodes.NodeLabel
-
-    # Networks required by the CORD setup
-    mysite_vsg-access:
-      type: tosca.nodes.network.Network
-      properties:
-          ip_version: 4
-      requirements:
-          - network_template:
-              node: template#vsg
-              relationship: tosca.relationships.UsesNetworkTemplate
-          - owner:
-              node: mysite_vsg
-              relationship: tosca.relationships.MemberOfSlice
-          - connection:
-              node: mysite_vsg
-              relationship: tosca.relationships.ConnectsToSlice
-
-    # CORD Slices
-    mysite_vsg:
-      description: vSG Controller Slice
-      type: tosca.nodes.Slice
-      properties:
-          network: noauto
-      requirements:
-          - vsg_service:
-              node: service#vsg
-              relationship: tosca.relationships.MemberOfService
-          - site:
-              node: mysite
-              relationship: tosca.relationships.MemberOfSite
-          - management:
-              node: management
-              relationship: tosca.relationships.ConnectsToNetwork
-#          - management_hosts:
-#              node: management_hosts
-#              relationship: tosca.relationships.ConnectsToNetwork
-          - image:
-              node: image#vsg-1.1
-              relationship: tosca.relationships.DefaultImage
diff --git a/cord-pod/cord-test-subscriber.yaml b/cord-pod/cord-test-subscriber.yaml
deleted file mode 100644
index 29a5d87..0000000
--- a/cord-pod/cord-test-subscriber.yaml
+++ /dev/null
@@ -1,117 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-description: Just enough Tosca to get the vSG slice running on the CORD POD
-
-imports:
-   - custom_types/xos.yaml
-
-topology_template:
-  node_templates:
-
-    service#volt:
-      type: tosca.nodes.VOLTService
-      properties:
-          no-delete: true
-          no-create: true
-          no-update: true
-
-    mysite:
-      type: tosca.nodes.Site
-      properties:
-          no-delete: true
-          no-create: true
-          no-update: true
-
-    # CORD Slices
-    mysite_vsg:
-      type: tosca.nodes.Slice
-      properties:
-          no-delete: true
-          no-create: true
-          no-update: true
-
-    # Let's add a user who can be administrator of the household
-    johndoe@myhouse.com:
-      type: tosca.nodes.User
-      properties:
-          password: letmein
-          firstname: john
-          lastname: doe
-      requirements:
-          - site:
-              node: mysite
-              relationship: tosca.relationships.MemberOfSite
-          - dependency:
-                node: mysite_vsg
-                relationship: tosca.relationships.DependsOn
-
-    # A subscriber
-    My House:
-       type: tosca.nodes.CORDSubscriber
-       properties:
-           service_specific_id: 123
-           firewall_enable: false
-           cdn_enable: false
-           url_filter_enable: false
-           url_filter_level: R
-       requirements:
-          - house_admin:
-              node: johndoe@myhouse.com
-              relationship: tosca.relationships.AdminPrivilege
-
-    Mom's PC:
-       type: tosca.nodes.CORDUser
-       properties:
-           mac: 01:02:03:04:05:06
-           level: PG_13
-       requirements:
-           - household:
-               node: My House
-               relationship: tosca.relationships.SubscriberDevice
-
-    Dad's PC:
-       type: tosca.nodes.CORDUser
-       properties:
-           mac: 90:E2:BA:82:F9:75
-           level: PG_13
-       requirements:
-           - household:
-               node: My House
-               relationship: tosca.relationships.SubscriberDevice
-
-    Jack's Laptop:
-       type: tosca.nodes.CORDUser
-       properties:
-           mac: 68:5B:35:9D:91:D5
-           level: PG_13
-       requirements:
-           - household:
-               node: My House
-               relationship: tosca.relationships.SubscriberDevice
-
-    Jill's Laptop:
-       type: tosca.nodes.CORDUser
-       properties:
-           mac: 34:36:3B:C9:B6:A6
-           level: PG_13
-       requirements:
-           - household:
-               node: My House
-               relationship: tosca.relationships.SubscriberDevice
-
-    My Volt:
-        type: tosca.nodes.VOLTTenant
-        properties:
-            service_specific_id: 123
-            s_tag: 222
-            c_tag: 111
-        requirements:
-            - provider_service:
-                node: service#volt
-                relationship: tosca.relationships.MemberOfService
-            - subscriber:
-                node: My House
-                relationship: tosca.relationships.BelongsToSubscriber
-            - dependency:
-                node: mysite_vsg
-                relationship: tosca.relationships.DependsOn
diff --git a/cord-pod/docker-compose-bootstrap.yml b/cord-pod/docker-compose-bootstrap.yml
index f0d87ca..6223fcb 100644
--- a/cord-pod/docker-compose-bootstrap.yml
+++ b/cord-pod/docker-compose-bootstrap.yml
@@ -5,6 +5,10 @@
 
 xos_redis:
     image: redis
+    log_driver: "json-file"
+    log_opt:
+            max-size: "1000k"
+            max-file: "5"
 
 xos_synchronizer_onboarding:
     image: xosproject/xos
@@ -23,28 +27,9 @@
         - ../../xos_libraries:/opt/xos_libraries
     log_driver: "json-file"
     log_opt:
-            max-size: "100k"
+            max-size: "1000k"
             max-file: "5"
 
-#xos_synchronizer_openstack:
-#    command: bash -c "sleep 120; python /opt/xos/synchronizers/openstack/xos-synchronizer.py"
-#    image: xosproject/xos-synchronizer-openstack
-#    labels:
-#        org.xosproject.kind: synchronizer
-#        org.xosproject.target: openstack
-#    links:
-#        - xos_db
-#    volumes:
-#        - ../common/xos_common_config:/opt/xos/xos_configuration/xos_common_config:ro
-#        - ./xos_cord_config:/opt/xos/xos_configuration/xos_cord_config:ro
-#        - .:/root/setup:ro
-#        - ./files/xos_vtn_config:/opt/xos/xos_configuration/xos_vtn_config:ro
-#        - ./images:/opt/xos/images:ro
-#    log_driver: "json-file"
-#    log_opt:
-#            max-size: "100k"
-#            max-file: "5"
-
 xos_bootstrap_ui:
     command: python /opt/xos/manage.py runserver 0.0.0.0:81 --insecure --makemigrations
     environment:
@@ -59,7 +44,8 @@
         - ./xos_cord_config:/opt/xos/xos_configuration/xos_cord_config:ro
         - ./files/xos_vtn_config:/opt/xos/xos_configuration/xos_vtn_config:ro
         - ../../xos_services:/opt/xos_services
+        - ./admin-openrc.sh:/root/setup/admin-openrc.sh
     log_driver: "json-file"
     log_opt:
-            max-size: "100k"
+            max-size: "1000k"
             max-file: "5"
diff --git a/cord-pod/images/README.md b/cord-pod/images/README.md
index aca55a9..08fa360 100644
--- a/cord-pod/images/README.md
+++ b/cord-pod/images/README.md
@@ -1,5 +1,6 @@
 # VM images for XOS
 
-Any Cloud image files placed in this directory (with suffix .img) will be automatically
-imported by XOS and added to Glance (OpenStack's image repository).  For instance, the image
-`trusty-server-multi-nic.img` will be imported with name `trusty-server-multi-nic`.
+This directory contains images downloaded using platform-install.
+
+Put the name and checksum of the image in the `xos_images` array in
+platform-install/vars/*.yaml for your profile.
diff --git a/cord-pod/make-fabric-yaml.sh b/cord-pod/make-fabric-yaml.sh
deleted file mode 100644
index b52ba82..0000000
--- a/cord-pod/make-fabric-yaml.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-FN=$SETUPDIR/fabric.yaml
-
-rm -f $FN
-
-cat >> $FN <<EOF
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-imports:
-   - custom_types/xos.yaml
-
-description: generate fabric configuration
-
-topology_template:
-  node_templates:
-
-    service#ONOS_Fabric:
-      type: tosca.nodes.ONOSService
-      requirements:
-      properties:
-          kind: onos
-          view_url: /admin/onos/onosservice/\$id$/
-          no_container: true
-          rest_hostname: onos-fabric
-          replaces: service_ONOS_Fabric
-          rest_onos/v1/network/configuration/: { get_artifact: [ SELF, fabric_network_cfg_json, LOCAL_FILE ] }
-      artifacts:
-          fabric_network_cfg_json: /root/setup/network-cfg-quickstart.json
-
-    service#fabric:
-      type: tosca.nodes.FabricService
-      properties:
-          view_url: /admin/fabric/fabricservice/\$id\$/
-          replaces: service_fabric
-
-
-EOF
-
-NODES=$( bash -c "source $SETUPDIR/admin-openrc.sh ; nova host-list" |grep compute|awk '{print $2}' )
-I=0
-for NODE in $NODES; do
-    echo $NODE
-    cat >> $FN <<EOF
-    $NODE:
-      type: tosca.nodes.Node
-
-    # Fabric location field for node $NODE
-    ${NODE}_location_tag:
-      type: tosca.nodes.Tag
-      properties:
-          name: location
-          value: of:0000000000000001/1
-      requirements:
-          - target:
-              node: $NODE
-              relationship: tosca.relationships.TagsObject
-          - service:
-              node: service#ONOS_Fabric
-              relationship: tosca.relationships.MemberOfService
-EOF
-done
-
-cat >> $FN <<EOF
-    Fabric_ONOS_app:
-      type: tosca.nodes.ONOSApp
-      requirements:
-          - onos_tenant:
-              node: service#ONOS_Fabric
-              relationship: tosca.relationships.TenantOfService
-          - fabric_service:
-              node: service#fabric
-              relationship: tosca.relationships.UsedByService
-      properties:
-          dependencies: org.onosproject.drivers, org.onosproject.openflow-base, org.onosproject.netcfghostprovider, org.onosproject.netcfglinksprovider, org.onosproject.segmentrouting, org.onosproject.vrouter, org.onosproject.hostprovider
-EOF
diff --git a/cord-pod/make-vtn-external-yaml.sh b/cord-pod/make-vtn-external-yaml.sh
deleted file mode 100644
index 7d0d23b..0000000
--- a/cord-pod/make-vtn-external-yaml.sh
+++ /dev/null
@@ -1,137 +0,0 @@
-FN=$SETUPDIR/vtn-external.yaml
-
-rm -f $FN
-
-cat >> $FN <<EOF
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-imports:
-   - custom_types/xos.yaml
-
-description: autogenerated node tags file for VTN configuration
-
-topology_template:
-  node_templates:
-
-    service#ONOS_CORD:
-      type: tosca.nodes.ONOSService
-      requirements:
-      properties:
-          kind: onos
-          view_url: /admin/onos/onosservice/\$id$/
-          no_container: true
-          rest_hostname: onos-cord
-          replaces: service_ONOS_CORD
-
-    service#vtn:
-      type: tosca.nodes.VTNService
-      properties:
-          view_url: /admin/vtn/vtnservice/\$id$/
-          privateGatewayMac: 00:00:00:00:00:01
-          localManagementIp: 172.27.0.1/24
-          ovsdbPort: 6641
-          sshUser: root
-          sshKeyFile: /root/node_key
-          sshPort: 22
-          xosEndpoint: http://xos:8888/
-          xosUser: padmin@vicci.org
-          xosPassword: letmein
-          replaces: service_vtn
-          vtnAPIVersion: 2
-
-EOF
-
-NODES=$( bash -c "source $SETUPDIR/admin-openrc.sh ; nova host-list" |grep compute|awk '{print $2}' )
-I=0
-BRIDGE_IDX=1
-for NODE in $NODES; do
-    echo "[INFO] processing $NODE"
-    BRIDGE_ID=$(printf "of:%016d" $BRIDGE_IDX )
-    BRIDGE_IDX=$(expr $BRIDGE_IDX + 1)
-    # Try fabric interface
-    FIP=$(ssh -i node_key -o StrictHostKeyChecking=no ubuntu@$NODE ip -4 addr show fabric 2> /dev/null | grep inet | awk '{print $2}')
-    if [ -z "$FIP" ]
-    then
-	# IP address has already moved to br-int, skip it
-	echo "[INFO] $NODE: No IP address on 'fabric' interface, skipping..."
-	continue
-    fi
-
-    cat >> $FN <<EOF
-    $NODE:
-      type: tosca.nodes.Node
-
-    # VTN bridgeId field for node $NODE
-    ${NODE}_bridgeId_tag:
-      type: tosca.nodes.Tag
-      properties:
-          name: bridgeId
-          value: $BRIDGE_ID
-      requirements:
-          - target:
-              node: $NODE
-              relationship: tosca.relationships.TagsObject
-          - service:
-              node: service#ONOS_CORD
-              relationship: tosca.relationships.MemberOfService
-
-    # VTN dataPlaneIntf field for node $NODE
-    ${NODE}_dataPlaneIntf_tag:
-      type: tosca.nodes.Tag
-      properties:
-          name: dataPlaneIntf
-          value: fabric
-      requirements:
-          - target:
-              node: $NODE
-              relationship: tosca.relationships.TagsObject
-          - service:
-              node: service#ONOS_CORD
-              relationship: tosca.relationships.MemberOfService
-
-    # VTN dataPlaneIp field for node $NODE
-    ${NODE}_dataPlaneIp_tag:
-      type: tosca.nodes.Tag
-      properties:
-          name: dataPlaneIp
-          value: $FIP
-      requirements:
-          - target:
-              node: $NODE
-              relationship: tosca.relationships.TagsObject
-          - service:
-              node: service#ONOS_CORD
-              relationship: tosca.relationships.MemberOfService
-
-    # VTN dataPlaneIntf field for node $NODE
-#    ${NODE}_hostManagementIface_tag:
-#      type: tosca.nodes.Tag
-#      properties:
-#          name: hostManagementIface
-#          value: veth3
-#      requirements:
-#          - target:
-#              node: $NODE
-#              relationship: tosca.relationships.TagsObject
-#          - service:
-#              node: service#ONOS_CORD
-#              relationship: tosca.relationships.MemberOfService
-
-EOF
-done
-
-cat >> $FN <<EOF
-    VTN_ONOS_app:
-      type: tosca.nodes.ONOSVTNApp
-      requirements:
-          - onos_tenant:
-              node: service#ONOS_CORD
-              relationship: tosca.relationships.TenantOfService
-          - vtn_service:
-              node: service#vtn
-              relationship: tosca.relationships.UsedByService
-      properties:
-          install_dependencies: http://mavenrepo:8080/repository/org/opencord/cord-config/1.1-SNAPSHOT/cord-config-1.1-SNAPSHOT.oar,http://mavenrepo:8080/repository/org/opencord/vtn/1.1-SNAPSHOT/vtn-1.1-SNAPSHOT.oar
-          dependencies: org.onosproject.drivers, org.onosproject.drivers.ovsdb, org.onosproject.openflow-base, org.onosproject.ovsdb-base, org.onosproject.dhcp
-          autogenerate: vtn-network-cfg
-EOF
diff --git a/cord-pod/pod-exampleservice.yaml b/cord-pod/pod-exampleservice.yaml
deleted file mode 100644
index 4102127..0000000
--- a/cord-pod/pod-exampleservice.yaml
+++ /dev/null
@@ -1,95 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-description: Setup the ExampleService on the pod
-
-imports:
-   - custom_types/xos.yaml
-   - custom_types/exampleservice.yaml
-
-topology_template:
-  node_templates:
-
-    m1.small:
-      type: tosca.nodes.Flavor
-
-    Private:
-      type: tosca.nodes.NetworkTemplate
-
-    management:
-      type: tosca.nodes.network.Network.XOS
-      properties:
-          no-create: true
-          no-delete: true
-          no-update: true
-
-    public:
-      type: tosca.nodes.network.Network.XOS
-      properties:
-          no-create: true
-          no-delete: true
-          no-update: true
-
-    service#vrouter:
-      type: tosca.nodes.Service
-      properties:
-          no-create: true
-          no-delete: true
-          no-update: true
-
-    mysite:
-      type: tosca.nodes.Site
-
-    trusty-server-multi-nic:
-      type: tosca.nodes.Image
-
-    mysite_exampleservice:
-      description: This slice holds the ExampleService
-      type: tosca.nodes.Slice
-      properties:
-          network: noauto
-      requirements:
-          - site:
-              node: mysite
-              relationship: tosca.relationships.MemberOfSite
-          - management:
-              node: management
-              relationship: tosca.relationships.ConnectsToNetwork
-          - public:
-              node: public
-              relationship: tosca.relationships.ConnectsToNetwork
-          - exmapleserver:
-              node: service#exampleservice
-              relationship: tosca.relationships.MemberOfService
-          - image:
-              node: trusty-server-multi-nic
-              relationship: tosca.relationships.DefaultImage
-          - default_flavor:
-              node: m1.small
-              relationship: tosca.relationships.DefaultFlavor
-
-    service#exampleservice:
-      type: tosca.nodes.ExampleService
-      requirements:
-          - management:
-              node: management
-              relationship: tosca.relationships.UsesNetwork
-      properties:
-          view_url: /admin/exampleservice/exampleservice/$id$/
-          kind: exampleservice
-          public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
-          private_key_fn: /opt/xos/services/exampleservice/keys/exampleservice_rsa
-          service_message: hello
-      artifacts:
-          pubkey: /opt/xos/services/exampleservice/keys/exampleservice_rsa.pub
-
-    tenant#exampletenant1:
-        type: tosca.nodes.ExampleTenant
-        properties:
-            tenant_message: world
-        requirements:
-          - tenant:
-              node: service#exampleservice
-              relationship: tosca.relationships.TenantOfService
-          - dependency:
-              node: mysite_exampleservice
-              relationship: tosca.relationships.DependsOn
diff --git a/cord-pod/synchronizers.yaml b/cord-pod/synchronizers.yaml
index 7eb9ab0..cfea31d 100644
--- a/cord-pod/synchronizers.yaml
+++ b/cord-pod/synchronizers.yaml
@@ -7,16 +7,19 @@
 
 topology_template:
   node_templates:
+
     servicecontroller#vsg:
       type: tosca.nodes.ServiceController
       properties:
         no-create: true
         synchronizer_config: /root/setup/files/vcpe_synchronizer_config
+
     servicecontroller#vtr:
       type: tosca.nodes.ServiceController
       properties:
         no-create: true
         synchronizer_config: /root/setup/files/vtr_synchronizer_config
+
     servicecontroller#openstack:
       type: tosca.nodes.ServiceController
       properties:
diff --git a/common/tosca/mydeployment.yaml b/frontend/deployment.yaml
similarity index 100%
rename from common/tosca/mydeployment.yaml
rename to frontend/deployment.yaml
diff --git a/opencloud/Makefile b/opencloud/Makefile
index 98d5f0e..4b2e571 100644
--- a/opencloud/Makefile
+++ b/opencloud/Makefile
@@ -11,7 +11,7 @@
 # Include common functions
 include $(COMMON_DIR)/Makefile
 
-xos: prereqs config_dirs xos_download opencloud_services oc_bootstrap onboarding
+xos: prereqs config_dirs xos_download opencloud_services bootstrap onboarding
 
 opencloud_services: $(SERVICE_DIR) \
 	$(SERVICE_DIR)/onos-service \
@@ -19,19 +19,6 @@
 	$(SERVICE_DIR)/vrouter \
 	$(SERVICE_DIR)/vtn
 
-opencloud_bootstrap: deployment.yaml
-	@echo "[OC BOOTSTRAP]"
-	@echo "XOS Image Build Date: `sudo docker inspect -f '{{ .Created }}' xosproject/xos`"
-	@echo "XOS Image Commit Hash: `sudo docker inspect -f '{{ .Config.Labels.XOS_GIT_COMMIT_HASH }}' xosproject/xos`"
-	@echo "XOS Image Commit Date: `sudo docker inspect -f '{{ .Config.Labels.XOS_GIT_COMMIT_DATE }}' xosproject/xos`"
-	sudo rm -f $(DOCKER_COMPOSE_YML)
-	sudo CONFIG_DIR=$(CONFIG_DIR) docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) up -d
-	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_BOOTSTRAP_PORT)
-	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) run xos_bootstrap_ui python /opt/xos/tosca/run.py none - < $(COMMON_DIR)/tosca/fixtures.yaml
-	sudo docker-compose -p $(BOOTSTRAP_PROJECT) -f $(BOOTSTRAP_YML) run xos_bootstrap_ui python /opt/xos/tosca/run.py none - < deployment.yaml
-	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_BOOTSTRAP_PORT)
-	$(RUN_TOSCA_BOOTSTRAP) $(CONFIG_DIR)/xos.yaml
-
 onboarding: synchronizers.yaml id_rsa id_rsa.pub
 	@echo "[ONBOARDING]"
 	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
@@ -50,9 +37,10 @@
 	bash $(COMMON_DIR)/wait_for_onboarding_ready.sh $(XOS_BOOTSTRAP_PORT) xos
 	bash $(COMMON_DIR)/wait_for_xos_port.sh $(XOS_UI_PORT)
 
-opencloud: opencloud.yaml
+opencloud: nodes.yaml management-net.yaml
 	@echo "[OPENCLOUD]"
-	$(RUN_TOSCA) opencloud.yaml
+	$(RUN_TOSCA) nodes.yaml
+	$(RUN_TOSCA) management-net.yaml
 
 vtn: vtn.yaml
 	@echo "[VTN]"
diff --git a/opencloud/docker-compose-bootstrap.yml b/opencloud/docker-compose-bootstrap.yml
index 461239a..d7b848d 100644
--- a/opencloud/docker-compose-bootstrap.yml
+++ b/opencloud/docker-compose-bootstrap.yml
@@ -7,7 +7,7 @@
     image: redis
     log_driver: "json-file"
     log_opt:
-            max-size: "100k"
+            max-size: "1000k"
             max-file: "5"
 
 xos_synchronizer_onboarding:
@@ -24,9 +24,10 @@
         - ./key_import:/opt/xos/key_import:ro
         - ./onboarding-docker-compose:/opt/xos/synchronizers/onboarding/docker-compose
         - ../../xos_services:/opt/xos_services
+        - ../../xos_libraries:/opt/xos_libraries
     log_driver: "json-file"
     log_opt:
-            max-size: "100k"
+            max-size: "1000k"
             max-file: "5"
 
 xos_bootstrap_ui:
@@ -45,5 +46,5 @@
         - ./admin-openrc.sh:/root/setup/admin-openrc.sh
     log_driver: "json-file"
     log_opt:
-            max-size: "100k"
+            max-size: "1000k"
             max-file: "5"
diff --git a/opencloud/images/README.md b/opencloud/images/README.md
index aca55a9..08fa360 100644
--- a/opencloud/images/README.md
+++ b/opencloud/images/README.md
@@ -1,5 +1,6 @@
 # VM images for XOS
 
-Any Cloud image files placed in this directory (with suffix .img) will be automatically
-imported by XOS and added to Glance (OpenStack's image repository).  For instance, the image
-`trusty-server-multi-nic.img` will be imported with name `trusty-server-multi-nic`.
+This directory contains images downloaded using platform-install.
+
+Put the name and checksum of the image in the `xos_images` array in
+platform-install/vars/*.yaml for your profile.
diff --git a/common/tosca/mydeployment.yaml b/test-standalone/deployment.yaml
similarity index 100%
copy from common/tosca/mydeployment.yaml
copy to test-standalone/deployment.yaml