Merge branch 'master' of github.com:open-cloud/xos
diff --git a/cloudlab-init.sh b/cloudlab-init.sh
index 9810d16..446852f 100755
--- a/cloudlab-init.sh
+++ b/cloudlab-init.sh
@@ -7,6 +7,13 @@
XOS="http://ctl:9999/"
AUTH="padmin@vicci.org:letmein"
+# Create public key if none present
+cat /dev/zero | ssh-keygen -q -N ""
+PUBKEY=$( cat ~/.ssh/id_rsa.pub )
+
+# Make sure the public key is available inside the container
+cp ~/.ssh/id_rsa.pub xos/observers/vcpe/vcpe_public_key
+
# Install Docker
wget -qO- https://get.docker.com/ | sh
sudo usermod -aG docker $(whoami)
@@ -25,10 +32,6 @@
sleep 1
done
-# Create public key if none present
-cat /dev/zero | ssh-keygen -q -N ""
-PUBKEY=$( cat ~/.ssh/id_rsa.pub )
-
# Copy public key
# BUG: Shouldn't have to set the 'enacted' field...
http --auth $AUTH PATCH $XOS/xos/users/1/ public_key="$PUBKEY" enacted=$( date "+%Y-%m-%dT%T")
diff --git a/xos/tosca/samples/cord-cloudlab.yaml b/xos/tosca/samples/cord-cloudlab.yaml
new file mode 100644
index 0000000..20e8057
--- /dev/null
+++ b/xos/tosca/samples/cord-cloudlab.yaml
@@ -0,0 +1,101 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: Setup CORD-related services -- vOLT, vCPE, vBNG.
+
+imports:
+ - custom_types/xos.yaml
+
+topology_template:
+ node_templates:
+ # CORD Services
+ service_volt:
+ type: tosca.nodes.Service
+ requirements:
+ - vcpe_tenant:
+ node: service_vcpe
+ relationship: tosca.relationships.TenantOfService
+ properties:
+ view_url: /admin/cord/voltservice/$id$/
+ kind: vOLT
+
+ service_vcpe:
+ type: tosca.nodes.VCPEService
+ requirements:
+ - vbng_tenant:
+ node: service_vbng
+ relationship: tosca.relationships.TenantOfService
+ properties:
+ view_url: /admin/cord/vcpeservice/$id$/
+ backend_network_label: hpc_client
+ public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
+ artifacts:
+ pubkey: /opt/xos/observers/vcpe/vcpe_public_key
+
+ service_vbng:
+ type: tosca.nodes.VBNGService
+ properties:
+ view_url: /admin/cord/vbngservice/$id$/
+ vbng_url: http://10.0.3.136:8181/onos/virtualbng/
+
+ mysite:
+ type: tosca.nodes.Site
+
+ Private:
+ type: tosca.nodes.NetworkTemplate
+
+ # networks required by vCPE
+ lan_network:
+ type: tosca.nodes.network.Network
+ properties:
+ ip_version: 4
+ requirements:
+ - network_template:
+ node: Private
+ relationship: tosca.relationships.UsesNetworkTemplate
+ - owner:
+ node: mysite_vcpe
+ relationship: tosca.relationships.MemberOfSlice
+ - connection:
+ node: mysite_vcpe
+ relationship: tosca.relationships.ConnectsToSlice
+
+ wan_network:
+ type: tosca.nodes.network.Network
+ properties:
+ ip_version: 4
+ requirements:
+ - network_template:
+ node: Private
+ relationship: tosca.relationships.UsesNetworkTemplate
+ - owner:
+ node: mysite_vcpe
+ relationship: tosca.relationships.MemberOfSlice
+ - connection:
+ node: mysite_vcpe
+ relationship: tosca.relationships.ConnectsToSlice
+
+ hpc_client_network:
+ type: tosca.nodes.network.Network
+ properties:
+ ip_version: 4
+ requirements:
+ - network_template:
+ node: Private
+ relationship: tosca.relationships.UsesNetworkTemplate
+ - owner:
+ node: mysite_vcpe
+ relationship: tosca.relationships.MemberOfSlice
+ - connection:
+ node: mysite_vcpe
+ relationship: tosca.relationships.ConnectsToSlice
+
+ mysite_vcpe:
+ description: vCPE Controller Slice
+ type: tosca.nodes.Slice
+ requirements:
+ - vcpe_service:
+ node: service_vcpe
+ relationship: tosca.relationships.MemberOfService
+ - site:
+ node: mysite
+ relationship: tosca.relationships.MemberOfSite