CORD-2385 Move profile-specific configuration to E-CORD repo
Change-Id: I1dd85024fbe52a0adbd5021d306a78a9442164dd
diff --git a/ecord-global.yml b/ecord-global.yml
new file mode 100644
index 0000000..1fe42c3
--- /dev/null
+++ b/ecord-global.yml
@@ -0,0 +1,70 @@
+---
+# 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.
+
+# profile_manifests/ecord-global.yml
+# Global E-CORD Profile Manifest
+#
+# Note: supports the `single` scenario, but not the virtual/physical scenarios
+# (requires ONOS, but not MaaS/OpenStack)
+
+# Profile info located in orchestration/profiles/<cord_use_case>
+cord_use_case: ecord
+
+# Site configuration
+site_name: ecordglobal
+site_humanname: "Global E-CORD"
+site_suffix: "{{ site_name }}.cord.lab"
+deployment_type: "global_ecord"
+
+# Feature toggles
+use_maas: True
+use_apt_cache: True
+
+# XOS config
+xos_new_tosca_config_templates:
+ - onos-global-service.yaml
+ - carrierethernet-global-app.yaml
+ - service-graph-constraints.yaml
+ - xos-gui-extensions.yml
+
+
+xos_other_templates:
+ - fabric-network-cfg.json
+
+# GUI Config [new GUI]
+gui_project_name: "Global E-CORD"
+gui_background: "cord-bg.jpg" # TODO find ecord image
+gui_payoff: "Your Enterprise Global VNF orchestrator"
+
+enabled_gui_extensions:
+ - name: vnaas
+ path: orchestration/xos_services/vnaas/xos/gui
+ extra_files:
+ - app/style/style.css
+ - mapconstants.js
+
+# paths defined in manifest/default.xml
+xos_services:
+ - name: onos
+ path: orchestration/xos_services/onos-service
+ - name: vnaas
+ path: orchestration/xos_services/vnaas
+
+# service graph gui constraints
+xos_gui_service_graph_constraints: '["vnaas"]'
+
+# VTN network configuration
+management_network_ip: 172.27.0.1/24
+data_plane_ip: 10.168.0.253/24
diff --git a/ecord.yml b/ecord.yml
new file mode 100644
index 0000000..03ac628
--- /dev/null
+++ b/ecord.yml
@@ -0,0 +1,260 @@
+---
+# 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.
+
+# profile_manifests/ecord.yaml
+# E-CORD Profile Manifest
+
+# Profile info located in orchestration/profiles/<cord_use_case>
+cord_use_case: ecord
+
+# Site configuration
+site_name: mysite
+site_humanname: MySite
+#site_suffix: "{{ site_name }}.cord.lab" - broken, see CORD-1520
+site_suffix: "cord.lab"
+deployment_type: MyDeployment
+
+# Feature toggles
+use_apt_cache: True
+use_fabric: True
+use_maas: True
+
+# XOS config
+xos_new_tosca_config_templates:
+ - vtn-service.yaml
+ - fabric-service.yaml
+ - management-net.yaml
+ - ecord-services.yaml
+ - public-net.yaml
+ - vee-service.yaml
+ - carrierethernet-local-app.yaml
+ - xos-gui-extensions.yml
+ - service-graph-constraints.yaml
+
+xos_other_templates:
+ - fabric-network-cfg.json
+
+# GUI Config [new GUI]
+gui_project_name: "E-CORD"
+gui_background: "cord-bg.jpg" # TODO find ecord image
+gui_payoff: "Your Enterprise VNF orchestrator"
+
+enabled_gui_extensions:
+ - name: veestat
+ path: orchestration/xos_services/vEE/xos/veestat
+
+# paths defined in manifest/default.xml
+xos_services:
+ - name: addressmanager
+ path: orchestration/xos_services/addressmanager
+ - name: openstack
+ path: orchestration/xos_services/openstack
+ - name: onos
+ path: orchestration/xos_services/onos-service
+ keypair: onos_rsa
+ - name: vtn
+ path: orchestration/xos_services/vtn-service
+ - name: fabric
+ path: orchestration/xos_services/fabric
+ - name: vrouter
+ path: orchestration/xos_services/vrouter
+ - name: veg
+ path: orchestration/xos_services/vEG
+ keypair: veg_rsa
+ - name: vee
+ path: orchestration/xos_services/vEE
+
+# service graph gui constraints
+xos_gui_service_graph_constraints: '["vee", "veg", "vrouter"]'
+
+# VTN network configuration
+management_network_ip: 172.27.0.1/24
+data_plane_ip: 10.168.0.253/24
+
+# Juju config
+charm_versions:
+ ceilometer: "cs:trusty/ceilometer-17"
+ ceilometer-agent: "cs:trusty/ceilometer-agent-13"
+ glance: "cs:trusty/glance-28"
+ keystone: "cs:trusty/keystone-267"
+ mongodb: "cs:trusty/mongodb-33"
+ nagios: "cs:trusty/nagios-10"
+ neutron-api: "cs:~cordteam/trusty/neutron-api-6"
+ nova-cloud-controller: "cs:trusty/nova-cloud-controller-64"
+ nova-compute: "cs:~cordteam/trusty/nova-compute-4"
+ nrpe: "cs:trusty/nrpe-4"
+ ntp: "cs:trusty/ntp-14"
+ openstack-dashboard: "cs:trusty/openstack-dashboard-19"
+ percona-cluster: "cs:trusty/percona-cluster-31"
+ rabbitmq-server: "cs:trusty/rabbitmq-server-42"
+
+head_lxd_list:
+ - name: "juju-1"
+ service: "juju"
+ aliases:
+ - "juju"
+ ipv4_last_octet: 10
+
+ - name: "ceilometer-1"
+ service: "ceilometer"
+ aliases:
+ - "ceilometer"
+ ipv4_last_octet: 20
+ forwarded_ports:
+ - { ext: 8777, int: 8777 }
+
+ - name: "glance-1"
+ service: "glance"
+ aliases:
+ - "glance"
+ ipv4_last_octet: 30
+ forwarded_ports:
+ - { ext: 9292, int: 9292 }
+
+ - name: "keystone-1"
+ service: "keystone"
+ aliases:
+ - "keystone"
+ ipv4_last_octet: 40
+ forwarded_ports:
+ - { ext: 35357, int: 35357 }
+ - { ext: 4990, int: 4990 }
+ - { ext: 5000, int: 5000 }
+
+ - name: "percona-cluster-1"
+ service: "percona-cluster"
+ aliases:
+ - "percona-cluster"
+ ipv4_last_octet: 50
+
+ - name: "nagios-1"
+ service: "nagios"
+ aliases:
+ - "nagios"
+ ipv4_last_octet: 60
+ forwarded_ports:
+ - { ext: 3128, int: 80 }
+
+ - name: "neutron-api-1"
+ service: "neutron-api"
+ aliases:
+ - "neutron-api"
+ ipv4_last_octet: 70
+ forwarded_ports:
+ - { ext: 9696, int: 9696 }
+
+ - name: "nova-cloud-controller-1"
+ service: "nova-cloud-controller"
+ aliases:
+ - "nova-cloud-controller"
+ ipv4_last_octet: 80
+ forwarded_ports:
+ - { ext: 8774, int: 8774 }
+
+ - name: "openstack-dashboard-1"
+ service: "openstack-dashboard"
+ aliases:
+ - "openstack-dashboard"
+ ipv4_last_octet: 90
+ forwarded_ports:
+ - { ext: 8080, int: 80 }
+
+ - name: "rabbitmq-server-1"
+ service: "rabbitmq-server"
+ aliases:
+ - "rabbitmq-server"
+ ipv4_last_octet: 100
+
+ - name: "mongodb-1"
+ service: "mongodb"
+ aliases:
+ - "mongodb"
+ ipv4_last_octet: 110
+
+lxd_service_list:
+ - ceilometer
+ - glance
+ - keystone
+ - mongodb
+ - nagios
+ - neutron-api
+ - nova-cloud-controller
+ - openstack-dashboard
+ - percona-cluster
+ - rabbitmq-server
+
+standalone_service_list:
+ - ntp
+ - nrpe
+ - ceilometer-agent
+
+
+service_relations:
+ - name: keystone
+ relations: [ "percona-cluster", "nrpe", ]
+
+ - name: nova-cloud-controller
+ relations: [ "percona-cluster", "rabbitmq-server", "glance", "keystone", "nrpe", ]
+
+ - name: glance
+ relations: [ "percona-cluster", "keystone", "nrpe", ]
+
+ - name: neutron-api
+ relations: [ "keystone", "percona-cluster", "rabbitmq-server", "nova-cloud-controller", "nrpe", ]
+
+ - name: openstack-dashboard
+ relations: [ "keystone", "nrpe", ]
+
+ - name: nagios
+ relations: [ "nrpe", ]
+
+ - name: "percona-cluster:juju-info"
+ relations: [ "nrpe:general-info", ]
+
+ - name: rabbitmq-server
+ relations: [ "nrpe", ]
+
+ - name: ceilometer
+ relations: [ "mongodb", "rabbitmq-server", "nagios", "nrpe", ]
+
+ - name: "ceilometer:identity-service"
+ relations: [ "keystone:identity-service", ]
+
+ - name: "ceilometer:ceilometer-service"
+ relations: [ "ceilometer-agent:ceilometer-service", ]
+
+
+compute_relations:
+ - name: nova-compute
+ relations: [ "ceilometer-agent", "glance", "nova-cloud-controller", "nagios", "nrpe", ]
+
+ - name: "nova-compute:shared-db"
+ relations: [ "percona-cluster:shared-db", ]
+
+ - name: "nova-compute:amqp"
+ relations: [ "rabbitmq-server:amqp", ]
+
+ - name: ntp
+ relations: [ "nova-compute", ]
+
+
+xos_images:
+ - name: "trusty-server-multi-nic"
+ url: "https://github.com/opencord/platform-install/releases/download/vms/trusty-server-cloudimg-amd64-disk1.img.20170201"
+ checksum: "sha256:ebf007ba3ec1043b7cd011fc6668e2a1d1d4c69c41071e8513ab355df7a057cb"
+
+ - name: "vsg-1.1"
+ url: "https://github.com/opencord/vsg/releases/download/vms/vsg-1.1.img"
+ checksum: "sha256:16b0beb6778aed0f5feecb05f8d5750e6c262f98e6011e99ddadf7d46a177b6f"
diff --git a/podconfig/ecord-global-local.yml b/podconfig/ecord-global-local.yml
new file mode 100644
index 0000000..833d5c4
--- /dev/null
+++ b/podconfig/ecord-global-local.yml
@@ -0,0 +1,21 @@
+---
+# 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.
+
+# ecord-global-local POD Config
+# Starts a E-CORD Global container set in the local environment
+
+cord_scenario: local
+cord_profile: ecord-global
+
diff --git a/podconfig/ecord-global-mock.yml b/podconfig/ecord-global-mock.yml
new file mode 100644
index 0000000..6594ed9
--- /dev/null
+++ b/podconfig/ecord-global-mock.yml
@@ -0,0 +1,20 @@
+---
+# 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.
+
+# ecord-global-mock Pod Config
+# Creates a single-node mock Global E-CORD pod
+
+cord_scenario: mock
+cord_profile: ecord-global
diff --git a/podconfig/ecord-global-single.yml b/podconfig/ecord-global-single.yml
new file mode 100644
index 0000000..c97aa70
--- /dev/null
+++ b/podconfig/ecord-global-single.yml
@@ -0,0 +1,25 @@
+---
+# 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.
+
+# ecord-global-single Pod Config
+# Creates a single-node Global E-CORD pod w/synchronizers and ONOS
+# This is the production config for Global E-CORD development
+
+cord_scenario: single
+cord_profile: ecord-global
+
+start_xos_prereqs:
+ - deploy-onos
+
diff --git a/podconfig/ecord-local.yml b/podconfig/ecord-local.yml
new file mode 100644
index 0000000..b25c9f6
--- /dev/null
+++ b/podconfig/ecord-local.yml
@@ -0,0 +1,21 @@
+---
+# 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.
+
+# ecord-local POD Config
+# Starts a E-CORD container set in the local environment
+
+cord_scenario: local
+cord_profile: ecord
+
diff --git a/podconfig/ecord-mock.yml b/podconfig/ecord-mock.yml
new file mode 100644
index 0000000..9656c06
--- /dev/null
+++ b/podconfig/ecord-mock.yml
@@ -0,0 +1,23 @@
+
+# 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.
+
+
+---
+# mock-ecord Pod Config
+# Creates a single-node mock E-CORD pod
+
+cord_scenario: mock
+cord_profile: ecord
+
diff --git a/podconfig/ecord-single.yml b/podconfig/ecord-single.yml
new file mode 100644
index 0000000..3cf79ec
--- /dev/null
+++ b/podconfig/ecord-single.yml
@@ -0,0 +1,22 @@
+---
+# 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.
+
+# ecord-single Pod Config
+# Creates a single-node mock E-CORD pod w/synchronizers
+
+cord_scenario: single
+cord_profile: ecord
+
+
diff --git a/podconfig/ecord-virtual.yml b/podconfig/ecord-virtual.yml
new file mode 100644
index 0000000..ecf5b2e
--- /dev/null
+++ b/podconfig/ecord-virtual.yml
@@ -0,0 +1,41 @@
+---
+# 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.
+
+# ecord-virtual Pod Config
+# Creates a virtual multi-node E-CORD pod
+
+cord_scenario: cord
+cord_profile: ecord
+
+vagrant_up_prereqs:
+ - prereqs-check
+ - ciab-ovs
+
+build_targets:
+ - compute1-up
+
+external_iface: 'eth0'
+fabric_include_names: eth2
+fabric_include_module_types: omit
+fabric_exclude_names: eth0,eth1
+management_include_names: eth1
+management_exclude_names: eth0,eth2
+
+skipTags:
+ - 'set_compute_node_password'
+ - 'switch_support'
+ - 'reboot'
+ - 'interface_config'
+
diff --git a/templates/carrierethernet-global-app.yaml.j2 b/templates/carrierethernet-global-app.yaml.j2
new file mode 100644
index 0000000..d1406fb
--- /dev/null
+++ b/templates/carrierethernet-global-app.yaml.j2
@@ -0,0 +1,28 @@
+
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/onosapp.yaml
+ - custom_types/onosservice.yaml
+ - custom_types/serviceinstanceattribute.yaml
+
+description: carrierethernet-app onboarding, generated by platform-install
+topology_template:
+ node_templates:
+
+ # ONOS_CORD fully created in onos-global-service.yaml
+ service#ONOS_CORD:
+ type: tosca.nodes.ONOSService
+ properties:
+ name: ONOS_CORD
+ must-exist: true
+
+ CarrierEthernet_ONOS_app:
+ type: tosca.nodes.ONOSApp
+ properties:
+ name: CarrierEthernet_ONOS_app
+ install_dependencies: {{ onos_mavenrepo_url }}/repository/org/opencord/ce/ce-api/1.1.0-SNAPSHOT/ce-api-1.1.0-SNAPSHOT.oar, {{ onos_mavenrepo_url }}/repository/org/opencord/ce/ecord-global-app/1.1.0-SNAPSHOT/ecord-global-app-1.1.0-SNAPSHOT.oar
+ requirements:
+ - owner:
+ node: service#ONOS_CORD
+ relationship: tosca.relationships.BelongsToOne
diff --git a/templates/carrierethernet-local-app.yaml.j2 b/templates/carrierethernet-local-app.yaml.j2
new file mode 100644
index 0000000..70f24aa
--- /dev/null
+++ b/templates/carrierethernet-local-app.yaml.j2
@@ -0,0 +1,79 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/onosapp.yaml
+ - custom_types/onosservice.yaml
+ - custom_types/serviceinstanceattribute.yaml
+
+description: carrierethernet-app onboarding, generated by platform-install
+topology_template:
+ node_templates:
+
+ # 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
+
+ CarrierEthernet_ONOS_app:
+ type: tosca.nodes.ONOSApp
+ requirements:
+ - owner:
+ node: service#ONOS_CORD
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: CarrierEthernet_ONOS_app
+ install_dependencies: {{ onos_mavenrepo_url }}/repository/org/opencord/ce/ce-api/1.1.0-SNAPSHOT/ce-api-1.1.0-SNAPSHOT.oar, {{ onos_mavenrepo_url }}/repository/org/opencord/ce/bigswitch/1.1.0-SNAPSHOT/bigswitch-1.1.0-SNAPSHOT.oar, {{ onos_mavenrepo_url }}/repository/org/opencord/ce/local-channel/1.1.0-SNAPSHOT/local-channel-1.1.0-SNAPSHOT.oar, {{ onos_mavenrepo_url }}//repository/org/opencord/ce/vee/1.1.0-SNAPSHOT/vee-1.1.0-SNAPSHOT.oar
+ dependencies: org.onosproject.drivers.microsemi, org.onosproject.cfm
+
+ CarrierEthernet_ONOS_app_component_config:
+ type: tosca.nodes.ServiceInstanceAttribute
+ requirements:
+ - service_instance:
+ node: CarrierEthernet_ONOS_app
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: component_config
+ value: >
+ {
+ "org.onosproject.netconf.ctl.impl.NetconfControllerImpl": {
+ "netconfConnectTimeout": "120",
+ "netconfReplyTimeout": "120"
+ },
+ "org.opencord.ce.local.bigswitch.BigSwitchManager": {
+ "domainId": "{{ carrierethernet_domainid_prefix }}-cord-onos"
+ }
+ }
+
+ CarrierEthernet_Fabric_ONOS_app:
+ type: tosca.nodes.ONOSApp
+ requirements:
+ - owner:
+ node: service#ONOS_Fabric
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: CarrierEthernet_Fabric_ONOS_app
+ install_dependencies: {{ onos_mavenrepo_url }}/repository/org/opencord/ce/ce-api/1.1.0-SNAPSHOT/ce-api-1.1.0-SNAPSHOT.oar, {{ onos_mavenrepo_url }}/repository/org/opencord/ce/bigswitch/1.1.0-SNAPSHOT/bigswitch-1.1.0-SNAPSHOT.oar, {{ onos_mavenrepo_url }}//repository/org/opencord/ce/local-channel/1.1.0-SNAPSHOT/local-channel-1.1.0-SNAPSHOT.oar, {{ onos_mavenrepo_url }}//repository/org/opencord/ce/fabric/1.1.0-SNAPSHOT/fabric-1.1.0-SNAPSHOT.oar
+
+ CarrierEthernet_Fabric_ONOS_app_component_config:
+ type: tosca.nodes.ServiceInstanceAttribute
+ requirements:
+ - service_instance:
+ node: CarrierEthernet_Fabric_ONOS_app
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: component_config
+ value: >
+ {
+ "org.opencord.ce.local.bigswitch.BigSwitchManager": {
+ "domainId": "{{ carrierethernet_domainid_prefix }}-fabric-onos"
+ }
+ }
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
+
diff --git a/templates/fabric-network-cfg.json.j2 b/templates/fabric-network-cfg.json.j2
new file mode 100644
index 0000000..853c7e9
--- /dev/null
+++ b/templates/fabric-network-cfg.json.j2
@@ -0,0 +1,19 @@
+
+{#
+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.
+#}
+
+
+{}
\ No newline at end of file
diff --git a/templates/fabric-service.yaml.j2 b/templates/fabric-service.yaml.j2
new file mode 100644
index 0000000..e28d5ea
--- /dev/null
+++ b/templates/fabric-service.yaml.j2
@@ -0,0 +1,78 @@
+
+{#
+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
+
+imports:
+ - custom_types/onosservice.yaml
+ - custom_types/serviceattribute.yaml
+ - custom_types/fabricservice.yaml
+ - custom_types/onosapp.yaml
+ - custom_types/serviceinstancelink.yaml
+
+description: fabric services, generated by platform-install
+
+topology_template:
+ node_templates:
+
+ service#ONOS_Fabric:
+ type: tosca.nodes.ONOSService
+ properties:
+ name: ONOS_Fabric
+ kind: platform
+ no_container: true
+ rest_hostname: onos-fabric.{{ site_suffix }}
+
+ serviceattribute#fabric_network_cfg_json:
+ type: tosca.nodes.ServiceAttribute
+ requirements:
+ - service:
+ node: service#ONOS_Fabric
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: fabric_network_cfg_json
+ value: {{ fabric_network_cfg_json }}
+
+ service#fabric:
+ type: tosca.nodes.FabricService
+ properties:
+ name: fabric
+ kind: platform
+
+
+
+ Fabric_ONOS_app:
+ type: tosca.nodes.ONOSApp
+ requirements:
+ - owner:
+ node: service#ONOS_Fabric
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: Fabric_ONOS_app
+ dependencies: org.onosproject.drivers, org.onosproject.openflow, org.onosproject.netcfghostprovider, org.onosproject.segmentrouting
+
+ Fabric_ONOS_app_ONOS_Fabric:
+ type: tosca.nodes.ServiceInstanceLink
+ requirements:
+ - provider_service_instance:
+ node: Fabric_ONOS_app
+ relationship: tosca.relationships.BelongsToOne
+ - subscriber_service:
+ node: service#fabric
+ relationship: tosca.relationships.BelongsToOne
+
diff --git a/templates/management-net.yaml.j2 b/templates/management-net.yaml.j2
new file mode 100644
index 0000000..9c7b03c
--- /dev/null
+++ b/templates/management-net.yaml.j2
@@ -0,0 +1,97 @@
+
+{#
+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
+
+imports:
+ - custom_types/networktemplate.yaml
+ - custom_types/network.yaml
+ - custom_types/slice.yaml
+ - custom_types/site.yaml
+
+description: management network config, generated by platform-install
+
+topology_template:
+ node_templates:
+
+# site, fully created in deployment.yaml
+ {{ site_name }}:
+ type: tosca.nodes.Site
+ properties:
+ name: {{ site_name }}
+
+# management network
+ management_template:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ name: management_template
+ visibility: private
+ translation: none
+ vtn_kind: MANAGEMENT_LOCAL
+
+ management:
+ type: tosca.nodes.Network
+ properties:
+ name: management
+ # ip_version: 4
+ subnet: {{ management_network_cidr }}
+ permit_all_slices: true
+ requirements:
+ - template:
+ node: management_template
+ relationship: tosca.relationships.BelongsToOne
+ - owner:
+ node: slice#{{ site_name }}_management
+ relationship: tosca.relationships.BelongsToOne
+
+{% if use_management_hosts %}
+ management_hosts_template:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ name: management_hosts_template
+ visibility: private
+ translation: none
+ vtn_kind: MANAGEMENT_HOST
+
+ management_hosts:
+ type: tosca.nodes.Network
+ properties:
+ # ip_version: 4
+ subnet: {{ management_hosts_net_cidr }}
+ start_ip: {{ management_hosts_net_range_xos_low }}
+ end_ip: {{ management_hosts_net_range_xos_high }}
+ requirements:
+ - template:
+ node: management_hosts_template
+ relationship: tosca.relationships.BelongsToOne
+ - owner:
+ node: slice#{{ site_name }}_management
+ relationship: tosca.relationships.BelongsToOne
+{% endif %}
+
+ slice#{{ site_name }}_management:
+ description: This slice exists solely to own the management network
+ type: tosca.nodes.Slice
+ properties:
+ network: noauto
+ name: {{ site_name }}_management
+ requirements:
+ - site:
+ node: {{ site_name }}
+ relationship: tosca.relationships.BelongsToOne
+
diff --git a/templates/public-net.yaml.j2 b/templates/public-net.yaml.j2
new file mode 100644
index 0000000..610c58b
--- /dev/null
+++ b/templates/public-net.yaml.j2
@@ -0,0 +1,117 @@
+
+{#
+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
+
+imports:
+ - custom_types/addresspool.yaml
+ - custom_types/addressmanagerservice.yaml
+ - custom_types/addressmanagerserviceinstance.yaml
+ - custom_types/network.yaml
+ - custom_types/networktemplate.yaml
+ - custom_types/serviceinstance.yaml
+ - custom_types/serviceinstancelink.yaml
+ - custom_types/site.yaml
+ - custom_types/slice.yaml
+
+description: public network config, generated by platform-install
+
+topology_template:
+ node_templates:
+
+# site, fully created in deployment.yaml
+ {{ site_name }}:
+ type: tosca.nodes.Site
+ properties:
+ name: {{ site_name }}
+ must-exist: true
+
+
+
+# Address Manager service, fully created in cord-service.yaml
+ service#addressmanager:
+ type: tosca.nodes.AddressManagerService
+ properties:
+ name: addressmanager
+ must-exist: true
+
+# public network
+
+ public_template:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ name: public_template
+ visibility: public
+ translation: none
+ vtn_kind: PUBLIC
+
+ public:
+ type: tosca.nodes.Network
+ properties:
+ name: public
+ permit_all_slices: true
+ subnet: 10.8.1.0/24 # NOTE same as AddressPool#addresses_public
+ # ip_version: 4
+ requirements:
+ - template:
+ node: public_template
+ relationship: tosca.relationships.BelongsToOne
+ - owner:
+ node: {{ site_name }}_public
+ relationship: tosca.relationships.BelongsToOne
+
+ # Created in cord-services.yaml.j2
+ addresses_public:
+ type: tosca.nodes.AddressPool
+ properties:
+ name: addresses_public
+ must-exist: true
+
+ AddressManagerServiceInstancePublicNetwork:
+ type: tosca.nodes.AddressManagerServiceInstance
+ requirements:
+ - owner:
+ node: service#addressmanager
+ relationship: tosca.relationships.BelongsToOne
+ - address_pool:
+ node: addresses_public
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: AM_public_net
+
+ public_to_address_manager:
+ type: tosca.nodes.ServiceInstanceLink
+ requirements:
+ - provider_service_instance:
+ node: AddressManagerServiceInstancePublicNetwork
+ relationship: tosca.relationships.BelongsToOne
+ - subscriber_network:
+ node: public
+ relationship: tosca.relationships.BelongsToOne
+
+ {{ site_name }}_public:
+ description: This slice exists solely to own the public network
+ type: tosca.nodes.Slice
+ properties:
+ network: noauto
+ name: {{ site_name }}_public
+ requirements:
+ - site:
+ node: {{ site_name }}
+ relationship: tosca.relationships.BelongsToOne
+
diff --git a/templates/service-graph-constraints.yaml.j2 b/templates/service-graph-constraints.yaml.j2
new file mode 100644
index 0000000..00fbc4a
--- /dev/null
+++ b/templates/service-graph-constraints.yaml.j2
@@ -0,0 +1,14 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/servicegraphconstraint.yaml
+
+description: Constraints on the Services position in the graph
+
+topology_template:
+ node_templates:
+
+ constraints:
+ type: tosca.nodes.ServiceGraphConstraint
+ properties:
+ constraints: '{{ xos_gui_service_graph_constraints }}'
diff --git a/templates/vee-service.yaml.j2 b/templates/vee-service.yaml.j2
new file mode 100644
index 0000000..9fea06d
--- /dev/null
+++ b/templates/vee-service.yaml.j2
@@ -0,0 +1,63 @@
+
+{#
+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
+
+imports:
+ - custom_types/veeservice.yaml
+ - custom_types/vegservice.yaml
+ - custom_types/networktemplate.yaml
+ - custom_types/servicedependency.yaml
+
+description: vee services, generated by platform-install
+
+topology_template:
+ node_templates:
+
+ service#veg:
+ type: tosca.nodes.VEGService
+ requirements:
+ properties:
+ name: veg
+ must-exist: true
+
+ service#vee:
+ type: tosca.nodes.VEEService
+ properties:
+ name: vee
+
+ veg_vee:
+ type: tosca.nodes.ServiceDependency
+ properties:
+ connect_method: None
+ requirements:
+ - subscriber_service:
+ node: service#veg
+ relationship: tosca.relationships.BelongsToOne
+ - provider_service:
+ node: service#vee
+ relationship: tosca.relationships.BelongsToOne
+
+ template#vee:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ name: vee
+ visibility: private
+ translation: none
+ vtn_kind: vee
+
diff --git a/templates/vnaasglobal-service-reference.yaml.j2 b/templates/vnaasglobal-service-reference.yaml.j2
new file mode 100644
index 0000000..25626a7
--- /dev/null
+++ b/templates/vnaasglobal-service-reference.yaml.j2
@@ -0,0 +1,138 @@
+{#
+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
+
+imports:
+ - custom_types/xos.yaml
+ - custom_types/vnaas.yaml
+
+description: vnaasglobal services, generated by platform-install
+
+topology_template:
+ node_templates:
+
+ enterpriselocation#onlab:
+ type: tosca.nodes.EnterpriseLocation
+ requirements:
+ properties:
+ name: onlab
+ cord_site_ip: 127.0.0.1
+ cord_site_port: 8181
+ cord_site_username: onos
+ cord_site_password: rocks
+ cord_site_type: onos
+
+
+ enterpriselocation#onlab1:
+ type: tosca.nodes.EnterpriseLocation
+ requirements:
+ properties:
+ name: onlab1
+ cord_site_ip: 127.0.0.2
+ cord_site_port: 8181
+ cord_site_username: onos
+ cord_site_password: rocks
+ cord_site_type: onos
+
+ onosmodel#onlab:
+ type: tosca.nodes.OnosModel
+ requirements:
+ properties:
+ name: onlabT
+ onos_ip: onos-cord.{{ site_suffix }}
+ onos_port: 8182
+ onos_username: onos
+ onos_password: rocks
+ onos_type: global
+
+ bandwidthprofile#bronze:
+ type: tosca.nodes.BandwidthProfile
+ requirements:
+ properties:
+ cbs: 1000
+ ebs: 1200
+ cir: 1000
+ eir: 1200
+ name: bronze
+
+ bandwidthprofile#silver:
+ type: tosca.nodes.BandwidthProfile
+ requirements:
+ properties:
+ cbs: 1500
+ ebs: 2000
+ cir: 10000
+ eir: 2000
+ name: silver
+
+ bandwidthprofile#gold:
+ type: tosca.nodes.BandwidthProfile
+ requirements:
+ properties:
+ cbs: 2000
+ ebs: 2700
+ cir: 20000
+ eir: 5000
+ name: gold
+
+ bandwidthprofile#platinum:
+ type: tosca.nodes.BandwidthProfile
+ requirements:
+ properties:
+ cbs: 2500
+ ebs: 3200
+ cir: 100000
+ eir: 10000
+ name: platinum
+
+ usernetworkinterface#UserNetworkInterface1:
+ type: tosca.nodes.UserNetworkInterface
+ requirements:
+ properties:
+ tenant: onlab
+ name: uni1
+ latlng: [37.973535, -122.531087]
+ cpe_id: netconf:192.168.56.10:830/0
+
+ usernetworkinterface#UserNetworkInterface2:
+ type: tosca.nodes.UserNetworkInterface
+ requirements:
+ properties:
+ tenant: onlab
+ name: uni2
+ latlng: [37.773972, -122.431297]
+ cpe_id: netconf:192.168.56.20:830/0
+
+ usernetworkinterface#UserNetworkInterface3:
+ type: tosca.nodes.UserNetworkInterface
+ requirements:
+ properties:
+ tenant: onlab
+ name: uni3
+ latlng: [37.871637, -122.259750]
+ cpe_id: netconf:192.168.56.30:830/0
+
+# eline#testeline:
+# type: tosca.nodes.ELine
+# requirements:
+# properties:
+# name: testeline
+# connect_point_1_id: netconf:192.168.56.10:830/0
+# connect_point_2_id: netconf:192.168.56.20:830/0
+# vlanids: 100
+# cord_site_name: onlabT
+# bwp: gold
diff --git a/templates/vtn-service.yaml.j2 b/templates/vtn-service.yaml.j2
new file mode 100644
index 0000000..6a2dbd6
--- /dev/null
+++ b/templates/vtn-service.yaml.j2
@@ -0,0 +1,90 @@
+{#
+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
+
+imports:
+ - custom_types/onosapp.yaml
+ - custom_types/onosservice.yaml
+ - custom_types/serviceinstanceattribute.yaml
+ - custom_types/serviceinstancelink.yaml
+ - custom_types/vtnservice.yaml
+
+description: Configures the VTN ONOS service
+
+topology_template:
+ node_templates:
+
+ service#ONOS_CORD:
+ type: tosca.nodes.ONOSService
+ properties:
+ name: ONOS_CORD
+ kind: platform
+ no_container: true
+ rest_hostname: onos-cord.{{ site_suffix }}
+ rest_port: 8182
+
+ service#vtn:
+ type: tosca.nodes.VTNService
+ properties:
+ name: vtn
+ kind: platform
+ view_url: /admin/vtn/vtnservice/$id$/
+ privateGatewayMac: 00:00:00:00:00:01
+ localManagementIp: {{ management_network_ip }}
+ ovsdbPort: 6641
+ sshUser: root
+ sshKeyFile: /root/node_key
+ sshPort: 22
+ xosEndpoint: xos-chameleon.{{ site_suffix }}:{{ xos_chameleon_port }}
+ xosUser: {{ xos_admin_user }}
+ xosPassword: {{ xos_admin_pass }}
+ vtnAPIVersion: 2
+ controllerPort: onos-cord.{{ site_suffix }}:6654
+ resync: false
+
+ VTN_ONOS_app:
+ type: tosca.nodes.ONOSApp
+ requirements:
+ - owner:
+ node: service#ONOS_CORD
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: VTN_ONOS_app
+ install_dependencies: {{ onos_mavenrepo_url }}/repository/org/opencord/cord-config/{{ cord_config_app_version }}/cord-config-{{ cord_config_app_version }}.oar, {{ onos_mavenrepo_url }}/repository/org/opencord/vtn/{{ cord_vtn_app_version }}/vtn-{{ cord_vtn_app_version }}.oar
+ dependencies: org.onosproject.drivers, org.onosproject.drivers.ovsdb, org.onosproject.openflow-base, org.onosproject.ovsdb-base, org.onosproject.dhcp
+ # autogenerate: vtn-network-cfg
+
+ VTN_ONOS_app_autogenerate:
+ type: tosca.nodes.ServiceInstanceAttribute
+ requirements:
+ - service_instance:
+ node: VTN_ONOS_app
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: autogenerate
+ value: vtn-network-cfg
+
+ VTN_ONOS_app_VTN_Service:
+ type: tosca.nodes.ServiceInstanceLink
+ requirements:
+ - provider_service_instance:
+ node: VTN_ONOS_app
+ relationship: tosca.relationships.BelongsToOne
+ - subscriber_service:
+ node: service#vtn
+ relationship: tosca.relationships.BelongsToOne
+
diff --git a/templates/xos-gui-extensions.yml.j2 b/templates/xos-gui-extensions.yml.j2
new file mode 100644
index 0000000..f10c695
--- /dev/null
+++ b/templates/xos-gui-extensions.yml.j2
@@ -0,0 +1,37 @@
+
+{#
+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: Persist xos-sample-gui-extension
+
+imports:
+ - custom_types/xosguiextension.yaml
+
+topology_template:
+ node_templates:
+
+ # UI Extension
+{% for ext in enabled_gui_extensions %}
+ {{ext.name}}:
+ type: tosca.nodes.XOSGuiExtension
+ properties:
+ name: {{ext.name}}
+ files: /xos/extensions/{{ext.name}}/vendor.js, /xos/extensions/{{ext.name}}/app.js {% if ext.extra_files is defined %}{% for file in ext.extra_files%}, /xos/extensions/{{ext.name}}/{{file}} {% endfor %}{% endif %}
+
+{% endfor %}