blob: c8c6cebc5e398d18bd2447ce4b9205316a2823ad [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
service_volt:
type: tosca.nodes.Service
requirements:
- vsg_tenant:
node: service_vsg
relationship: tosca.relationships.TenantOfService
properties:
view_url: /admin/cord/voltservice/$id$/
kind: 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
public_key: { get_artifact: [ SELF, pubkey, LOCAL_FILE] }
private_key_fn: /opt/xos/synchronizers/vcpe/vcpe_private_key
wan_container_gateway_ip: 10.168.0.1
wan_container_gateway_mac: 02:42:0a:a8:00:01
wan_container_netbits: 24
# node_label: label_vsg
artifacts:
pubkey: /opt/xos/synchronizers/vcpe/vcpe_public_key
service_vrouter:
type: tosca.nodes.VRouterService
properties:
view_url: /admin/vrouter/vrouterservice/$id$/
requirements:
- addresses_vsg:
node: addresses_vsg
relationship: tosca.relationships.ProvidesAddresses
- addresses_service1:
node: addresses_exampleservice-public
relationship: tosca.relationships.ProvidesAddresses
Private:
type: tosca.nodes.NetworkTemplate
management:
type: tosca.nodes.network.Network.XOS
properties:
no-create: true
no-delete: true
no-update: true
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
# 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
# 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