CORD-2385 Move profile-specific configuration to E-CORD repo
Change-Id: I1dd85024fbe52a0adbd5021d306a78a9442164dd
diff --git a/templates/ecord-services.yaml.j2 b/templates/ecord-services.yaml.j2
new file mode 100644
index 0000000..cbdc2bf
--- /dev/null
+++ b/templates/ecord-services.yaml.j2
@@ -0,0 +1,319 @@
+{#
+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 vEG slice running on the CORD POD, created by platform-install
+
+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/servicedependency.yaml
+ - custom_types/serviceinstanceattribute.yaml
+ - custom_types/serviceinstancelink.yaml
+ - custom_types/site.yaml
+ - custom_types/slice.yaml
+ - custom_types/vegservice.yaml
+ - custom_types/vrouterservice.yaml
+
+topology_template:
+ node_templates:
+
+# site, image, fully created in deployment.yaml
+ {{ 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_management_hosts %}
+ management_hosts:
+ type: tosca.nodes.Network
+ properties:
+ must-exist: true
+{% endif %}
+
+# 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
+ addresses_veg:
+ type: tosca.nodes.AddressPool
+ properties:
+ name: addresses_veg
+ addresses: 10.7.1.0/24
+ gateway_ip: 10.7.1.1
+ gateway_mac: a4:23:05:06:01:01
+ requirements:
+ - service:
+ node: service#addressmanager
+ relationship: tosca.relationships.BelongsToOne
+
+ addresses_public:
+ type: tosca.nodes.AddressPool
+ properties:
+ name: addresses_public
+ addresses: 10.8.1.0/24
+ gateway_ip: 10.8.1.1
+ gateway_mac: a4:23:05:06:01:01
+ requirements:
+ - service:
+ node: service#addressmanager
+ relationship: tosca.relationships.BelongsToOne
+
+ service#addressmanager:
+ type: tosca.nodes.AddressManagerService
+ properties:
+ name: addressmanager
+
+ label_veg:
+ type: tosca.nodes.NodeLabel
+ properties:
+ name: label_veg
+
+ service#veg:
+ type: tosca.nodes.VEGService
+ properties:
+ name: veg
+ public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/veg_rsa.pub') }}
+ private_key_fn: /opt/xos/services/veg/keys/veg_rsa
+ # node_label: label_veg
+
+ veg_vrouter:
+ type: tosca.nodes.ServiceDependency
+ properties:
+ connect_method: None
+ requirements:
+ - subscriber_service:
+ node: service#veg
+ relationship: tosca.relationships.BelongsToOne
+ - provider_service:
+ node: service#vrouter
+ relationship: tosca.relationships.BelongsToOne
+
+ # NOTE are this connected?
+ veg_addressmanager:
+ type: tosca.nodes.ServiceDependency
+ properties:
+ connect_method: None
+ requirements:
+ - subscriber_service:
+ node: service#veg
+ relationship: tosca.relationships.BelongsToOne
+ - provider_service:
+ node: service#addressmanager
+ relationship: tosca.relationships.BelongsToOne
+
+ service#vrouter:
+ type: tosca.nodes.VRouterService
+ properties:
+ name: vrouter
+ rest_hostname: onos-fabric.{{ site_suffix }}
+ rest_port: 8181
+ rest_user: onos
+ rest_pass: rocks
+ # NOTE: shouldn't the addresses be attached to address_manager? I don't think vRouter is used now
+ # requirements:
+ # - addresses_veg:
+ # node: addresses_veg
+ # relationship: tosca.relationships.ProvidesAddresses
+ # - addresses_public:
+ # node: addresses_public
+ # relationship: tosca.relationships.ProvidesAddresses
+
+ 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
+
+ template#veg:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ name: veg
+ visibility: private
+ translation: none
+ vtn_kind: VSG
+
+ # Networks required by the CORD setup
+ {{ site_name }}_veg-access:
+ type: tosca.nodes.Network
+ properties:
+ name: {{ site_name }}_veg-access
+ # ip_version: 4
+ requirements:
+ - template:
+ node: template#veg
+ relationship: tosca.relationships.BelongsToOne
+ - owner:
+ node: {{ site_name }}_veg
+ relationship: tosca.relationships.BelongsToOne
+
+ networkslice#{{ site_name }}_veg-access_to_{{ site_name }}_veg:
+ type: tosca.nodes.NetworkSlice
+ requirements:
+ - network:
+ node: {{ site_name }}_veg-access
+ relationship: tosca.relationships.BelongsToOne
+ - slice:
+ node: {{ site_name }}_veg
+ relationship: tosca.relationships.BelongsToOne
+
+ # CORD Slices
+ {{ site_name }}_veg:
+ description: vEG Controller Slice
+ type: tosca.nodes.Slice
+ properties:
+ network: noauto
+ name: {{ site_name }}_veg
+ requirements:
+ - service:
+ node: service#veg
+ 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 }}_veg:
+ type: tosca.nodes.NetworkSlice
+ requirements:
+ - network:
+ node: management
+ relationship: tosca.relationships.BelongsToOne
+ - slice:
+ node: {{ site_name }}_veg
+ relationship: tosca.relationships.BelongsToOne
+
+{% if use_management_hosts %}
+ networkslice#management_hosts_to_{{ site_name }}_veg:
+ type: tosca.nodes.NetworkSlice
+ requirements:
+ - network:
+ node: management_hosts
+ relationship: tosca.relationships.BelongsToOne
+ - slice:
+ node: {{ site_name }}_veg
+ relationship: tosca.relationships.BelongsToOne
+{% endif %}
+
+ # TODO: migrate interfaces when we'll start using
+ # 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
+
+ # veg_lanside:
+ # type: tosca.nodes.ServiceInterface
+ # requirements:
+ # - service:
+ # node: service#veg
+ # relationship: tosca.relationships.MemberOfService
+ # - interface:
+ # node: in#lanside
+ # relationship: tosca.relationships.IsType
+
+ # veg_wanside:
+ # type: tosca.nodes.ServiceInterface
+ # requirements:
+ # - service:
+ # node: service#veg
+ # 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
+