| --- |
| {# |
| 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: Just enough Tosca to get the vSG slice running on the CORD POD, created by rcord profile |
| |
| imports: |
| - custom_types/addressmanagerservice.yaml |
| - custom_types/addresspool.yaml |
| - custom_types/image.yaml |
| - custom_types/network.yaml |
| - custom_types/networkslice.yaml |
| - custom_types/networktemplate.yaml |
| - custom_types/nodelabel.yaml |
| - custom_types/onosapp.yaml |
| - custom_types/onosservice.yaml |
| - custom_types/site.yaml |
| - custom_types/service.yaml |
| - custom_types/servicedependency.yaml |
| - custom_types/serviceinstanceattribute.yaml |
| - custom_types/serviceinstancelink.yaml |
| - custom_types/slice.yaml |
| - custom_types/voltservice.yaml |
| - custom_types/vrouterservice.yaml |
| - custom_types/vsgservice.yaml |
| - custom_types/vtrservice.yaml |
| |
| topology_template: |
| node_templates: |
| |
| {{ site_name }}: |
| type: tosca.nodes.Site |
| properties: |
| name: {{ site_name }} |
| must-exist: true |
| |
| image#vsg-1.1: |
| type: tosca.nodes.Image |
| properties: |
| name: vsg-1.1 |
| |
| # management networks, fully created in management-net.yaml |
| management: |
| type: tosca.nodes.Network |
| properties: |
| name: management |
| must-exist: true |
| |
| {% if use_vtn_net_management_host %} |
| management_host: |
| type: tosca.nodes.Network |
| properties: |
| name: management_host |
| must-exist: true |
| {% endif %} |
| |
| service#rcord: |
| type: tosca.nodes.Service |
| properties: |
| name: rcord |
| |
| rcord_volt: |
| type: tosca.nodes.ServiceDependency |
| properties: |
| connect_method: None |
| requirements: |
| - subscriber_service: |
| node: service#rcord |
| relationship: tosca.relationships.BelongsToOne |
| - provider_service: |
| node: service#volt |
| relationship: tosca.relationships.BelongsToOne |
| |
| # ONOS_CORD, fully created in vtn.yaml |
| service#ONOS_CORD: |
| type: tosca.nodes.ONOSService |
| properties: |
| name: ONOS_CORD |
| must-exist: true |
| |
| # ONOS_Fabric, fully created in fabric.yaml |
| service#ONOS_Fabric: |
| type: tosca.nodes.ONOSService |
| properties: |
| name: ONOS_Fabric |
| must-exist: true |
| |
| # CORD Services |
| service#vtr: |
| type: tosca.nodes.VTRService |
| properties: |
| name: vtr |
| kind: rcord |
| |
| service#volt: |
| type: tosca.nodes.VOLTService |
| properties: |
| name: volt |
| kind: rcord |
| public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/volt_rsa.pub') }} |
| private_key_fn: /opt/xos/services/volt/keys/volt_rsa |
| voltha_url: http://does.not.exist/ |
| onos_voltha_url: http://does.not.exist/ |
| |
| volt_vsg: |
| type: tosca.nodes.ServiceDependency |
| properties: |
| connect_method: None |
| requirements: |
| - subscriber_service: |
| node: service#volt |
| relationship: tosca.relationships.BelongsToOne |
| - provider_service: |
| node: service#vsg |
| relationship: tosca.relationships.BelongsToOne |
| |
| |
| addresses_vsg: |
| type: tosca.nodes.AddressPool |
| properties: |
| name: addresses_vsg |
| addresses: {{ addresspool_vsg_cidr }} |
| gateway_ip: {{ addresspool_vsg_cidr | ipaddr('1') | ipaddr('address') }} |
| gateway_mac: {{ fabric_gateway_hwaddr }} |
| requirements: |
| - service: |
| node: service#addressmanager |
| relationship: tosca.relationships.BelongsToOne |
| |
| addresses_public: |
| type: tosca.nodes.AddressPool |
| properties: |
| name: addresses_public |
| addresses: {{ addresspool_public_cidr }} |
| gateway_ip: {{ addresspool_public_cidr | ipaddr('1') | ipaddr('address') }} |
| gateway_mac: {{ fabric_gateway_hwaddr }} |
| requirements: |
| - service: |
| node: service#addressmanager |
| relationship: tosca.relationships.BelongsToOne |
| |
| label_vsg: |
| type: tosca.nodes.NodeLabel |
| properties: |
| name: label_vsg |
| |
| service#vsg: |
| type: tosca.nodes.VSGService |
| properties: |
| name: vsg |
| # backend_network_label: hpc_client # what is this? can we drop it? |
| public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/vsg_rsa.pub') }} |
| private_key_fn: /opt/xos/services/vsg/keys/vsg_rsa |
| # node_label: label_vsg |
| |
| vsg_vrouter: |
| type: tosca.nodes.ServiceDependency |
| properties: |
| connect_method: None |
| requirements: |
| - subscriber_service: |
| node: service#vsg |
| relationship: tosca.relationships.BelongsToOne |
| - provider_service: |
| node: service#vrouter |
| relationship: tosca.relationships.BelongsToOne |
| |
| vsg_addressmanager: |
| type: tosca.nodes.ServiceDependency |
| properties: |
| connect_method: None |
| requirements: |
| - subscriber_service: |
| node: service#vsg |
| relationship: tosca.relationships.BelongsToOne |
| - provider_service: |
| node: service#addressmanager |
| relationship: tosca.relationships.BelongsToOne |
| |
| service#addressmanager: |
| type: tosca.nodes.AddressManagerService |
| properties: |
| name: addressmanager |
| |
| service#vrouter: |
| type: tosca.nodes.VRouterService |
| properties: |
| name: vrouter |
| |
| vRouter_ONOS_app: |
| type: tosca.nodes.ONOSApp |
| requirements: |
| - owner: |
| node: service#ONOS_Fabric |
| relationship: tosca.relationships.BelongsToOne |
| properties: |
| name: vRouter_ONOS_app |
| dependencies: org.onosproject.fpm |
| |
| vRouter_ONOS_app_autogenerate: |
| type: tosca.nodes.ServiceInstanceAttribute |
| requirements: |
| - service_instance: |
| node: vRouter_ONOS_app |
| relationship: tosca.relationships.BelongsToOne |
| properties: |
| name: autogenerate |
| value: vrouter-network-cfg |
| |
| vRouter_ONOS_app_ONOS_CORD: |
| type: tosca.nodes.ServiceInstanceLink |
| requirements: |
| - provider_service_instance: |
| node: vRouter_ONOS_app |
| relationship: tosca.relationships.BelongsToOne |
| - subscriber_service: |
| node: service#vrouter |
| relationship: tosca.relationships.BelongsToOne |
| |
| vsg_template: |
| type: tosca.nodes.NetworkTemplate |
| properties: |
| name: vsg_template |
| visibility: private |
| translation: none |
| vtn_kind: VSG |
| |
| # Networks required by the CORD setup |
| {{ site_name }}_vsg-access: |
| type: tosca.nodes.Network |
| properties: |
| name: {{ site_name }}_vsg-access |
| # ip_version: 4 |
| requirements: |
| - template: |
| node: vsg_template |
| relationship: tosca.relationships.BelongsToOne |
| - owner: |
| node: {{ site_name }}_vsg |
| relationship: tosca.relationships.BelongsToOne |
| |
| networkslice#{{ site_name }}_vsg-access_to_{{ site_name }}_vsg: |
| type: tosca.nodes.NetworkSlice |
| requirements: |
| - network: |
| node: {{ site_name }}_vsg-access |
| relationship: tosca.relationships.BelongsToOne |
| - slice: |
| node: {{ site_name }}_vsg |
| relationship: tosca.relationships.BelongsToOne |
| |
| # CORD Slices |
| {{ site_name }}_vsg: |
| description: vSG Controller Slice |
| type: tosca.nodes.Slice |
| properties: |
| network: noauto |
| name: {{ site_name }}_vsg |
| requirements: |
| - service: |
| node: service#vsg |
| relationship: tosca.relationships.BelongsToOne |
| - site: |
| node: {{ site_name }} |
| relationship: tosca.relationships.BelongsToOne |
| - default_image: |
| node: image#vsg-1.1 |
| relationship: tosca.relationships.BelongsToOne |
| |
| networkslice#management_to_{{ site_name }}_vsg: |
| type: tosca.nodes.NetworkSlice |
| requirements: |
| - network: |
| node: management |
| relationship: tosca.relationships.BelongsToOne |
| - slice: |
| node: {{ site_name }}_vsg |
| relationship: tosca.relationships.BelongsToOne |
| |
| {% if use_vtn_net_management_host %} |
| networkslice#management_host_to_{{ site_name }}_vsg: |
| type: tosca.nodes.NetworkSlice |
| requirements: |
| - network: |
| node: management_host |
| relationship: tosca.relationships.BelongsToOne |
| - slice: |
| node: {{ site_name }}_vsg |
| relationship: tosca.relationships.BelongsToOne |
| {% endif %} |
| |
| # TODO: migrate interfaces when we'll start using them |
| |
| # in#lanside: |
| # type: tosca.nodes.InterfaceType |
| # properties: |
| # direction: in |
| |
| # out#lanside: |
| # type: tosca.nodes.InterfaceType |
| # properties: |
| # direction: out |
| |
| # in#wanside: |
| # type: tosca.nodes.InterfaceType |
| # properties: |
| # direction: in |
| |
| # out#wanside: |
| # type: tosca.nodes.InterfaceType |
| # properties: |
| # direction: out |
| |
| # volt_lanside: |
| # type: tosca.nodes.ServiceInterface |
| # requirements: |
| # - service: |
| # node: service#volt |
| # relationship: tosca.relationships.MemberOfService |
| # - interface: |
| # node: out#lanside |
| # relationship: tosca.relationships.IsType |
| |
| # vsg_lanside: |
| # type: tosca.nodes.ServiceInterface |
| # requirements: |
| # - service: |
| # node: service#vsg |
| # relationship: tosca.relationships.MemberOfService |
| # - interface: |
| # node: in#lanside |
| # relationship: tosca.relationships.IsType |
| |
| # vsg_wanside: |
| # type: tosca.nodes.ServiceInterface |
| # requirements: |
| # - service: |
| # node: service#vsg |
| # relationship: tosca.relationships.MemberOfService |
| # - interface: |
| # node: out#wanside |
| # relationship: tosca.relationships.IsType |
| |
| # addressmanager_wanside: |
| # type: tosca.nodes.ServiceInterface |
| # requirements: |
| # - service: |
| # node: service#addressmanager |
| # relationship: tosca.relationships.MemberOfService |
| # - interface: |
| # node: in#wanside |
| # relationship: tosca.relationships.IsType |
| |