blob: 40e0127a0c3ace29f01df294c8e014487f112273 [file] [log] [blame]
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/cord/voltservice/$id$/
kind: vOLT
replaces: service_volt
addresses_vsg:
type: tosca.nodes.AddressPool
properties:
addresses: 10.168.0.0/24
gateway_ip: 10.168.0.1
gateway_mac: 02:42:0a:a8:00:01
addresses_exampleservice-public:
type: tosca.nodes.AddressPool
properties:
addresses: 10.168.1.0/24
gateway_ip: 10.168.1.1
gateway_mac: 02:42:0a:a8:00:01
service#vsg:
type: tosca.nodes.VSGService
requirements:
- vrouter_tenant:
node: service#vrouter
relationship: tosca.relationships.TenantOfService
properties:
view_url: /admin/cord/vsgservice/$id$/
# backend_network_label: hpc_client
private_key_fn: /opt/xos/synchronizers/vcpe/vcpe_private_key
# node_label: label_vsg
replaces: service_vsg
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_service1:
node: addresses_exampleservice-public
relationship: tosca.relationships.ProvidesAddresses
# service#fabric:
# type: tosca.nodes.FabricService
# properties:
# view_url: /admin/fabric/fabricservice/$id$/
# replaces: service_fabric
# 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
# service#ONOS_CORD:
# type: tosca.nodes.ONOSService
# properties:
# no-delete: true
# no-create: false
# no-update: true
# # 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
# Private:
# type: tosca.nodes.NetworkTemplate
# management:
# type: tosca.nodes.network.Network.XOS
# properties:
# no-create: true
# no-delete: true
# no-update: true
# image#vsg-1.0:
# 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: Private
# 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
# - image:
# node: image#vsg-1.0
# relationship: tosca.relationships.DefaultImage
# # 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