blob: 5b483983d4ddb2fa4fb92f92c746bff443a3d306 [file] [log] [blame]
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$/
# if unspecified, vbng observer will look for an ONOSApp Tenant and
# generate a URL from its IP address
# vbng_url: http://10.11.10.24:8181/onos/virtualbng/
service_ONOS:
type: tosca.nodes.ONOSService
requirements:
properties:
kind: onos
view_url: /admin/onos/onosservice/$id$/
public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
artifacts:
pubkey: /opt/xos/observers/onos/onos_key.pub
vBNG_ONOS_app:
type: tosca.nodes.ONOSvBNGApp
requirements:
- onos_tenant:
node: service_ONOS
relationship: tosca.relationships.TenantOfService
- vbng_service:
node: service_vbng
relationship: tosca.relationships.UsedByService
properties:
dependencies: org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd
config_addresses.json: >
{
"addresses" : [
{
"dpid" : "00:00:00:00:00:00:00:a1",
"port" : "1",
"ips" : [10.0.1.253/24"],
"mac" : "00:00:00:00:00:99"
},
{
"dpid" : "00:00:00:00:00:00:00:a5",
"port" : "2",
"ips" : ["10.254.0.1/24"],
"mac" : "00:00:00:00:00:98"
}
]
}
config_virtualbng.json: >
{
"localPublicIpPrefixes" : [
"10.254.0.128/25"
],
"nextHopIpAddress" : "10.254.0.1",
"publicFacingMac" : "00:00:00:00:00:66",
"xosIpAddress" : "10.11.10.1",
"xosRestPort" : "9999"
}
# Network templates
Private:
type: tosca.nodes.NetworkTemplate
Public network hack:
type: tosca.nodes.NetworkTemplate
properties:
visibility: private
translation: NAT
shared_network_name: tun0-net
# Networks required by the CORD setup
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
- connection:
node: mysite_volt
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
- connection:
node: mysite_vbng
relationship: tosca.relationships.ConnectsToSlice
subscriber_network:
type: tosca.nodes.network.Network
properties:
ip_version: 4
requirements:
- network_template:
node: Private
relationship: tosca.relationships.UsesNetworkTemplate
- owner:
node: mysite_volt
relationship: tosca.relationships.MemberOfSlice
- connection:
node: mysite_volt
relationship: tosca.relationships.ConnectsToSlice
- connection:
node: mysite_clients
relationship: tosca.relationships.ConnectsToSlice
public_network:
type: tosca.nodes.network.Network
properties:
requirements:
- network_template:
node: Public network hack
relationship: tosca.relationships.UsesNetworkTemplate
- owner:
node: mysite_vbng
relationship: tosca.relationships.MemberOfSlice
- connection:
node: mysite_vbng
relationship: tosca.relationships.ConnectsToSlice
mysite:
type: tosca.nodes.Site
# CORD Slices
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
mysite_onos:
description: ONOS Controller Slice
type: tosca.nodes.Slice
requirements:
- ONOS:
node: service_ONOS
relationship: tosca.relationships.MemberOfService
- site:
node: mysite
relationship: tosca.relationships.MemberOfSite
mysite_vbng:
description: slice running OVS controlled by vBNG
type: tosca.nodes.Slice
requirements:
- site:
node: mysite
relationship: tosca.relationships.MemberOfSite
mysite_volt:
description: OVS controlled by vOLT
type: tosca.nodes.Slice
requirements:
- site:
node: mysite
relationship: tosca.relationships.MemberOfSite
mysite_clients:
description: slice for clients at the subscriber
type: tosca.nodes.Slice
requirements:
- site:
node: mysite
relationship: tosca.relationships.MemberOfSite
# Virtual machines
onos_app_1:
type: tosca.nodes.Compute
capabilities:
# Host container properties
host:
properties:
num_cpus: 1
disk_size: 10 GB
mem_size: 4 MB
# Guest Operating System properties
os:
properties:
# host Operating System image properties
architecture: x86_64
type: linux
distribution: Ubuntu
version: 14.10
requirements:
- slice:
node: mysite_onos
relationship: tosca.relationships.MemberOfSlice
onos_app_2:
type: tosca.nodes.Compute
capabilities:
# Host container properties
host:
properties:
num_cpus: 1
disk_size: 10 GB
mem_size: 4 MB
# Guest Operating System properties
os:
properties:
# host Operating System image properties
architecture: x86_64
type: linux
distribution: Ubuntu
version: 14.10
requirements:
- slice:
node: mysite_onos
relationship: tosca.relationships.MemberOfSlice
# VM for running the OVS controlled by vBNG
ovs_vbng:
type: tosca.nodes.Compute
capabilities:
# Host container properties
host:
properties:
num_cpus: 1
disk_size: 10 GB
mem_size: 4 MB
# Guest Operating System properties
os:
properties:
# host Operating System image properties
architecture: x86_64
type: linux
distribution: ubuntu
version: 14.04
requirements:
- slice:
node: mysite_vbng
relationship: tosca.relationships.MemberOfSlice
# VM for running the OVS controlled by vOLT
ovs_volt:
type: tosca.nodes.Compute
capabilities:
# Host container properties
host:
properties:
num_cpus: 1
disk_size: 10 GB
mem_size: 4 MB
# Guest Operating System properties
os:
properties:
# host Operating System image properties
architecture: x86_64
type: linux
distribution: ubuntu
version: 14.04
requirements:
- slice:
node: mysite_volt
relationship: tosca.relationships.MemberOfSlice
# A subscriber client VM
client1:
type: tosca.nodes.Compute
capabilities:
# Host container properties
host:
properties:
num_cpus: 1
disk_size: 10 GB
mem_size: 4 MB
# Guest Operating System properties
os:
properties:
# host Operating System image properties
architecture: x86_64
type: linux
distribution: ubuntu
version: 14.04
requirements:
- slice:
node: mysite_clients
relationship: tosca.relationships.MemberOfSlice