
{#
Copyright 2017-present Open Networking Foundation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
#}


tosca_definitions_version: tosca_simple_yaml_1_0

description: created by platform-install, need to add M-CORD services later

imports:
   - custom_types/xos.yaml
   - custom_types/slice.yaml
   - custom_types/site.yaml
   - custom_types/image.yaml
   - custom_types/flavor.yaml
   - custom_types/network.yaml
   - custom_types/onosservice.yaml
   - custom_types/networkslice.yaml
   - custom_types/venbservice.yaml
   - custom_types/venbserviceinstance.yaml

topology_template:
  node_templates:

# site, image, fully created in deployment.yaml
    {{ site_name }}:
      type: tosca.nodes.Site
      properties:
        must-exist: true
        name: {{ site_name }}

    m1.small:
      type: tosca.nodes.Flavor
      properties:
        name: m1.small
        must-exist: true
    m1.large:
      type: tosca.nodes.Flavor
      properties:
        name: m1.large
        must-exist: true
    m1.medium:
      type: tosca.nodes.Flavor
      properties:
        name: m1.medium
        must-exist: true
    m1.xlarge:
      type: tosca.nodes.Flavor
      properties:
        name: m1.xlarge
        must-exist: true

    trusty-server-multi-nic:
      type: tosca.nodes.Image
      properties:
        name: trusty-server-multi-nic

# management networks, fully created in management-net.yaml
    management:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: management

{% if use_management_hosts %}
    management_hosts:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: management_hosts
{% endif %}

# s1u_network is for connectivity between VMs, fully created in s1u-net.yaml
    s1u_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: s1u_network
# s11_network is for connectivity between VMs, fully created in s11-net.yaml
    s11_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: s11_network
# nbi_network is for connectivity between VMs, fully created in nbi-net.yaml
    nbi_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: nbi_network
# sbi_network is for connectivity between VMs, fully created in sbi-net.yaml
    sbi_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: sbi_network
# sgi_network is for connectivity between VMs, fully created in sgi-net.yaml
    sgi_network:
      type: tosca.nodes.Network
      properties:
        must-exist: true
        name: sgi_network

# ONOS_CORD, fully created in vtn.yaml
    service#ONOS_CORD:
      type: tosca.nodes.ONOSService
      properties:
        must-exist: true
        name: ONOS_CORD

# ONOS_Fabric, fully created in fabric.yaml
    service#ONOS_Fabric:
      type: tosca.nodes.ONOSService
      properties:
        must-exist: true
        name: ONOS_Fabric

# CORD Services
    service#venb:
      type: tosca.nodes.VENBService
      properties:
          name: venb
          kind: vEPC
          public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/mcord_rsa.pub') }}
          private_key_fn: /opt/xos/services/venb/keys/mcord_rsa
      artifacts:
          pubkey: /opt/cord_profile/key_import/mcord_rsa.pub

# CORD Slices
    {{ site_name }}_venb:
      description: vENB Service Slice
      type: tosca.nodes.Slice
      properties:
          name: {{ site_name }}_venb
          default_isolation: vm
          network: noauto
      requirements:
          - site:
              node: mysite
              relationship: tosca.relationships.BelongsToOne
          - service:
              node: service#venb
              relationship: tosca.relationships.BelongsToOne
          - default_image:
              node: trusty-server-multi-nic
              relationship: tosca.relationships.BelongsToOne
          - default_flavor:
              node: m1.small
              relationship: tosca.relationships.BelongsToOne

    venb_instance1:
      type: tosca.nodes.VENBServiceInstance
      properties:
        name: venb_instance1
      requirements:
        - owner:
            node: service#venb
            relationship: tosca.relationships.BelongsToOne

    venb_slice_management_network:
      type: tosca.nodes.NetworkSlice
      requirements:
        - network:
            node: management
            relationship: tosca.relationships.BelongsToOne
        - slice:
            node: {{ site_name }}_venb
            relationship: tosca.relationships.BelongsToOne

    venb_slice_s11_network:
      type: tosca.nodes.NetworkSlice
      requirements:
        - network:
            node: s11_network
            relationship: tosca.relationships.BelongsToOne
        - slice:
            node: {{ site_name }}_venb
            relationship: tosca.relationships.BelongsToOne

    venb_slice_s1u_network:
      type: tosca.nodes.NetworkSlice
      requirements:
        - network:
            node: s1u_network
            relationship: tosca.relationships.BelongsToOne
        - slice:
            node: {{ site_name }}_venb
            relationship: tosca.relationships.BelongsToOne

    venb_slice_sgi_network:
      type: tosca.nodes.NetworkSlice
      requirements:
        - network:
            node: sgi_network
            relationship: tosca.relationships.BelongsToOne
        - slice:
            node: {{ site_name }}_venb
            relationship: tosca.relationships.BelongsToOne
