Merge "Fix odd naming of rcord synchronizer container"
diff --git a/examples/test-images.yaml b/examples/api-test-images.yaml
similarity index 100%
rename from examples/test-images.yaml
rename to examples/api-test-images.yaml
diff --git a/examples/candidate-tag-values.yaml b/examples/api-test-values.yaml
similarity index 81%
rename from examples/candidate-tag-values.yaml
rename to examples/api-test-values.yaml
index 68d0d86..dc43f9b 100644
--- a/examples/candidate-tag-values.yaml
+++ b/examples/api-test-values.yaml
@@ -13,28 +13,31 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Set all image tags to "candidate" to use imagebuilder's local images
-# Also set imagePullPolicy to IfNotPresent, so these images will be used.
+# Values file for API tests
+#
+# The test process is to install minikube directly on a machine with docker
+# installed (`--vm-driver=none`) then use imagebuilder to build images with
+# candidate tags into that local docker registry, and run the tests.
-# in xos-core, rcord-lite, onos and voltha charts
+# shared by xos-core, rcord-lite, etc.
imagePullPolicy: 'IfNotPresent'
-# in xos-core chart
+# xos core
+xos-gui:
+ enabled: false
+
xos_coreImage: 'xosproject/xos-core:candidate'
xos_chameleonImage: 'xosproject/chameleon:candidate'
xos_toscaImage: 'xosproject/xos-tosca:candidate'
xos_api_testerImage: 'xosproject/xos-api-tester:candidate'
-# in xos-gui sub-chart required by xos-core chart
-xos-gui:
- xos_guiImage: 'xosproject/xos-gui:candidate'
- xos_wsImage: 'xosproject/xos-ws:candidate'
- imagePullPolicy: 'IfNotPresent'
-
-# in rcord-lite chart
+# rcord-lite
rcord_synchronizerImage: "xosproject/rcord-synchronizer:candidate"
-# in service charts
+# xossh
+xosshImage: 'xosproject/xos-client:candidate'
+
+# XOS service charts
addressmanager:
addressmanager_synchronizerImage: "xosproject/addressmanager-synchronizer:candidate"
imagePullPolicy: 'IfNotPresent'
diff --git a/examples/candidate-tag-values.yaml b/examples/image-tag-candidate.yaml
similarity index 76%
copy from examples/candidate-tag-values.yaml
copy to examples/image-tag-candidate.yaml
index 68d0d86..8b7f3b4 100644
--- a/examples/candidate-tag-values.yaml
+++ b/examples/image-tag-candidate.yaml
@@ -13,11 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Set all image tags to "candidate" to use imagebuilder's local images
-# Also set imagePullPolicy to IfNotPresent, so these images will be used.
-
-# in xos-core, rcord-lite, onos and voltha charts
-imagePullPolicy: 'IfNotPresent'
+# Set all image tags to "candidate" to use locally built images
# in xos-core chart
xos_coreImage: 'xosproject/xos-core:candidate'
@@ -29,7 +25,6 @@
xos-gui:
xos_guiImage: 'xosproject/xos-gui:candidate'
xos_wsImage: 'xosproject/xos-ws:candidate'
- imagePullPolicy: 'IfNotPresent'
# in rcord-lite chart
rcord_synchronizerImage: "xosproject/rcord-synchronizer:candidate"
@@ -37,26 +32,18 @@
# in service charts
addressmanager:
addressmanager_synchronizerImage: "xosproject/addressmanager-synchronizer:candidate"
- imagePullPolicy: 'IfNotPresent'
fabric:
fabric_synchronizerImage: "xosproject/fabric-synchronizer:candidate"
- imagePullPolicy: 'IfNotPresent'
onos-service:
onos_synchronizerImage: "xosproject/onos-synchronizer:candidate"
- imagePullPolicy: 'IfNotPresent'
volt:
volt_synchronizerImage: "xosproject/volt-synchronizer:candidate"
- imagePullPolicy: 'IfNotPresent'
vsg-hw:
vsg_hw_synchronizerImage: "xosproject/vsg-hw-synchronizer:candidate"
- imagePullPolicy: 'IfNotPresent'
vrouter:
vrouter_synchronizerImage: "xosproject/vrouter-synchronizer:candidate"
- imagePullPolicy: 'IfNotPresent'
kubernetes:
kubernetes_synchronizerImage: "xosproject/kubernetes-synchronizer:candidate"
- imagePullPolicy: 'IfNotPresent'
simpleexampleservice:
simpleexampleservice_synchronizerImage: "xosproject/simpleexampleservice-synchronizer:candidate"
- imagePullPolicy: 'IfNotPresent'
diff --git a/examples/if-not-present-values.yaml b/examples/imagePullPolicy-IfNotPresent.yaml
similarity index 100%
rename from examples/if-not-present-values.yaml
rename to examples/imagePullPolicy-IfNotPresent.yaml
diff --git a/examples/test-values.yaml b/examples/kafka-single.yaml
similarity index 74%
rename from examples/test-values.yaml
rename to examples/kafka-single.yaml
index 9127993..31aa36c 100644
--- a/examples/test-values.yaml
+++ b/examples/kafka-single.yaml
@@ -13,8 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# API test values file
+# for development purposes deploy a single instance of kafka
-xos-gui:
- enabled: false
-
+replicas: 1
+zookeeper:
+ servers: 1 # NOTE this differs from the zookeper documentation as the kafka chart is still referencing zookeper 0.5.0
\ No newline at end of file
diff --git a/xos-profiles/base-openstack/templates/_helpers.tpl b/xos-profiles/base-openstack/templates/_helpers.tpl
index 66a8e2d..bd4fcce 100644
--- a/xos-profiles/base-openstack/templates/_helpers.tpl
+++ b/xos-profiles/base-openstack/templates/_helpers.tpl
@@ -45,20 +45,3 @@
{{- define "base-openstack.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
-
-{{/*
-The R-CORD synchronizer loads R-CORD-specific models into the core
-*/}}
-
-{{- define "rcord.serviceConfig" -}}
-name: rcord
-accessor:
- username: {{ .Values.xosAdminUser | quote }}
- password: {{ .Values.xosAdminPassword | quote }}
- endpoint: xos-core:50051
-dependency_graph: "/opt/xos/synchronizers/rcord/model-deps"
-sys_dir: "/opt/xos/synchronizers/rcord/sys"
-models_dir: "/opt/xos/synchronizers/rcord/models"
-model_policies_dir: "/opt/xos/synchronizers/rcord/model_policies"
-{{- end -}}
-
diff --git a/xos-profiles/base-openstack/templates/_tosca.tpl b/xos-profiles/base-openstack/templates/_tosca.tpl
new file mode 100644
index 0000000..962047c
--- /dev/null
+++ b/xos-profiles/base-openstack/templates/_tosca.tpl
@@ -0,0 +1,150 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "base-openstack.fixtureTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/deployment.yaml
+ - custom_types/site.yaml
+ - custom_types/networktemplate.yaml
+ - custom_types/network.yaml
+ - custom_types/networkslice.yaml
+ - custom_types/sitedeployment.yaml
+
+description: set up site and deployment and link them
+
+topology_template:
+ node_templates:
+
+ {{ .Values.cordSiteName }}:
+ type: tosca.nodes.Site
+ properties:
+ name: {{ .Values.cordSiteName }}
+ site_url: http://mysite.opencord.us/
+ hosts_nodes: true
+
+ {{ .Values.cordDeploymentName }}:
+ type: tosca.nodes.Deployment
+ properties:
+ name: {{ .Values.cordDeploymentName }}
+{{- end -}}
+
+{{- define "base-openstack.serviceGraphTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/onosapp.yaml
+ - custom_types/servicegraphconstraint.yaml
+ - custom_types/serviceinstancelink.yaml
+ - custom_types/vtnservice.yaml
+
+description: Configures the base-openstack service graph
+
+topology_template:
+ node_templates:
+
+ service#vtn:
+ type: tosca.nodes.VTNService
+ properties:
+ name: vtn
+ must-exist: true
+ resync: false
+
+ VTN_ONOS_app:
+ type: tosca.nodes.ONOSApp
+ properties:
+ name: VTN_ONOS_app
+ must-exist: true
+
+ 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
+
+ constraints:
+ type: tosca.nodes.ServiceGraphConstraint
+ properties:
+ constraints: '[]'
+{{- end -}}
+
+{{- define "base-openstack.testTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/flavor.yaml
+ - custom_types/image.yaml
+ - custom_types/site.yaml
+ - custom_types/network.yaml
+ - custom_types/networkslice.yaml
+ - custom_types/slice.yaml
+
+description: for testing basic openstack functionality
+
+topology_template:
+ node_templates:
+
+ Ubuntu-14.04:
+ type: tosca.nodes.Image
+ properties:
+ name: "Ubuntu 14.04 64-bit"
+ disk_format: QCOW2
+ container_format: BARE
+ path: https://github.com/opencord/platform-install/releases/download/vms/trusty-server-cloudimg-amd64-disk1.img.20170201
+
+ {{ .Values.cordSiteName }}:
+ type: tosca.nodes.Site
+ properties:
+ name: {{ .Values.cordSiteName }}
+ must-exist: true
+
+# Define a test slice
+ {{ .Values.cordSiteName }}_test:
+ description: Test Slice
+ type: tosca.nodes.Slice
+ properties:
+ # network: noauto
+ name: {{ .Values.cordSiteName }}_test
+ requirements:
+ - site:
+ node: {{ .Values.cordSiteName }}
+ relationship: tosca.relationships.BelongsToOne
+ - default_image:
+ node: Ubuntu-14.04
+ relationship: tosca.relationships.BelongsToOne
+
+ management:
+ type: tosca.nodes.Network
+ properties:
+ name: management
+ must-exist: true
+
+# Connect test slice to management net
+ networkslice#management_to_{{ .Values.cordSiteName }}_test:
+ type: tosca.nodes.NetworkSlice
+ requirements:
+ - network:
+ node: management
+ relationship: tosca.relationships.BelongsToOne
+ - slice:
+ node: {{ .Values.cordSiteName }}_test
+ relationship: tosca.relationships.BelongsToOne
+{{- end -}}
\ No newline at end of file
diff --git a/xos-profiles/base-openstack/templates/tosca-configmap.yaml b/xos-profiles/base-openstack/templates/tosca-configmap.yaml
index 3d7edf8..6d4448e 100644
--- a/xos-profiles/base-openstack/templates/tosca-configmap.yaml
+++ b/xos-profiles/base-openstack/templates/tosca-configmap.yaml
@@ -19,10 +19,22 @@
metadata:
name: base-openstack-tosca
data:
- 010-openstack.yaml: |
-{{ toYaml .Values.toscaRecipes.openstack | indent 4 }}
- 020-openstack-compute.yaml: |
+ 010-fixtures.yaml: |
+{{ include "base-openstack.fixtureTosca" . | indent 4 }}
+ 020-openstack-controller.yaml: |
+{{ include "openstack.controllerTosca" .Values | indent 4 }}
+ 030-openstack-flavors.yaml: |
+{{ include "openstack.flavorTosca" .Values.openstack | indent 4 }}
+ 040-vtn-service.yaml: |
+{{ include "vtn-service.serviceTosca" (index .Values "vtn-service") | indent 4 }}
+ 050-openstack-compute.yaml: |
{{ toYaml .Values.toscaRecipes.openstackCompute | indent 4 }}
- 030-vtn-service.yaml: |
-{{ toYaml .Values.toscaRecipes.vtnService | indent 4 }}
+ 060-openstack-networks.yaml: |
+{{ include "openstack.networkTosca" .Values | indent 4 }}
+ 070-onos-service-vtn-app.yaml: |
+{{ include "onos-service.vtnAppTosca" (index .Values "onos-service") | indent 4 }}
+ 300-service-graph.yaml: |
+{{ include "base-openstack.serviceGraphTosca" . | indent 4 }}
+ 400-openstack-test.yaml: |
+{{ include "base-openstack.testTosca" . | indent 4 }}
diff --git a/xos-profiles/base-openstack/values.yaml b/xos-profiles/base-openstack/values.yaml
index cc02e32..dbf6a9a 100644
--- a/xos-profiles/base-openstack/values.yaml
+++ b/xos-profiles/base-openstack/values.yaml
@@ -26,190 +26,19 @@
httpieImage: "clue/httpie:latest"
-xosAdminUser: &adminuser "admin@opencord.org"
-xosAdminPassword: &adminpass "letmein"
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
+
+cordSiteName: &site "mysite"
+cordDeploymentName: &deployment "mydeployment"
+
+keystoneAdminUser: "admin"
+keystoneAdminPassword: "password"
+keystoneAdminTenant: "admin"
+keystoneDomain: "Default"
# TOSCA recipes for the tosca-loader
toscaRecipes:
- openstack:
- tosca_definitions_version: tosca_simple_yaml_1_0
-
- imports:
- - custom_types/controller.yaml
- - custom_types/controllersite.yaml
- - custom_types/deployment.yaml
- - custom_types/flavor.yaml
- - custom_types/image.yaml
- - custom_types/site.yaml
- - custom_types/networktemplate.yaml
- - custom_types/network.yaml
- - custom_types/networkslice.yaml
- - custom_types/slice.yaml
- - custom_types/sitedeployment.yaml
-
- description: openstack extensions to deployment
-
- topology_template:
- node_templates:
-
- # Images and flavors
- Ubuntu-14.04:
- type: tosca.nodes.Image
- properties:
- name: "Ubuntu 14.04 64-bit"
- disk_format: QCOW2
- container_format: BARE
- path: https://github.com/opencord/platform-install/releases/download/vms/trusty-server-cloudimg-amd64-disk1.img.20170201
-
- m1.tiny:
- type: tosca.nodes.Flavor
- properties:
- name: m1.tiny
-
- m1.small:
- type: tosca.nodes.Flavor
- properties:
- name: m1.small
-
- m1.medium:
- type: tosca.nodes.Flavor
- properties:
- name: m1.medium
-
- m1.large:
- type: tosca.nodes.Flavor
- properties:
- name: m1.large
-
- m1.xlarge:
- type: tosca.nodes.Flavor
- properties:
- name: m1.xlarge
-
- MyDeployment:
- type: tosca.nodes.Deployment
- properties:
- name: MyDeployment
-
- # OpenStack Controller
- mysite_MyDeployment_openstack:
- type: tosca.nodes.Controller
- requirements:
- - deployment:
- node: MyDeployment
- relationship: tosca.relationships.BelongsToOne
- properties:
- name: mysite_MyDeployment_openstack
- backend_type: OpenStack
- version: Newton
- auth_url: http://keystone.openstack.svc.cluster.local/v3
- admin_user: admin
- admin_password: password
- admin_tenant: admin
- domain: Default
-
- # Site - adds openstack controller to site defined in deployment.yaml
- mysite:
- type: tosca.nodes.Site
- properties:
- name: mysite
- must-exist: true
- site_url: http://mysite.opencloud.us/
- hosts_nodes: true
-
- mysite_deployment_MyDeployment:
- type: tosca.nodes.SiteDeployment
- requirements:
- - site:
- node: mysite
- relationship: tosca.relationships.BelongsToOne
- - deployment:
- node: MyDeployment
- relationship: tosca.relationships.BelongsToOne
- - controller:
- node: mysite_MyDeployment_openstack
- relationship: tosca.relationships.BelongsToOne
-
- mysite_openstack_controller:
- type: tosca.nodes.ControllerSite
- requirements:
- - site:
- node: mysite
- relationship: tosca.relationships.BelongsToOne
- - controller:
- node: mysite_MyDeployment_openstack
- relationship: tosca.relationships.BelongsToOne
-
- # For creating a test VM
- mysite_test:
- description: Test Slice
- type: tosca.nodes.Slice
- properties:
- # network: noauto
- name: mysite_test
- requirements:
- - site:
- node: mysite
- relationship: tosca.relationships.BelongsToOne
- - default_image:
- node: Ubuntu-14.04
- relationship: tosca.relationships.BelongsToOne
-
- # For private networks (e.g., per-slice)
- private_template:
- type: tosca.nodes.NetworkTemplate
- properties:
- name: Private
- visibility: private
- translation: none
- vtn_kind: PRIVATE
-
- # management (vtn: MANAGEMENT_LOCAL) 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: 172.27.0.0/24
- permit_all_slices: true
- requirements:
- - template:
- node: management_template
- relationship: tosca.relationships.BelongsToOne
- - owner:
- node: slice#mysite_management
- relationship: tosca.relationships.BelongsToOne
-
- # Slice to own management networks
- slice#mysite_management:
- description: This slice exists solely to own the management network(s)
- type: tosca.nodes.Slice
- properties:
- network: noauto
- name: mysite_management
- requirements:
- - site:
- node: mysite
- relationship: tosca.relationships.BelongsToOne
-
- # Connect mysite_test to management net
- networkslice#management_to_mysite_test:
- type: tosca.nodes.NetworkSlice
- requirements:
- - network:
- node: management
- relationship: tosca.relationships.BelongsToOne
- - slice:
- node: mysite_test
- relationship: tosca.relationships.BelongsToOne
openstackCompute:
tosca_definitions_version: tosca_simple_yaml_1_0
@@ -225,26 +54,26 @@
node_templates:
# Site/Deployment, fully defined in deployment.yaml
- mysite:
+ site:
type: tosca.nodes.Site
properties:
- name: mysite
+ name: *site
must-exist: true
- MyDeployment:
+ deployment:
type: tosca.nodes.Deployment
properties:
- name: MyDeployment
+ name: *deployment
must-exist: true
- mysite_MyDeployment:
+ site_deployment:
type: tosca.nodes.SiteDeployment
requirements:
- site:
- node: mysite
+ node: site
relationship: tosca.relationships.BelongsToOne
- deployment:
- node: MyDeployment
+ node: deployment
relationship: tosca.relationships.BelongsToOne
# OpenStack compute nodes
@@ -258,7 +87,7 @@
dataPlaneIp: 10.6.1.1/24
requirements:
- site_deployment:
- node: mysite_MyDeployment
+ node: site_deployment
relationship: tosca.relationships.BelongsToOne
compute1:
@@ -270,7 +99,7 @@
dataPlaneIp: 10.6.1.17/24
requirements:
- site_deployment:
- node: mysite_MyDeployment
+ node: site_deployment
relationship: tosca.relationships.BelongsToOne
compute2:
@@ -282,79 +111,5 @@
dataPlaneIp: 10.6.1.18/24
requirements:
- site_deployment:
- node: mysite_MyDeployment
+ node: site_deployment
relationship: tosca.relationships.BelongsToOne
-
- vtnService:
- 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-ui
- rest_port: 8181
-
- 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: 172.27.0.1/24
- ovsdbPort: 6641
- sshUser: vagrant
- sshKeyFile: /root/node_key
- sshPort: 22
- xosEndpoint: xos-chameleon:9101
- xosUser: *adminuser
- xosPassword: *adminpass
- vtnAPIVersion: 2
- controllerPort: onos-cord-openflow:6653
- 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: https://repo.maven.apache.org/maven2/org/opencord/cord-config/1.3.1/cord-config-1.3.1.oar, https://repo.maven.apache.org/maven2/org/opencord/vtn/1.5.0/vtn-1.5.0.oar
- dependencies: org.onosproject.drivers, org.onosproject.drivers.ovsdb, org.onosproject.openflow-base, org.onosproject.ovsdb-base, org.onosproject.dhcp
-
- 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/xos-profiles/rcord-lite/templates/_tosca.tpl b/xos-profiles/rcord-lite/templates/_tosca.tpl
new file mode 100644
index 0000000..c9985ae
--- /dev/null
+++ b/xos-profiles/rcord-lite/templates/_tosca.tpl
@@ -0,0 +1,237 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "rcord-lite.basicFixturesTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+description: Some basic fixtures
+imports:
+ - custom_types/siterole.yaml
+ - custom_types/slicerole.yaml
+ - custom_types/networkparametertype.yaml
+ - custom_types/networktemplate.yaml
+ - custom_types/deployment.yaml
+topology_template:
+ node_templates:
+
+# -----------------------------------------------------------------------------
+# Network Parameter Types
+# -----------------------------------------------------------------------------
+ s_tag:
+ type: tosca.nodes.NetworkParameterType
+ properties:
+ name: s_tag
+ c_tag:
+ type: tosca.nodes.NetworkParameterType
+ properties:
+ name: c_tag
+ next_hop:
+ type: tosca.nodes.NetworkParameterType
+ properties:
+ name: next_hop
+ device:
+ type: tosca.nodes.NetworkParameterType
+ properties:
+ name: device
+ bridge:
+ type: tosca.nodes.NetworkParameterType
+ properties:
+ name: bridge
+ neutron_port_name:
+ type: tosca.nodes.NetworkParameterType
+ properties:
+ name: neutron_port_name
+
+# ----------------------------------------------------------------------------
+# Roles
+# ----------------------------------------------------------------------------
+ siterole#admin:
+ type: tosca.nodes.SiteRole
+ properties:
+ role: admin
+ siterole#pi:
+ type: tosca.nodes.SiteRole
+ properties:
+ role: pi
+ siterole#tech:
+ type: tosca.nodes.SiteRole
+ properties:
+ role: tech
+ slicerole#admin:
+ type: tosca.nodes.SliceRole
+ properties:
+ role: admin
+ slicerole#access:
+ type: tosca.nodes.SliceRole
+ properties:
+ role: access
+
+# -----------------------------------------------------------------------------
+# Network Templates
+# -----------------------------------------------------------------------------
+ Private:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ name: Private
+ visibility: private
+ translation: none
+
+ Public shared IPv4:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ name: Public shared IPv4
+ visibility: private
+ translation: NAT
+ shared_network_name: nat-net
+
+ Public dedicated IPv4:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ name: Public dedicated IPv4
+ visibility: public
+ translation: none
+ shared_network_name: ext-net
+
+# -----------------------------------------------------------------------------
+# Deployment
+# -----------------------------------------------------------------------------
+ MyDeployment:
+ type: tosca.nodes.Deployment
+ properties:
+ name: MyDeployment
+{{- end -}}
+
+
+{{- define "rcord-lite.serviceGraphTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+ - custom_types/fabricservice.yaml
+ - custom_types/onosservice.yaml
+ - custom_types/rcordservice.yaml
+ - custom_types/vrouterservice.yaml
+ - custom_types/voltservice.yaml
+ - custom_types/vsghwservice.yaml
+ - custom_types/servicedependency.yaml
+ - custom_types/servicegraphconstraint.yaml
+description: rcord-lite service graph
+topology_template:
+ node_templates:
+
+# These services must be defined before loading the graph
+
+ service#ONOS_Fabric:
+ type: tosca.nodes.ONOSService
+ properties:
+ name: ONOS_Fabric
+ must-exist: true
+
+ service#fabric:
+ type: tosca.nodes.FabricService
+ properties:
+ name: fabric
+ must-exist: true
+
+ service#rcord:
+ type: tosca.nodes.RCORDService
+ properties:
+ name: rcord
+ must-exist: true
+
+ service#vrouter:
+ type: tosca.nodes.VRouterService
+ properties:
+ name: vrouter
+ must-exist: true
+
+ service#volt:
+ type: tosca.nodes.VOLTService
+ properties:
+ name: volt
+ must-exist: true
+
+ service#vsg-hw:
+ type: tosca.nodes.VSGHWService
+ properties:
+ name: vsg-hw
+ must-exist: true
+
+# The rcord-lite service graph
+
+ service_dependency#onos-fabric_fabric:
+ type: tosca.nodes.ServiceDependency
+ properties:
+ connect_method: None
+ requirements:
+ - subscriber_service:
+ node: service#ONOS_Fabric
+ relationship: tosca.relationships.BelongsToOne
+ - provider_service:
+ node: service#fabric
+ relationship: tosca.relationships.BelongsToOne
+
+ service_dependency#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
+
+ service_dependency#fabric_vrouter:
+ type: tosca.nodes.ServiceDependency
+ properties:
+ connect_method: None
+ requirements:
+ - subscriber_service:
+ node: service#fabric
+ relationship: tosca.relationships.BelongsToOne
+ - provider_service:
+ node: service#vrouter
+ relationship: tosca.relationships.BelongsToOne
+
+ service_dependency#volt_vsg-hw:
+ type: tosca.nodes.ServiceDependency
+ properties:
+ connect_method: None
+ requirements:
+ - subscriber_service:
+ node: service#volt
+ relationship: tosca.relationships.BelongsToOne
+ - provider_service:
+ node: service#vsg-hw
+ relationship: tosca.relationships.BelongsToOne
+
+ service_dependency#onos_fabric_vsg-hw:
+ type: tosca.nodes.ServiceDependency
+ properties:
+ connect_method: None
+ requirements:
+ - subscriber_service:
+ node: service#vsg-hw
+ relationship: tosca.relationships.BelongsToOne
+ - provider_service:
+ node: service#ONOS_Fabric
+ relationship: tosca.relationships.BelongsToOne
+
+ constraints:
+ type: tosca.nodes.ServiceGraphConstraint
+ properties:
+ constraints: '[[null, "rcord"], [null, "volt"], ["ONOS_Fabric", "vsg-hw"], ["fabric", null], ["vrouter", null]]'
+{{- end -}}
+
diff --git a/xos-profiles/rcord-lite/templates/tosca-configmap.yaml b/xos-profiles/rcord-lite/templates/tosca-configmap.yaml
index f39acb3..e4a5f40 100644
--- a/xos-profiles/rcord-lite/templates/tosca-configmap.yaml
+++ b/xos-profiles/rcord-lite/templates/tosca-configmap.yaml
@@ -20,12 +20,18 @@
name: rcord-lite-tosca
data:
010-fixtures.yaml: |
-{{ toYaml .Values.toscaRecipes.fixtures | indent 4 }}
- 020-deployment.yaml: |
-{{ toYaml .Values.toscaRecipes.deployment | indent 4 }}
- 030-fabric-service.yaml: |
-{{ toYaml .Values.toscaRecipes.fabricService | indent 4 }}
- 040-cord-services.yaml: |
-{{ toYaml .Values.toscaRecipes.cordServices | indent 4 }}
- 050-service-graph-constraints.yaml: |
-{{ toYaml .Values.toscaRecipes.serviceGraphConstraints | indent 4 }}
+{{ include "rcord-lite.basicFixturesTosca" . | indent 4 }}
+ 020-rcord-subscriber-service.yaml: |
+{{ include "rcord.serviceTosca" .Values.rcord | indent 4 }}
+ 030-volt-service.yaml: |
+{{ include "volt.serviceTosca" .Values.volt | indent 4 }}
+ 040-vsg-hw-service.yaml: |
+{{ include "vsg-hw.serviceTosca" (index .Values "vsg-hw") | indent 4 }}
+ 050-vrouter-service.yaml: |
+{{ include "vrouter.serviceTosca" .Values.vrouter | indent 4 }}
+ 060-onos-service-fabric.yaml: |
+{{ include "onos-service.fabricAppTosca" (index .Values "onos-service") | indent 4 }}
+ 070-fabric-service.yaml: |
+{{ include "fabric.serviceTosca" .Values.fabric | indent 4 }}
+ 300-service-graph.yaml: |
+{{ include "rcord-lite.serviceGraphTosca" . | indent 4 }}
diff --git a/xos-profiles/rcord-lite/values.yaml b/xos-profiles/rcord-lite/values.yaml
index 116d41f..3427e09 100644
--- a/xos-profiles/rcord-lite/values.yaml
+++ b/xos-profiles/rcord-lite/values.yaml
@@ -30,265 +30,3 @@
xosAdminUser: "admin@opencord.org"
xosAdminPassword: "letmein"
-# TOSCA recipes for the tosca-loader
-toscaRecipes:
- fixtures:
- tosca_definitions_version: tosca_simple_yaml_1_0
- description: Some basic fixtures
- imports:
- - custom_types/siterole.yaml
- - custom_types/slicerole.yaml
- - custom_types/networkparametertype.yaml
- - custom_types/networktemplate.yaml
- topology_template:
- node_templates:
- # -----------------------------------------------------------------------------
- # Network Parameter Types
- # -----------------------------------------------------------------------------
- s_tag:
- type: tosca.nodes.NetworkParameterType
- properties:
- name: s_tag
- c_tag:
- type: tosca.nodes.NetworkParameterType
- properties:
- name: c_tag
- next_hop:
- type: tosca.nodes.NetworkParameterType
- properties:
- name: next_hop
- device:
- type: tosca.nodes.NetworkParameterType
- properties:
- name: device
- bridge:
- type: tosca.nodes.NetworkParameterType
- properties:
- name: bridge
- neutron_port_name:
- type: tosca.nodes.NetworkParameterType
- properties:
- name: neutron_port_name
- # ----------------------------------------------------------------------------
- # Roles
- # ----------------------------------------------------------------------------
- siterole#admin:
- type: tosca.nodes.SiteRole
- properties:
- role: admin
- siterole#pi:
- type: tosca.nodes.SiteRole
- properties:
- role: pi
- siterole#tech:
- type: tosca.nodes.SiteRole
- properties:
- role: tech
- slicerole#admin:
- type: tosca.nodes.SliceRole
- properties:
- role: admin
- slicerole#access:
- type: tosca.nodes.SliceRole
- properties:
- role: access
- # -----------------------------------------------------------------------------
- # Network Templates
- # -----------------------------------------------------------------------------
- Private:
- type: tosca.nodes.NetworkTemplate
- properties:
- name: Private
- visibility: private
- translation: none
- Public shared IPv4:
- type: tosca.nodes.NetworkTemplate
- properties:
- name: Public shared IPv4
- visibility: private
- translation: NAT
- shared_network_name: nat-net
- Public dedicated IPv4:
- type: tosca.nodes.NetworkTemplate
- properties:
- name: Public dedicated IPv4
- visibility: public
- translation: none
- shared_network_name: ext-net
-
- deployment:
- tosca_definitions_version: tosca_simple_yaml_1_0
- imports:
- - custom_types/deployment.yaml
- description: deployment config, generated by platform-install
- topology_template:
- node_templates:
- MyDeployment:
- type: tosca.nodes.Deployment
- properties:
- name: MyDeployment
-
- fabricService:
- tosca_definitions_version: tosca_simple_yaml_1_0
- imports:
- - custom_types/fabricservice.yaml
- - custom_types/onosapp.yaml
- - custom_types/onosservice.yaml
- - custom_types/serviceattribute.yaml
- - custom_types/servicedependency.yaml
- - custom_types/serviceinstancelink.yaml
- description: fabric services, generated by rcord profile
- topology_template:
- node_templates:
- service#ONOS_Fabric:
- type: tosca.nodes.ONOSService
- properties:
- name: ONOS_Fabric
- kind: platform
- no_container: true
- rest_hostname: onos-fabric-ui
- rest_port: 8181
- 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, org.onosproject.vrouter
- service_dependency#onos-fabric_fabric:
- type: tosca.nodes.ServiceDependency
- properties:
- connect_method: None
- requirements:
- - subscriber_service:
- node: service#ONOS_Fabric
- relationship: tosca.relationships.BelongsToOne
- - provider_service:
- node: service#fabric
- relationship: tosca.relationships.BelongsToOne
-
- cordServices:
- tosca_definitions_version: tosca_simple_yaml_1_0
- description: Set up VOLT, AddressManager, and RCORD services
- imports:
- - custom_types/fabricservice.yaml
- - custom_types/image.yaml
- - custom_types/kubernetesservice.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/rcordservice.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/vsghwservice.yaml
- topology_template:
- node_templates:
- service#ONOS_Fabric:
- type: tosca.nodes.ONOSService
- properties:
- name: ONOS_Fabric
- must-exist: true
- service#fabric:
- type: tosca.nodes.FabricService
- properties:
- name: fabric
- must-exist: true
- service#rcord:
- type: tosca.nodes.RCORDService
- 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
- service#kubernetes:
- type: tosca.nodes.KubernetesService
- properties:
- name: kubernetes
- service#volt:
- type: tosca.nodes.VOLTService
- properties:
- name: volt
- voltha_url: voltha.voltha.svc.cluster.local
- voltha_port: 8882
- onos_voltha_url: onos-voltha-ui.voltha.svc.cluster.local
- onos_voltha_port: 8181
- onos_voltha_user: karaf
- onos_voltha_pass: karaf
- service#vsg-hw:
- type: tosca.nodes.VSGHWService
- properties:
- name: vsg-hw
- service#vrouter:
- type: tosca.nodes.VRouterService
- properties:
- name: vrouter
- kind: rcord
- service_dependency#fabric_vrouter:
- type: tosca.nodes.ServiceDependency
- properties:
- connect_method: None
- requirements:
- - subscriber_service:
- node: service#fabric
- relationship: tosca.relationships.BelongsToOne
- - provider_service:
- node: service#vrouter
- relationship: tosca.relationships.BelongsToOne
- volt_vsg-hw:
- type: tosca.nodes.ServiceDependency
- properties:
- connect_method: None
- requirements:
- - subscriber_service:
- node: service#volt
- relationship: tosca.relationships.BelongsToOne
- - provider_service:
- node: service#vsg-hw
- relationship: tosca.relationships.BelongsToOne
- onos_fabric_vsg-hw:
- type: tosca.nodes.ServiceDependency
- properties:
- connect_method: None
- requirements:
- - subscriber_service:
- node: service#vsg-hw
- relationship: tosca.relationships.BelongsToOne
- - provider_service:
- node: service#ONOS_Fabric
- relationship: tosca.relationships.BelongsToOne
-
- serviceGraphConstraints:
- 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: '[[null, "rcord"], [null, "volt"], ["ONOS_Fabric", "vsg-hw"], ["fabric", null], ["vrouter", null]]'
diff --git a/xos-services/fabric/templates/_tosca.tpl b/xos-services/fabric/templates/_tosca.tpl
new file mode 100644
index 0000000..09f3810
--- /dev/null
+++ b/xos-services/fabric/templates/_tosca.tpl
@@ -0,0 +1,30 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "fabric.serviceTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+description: Set up Fabric service
+imports:
+ - custom_types/fabricservice.yaml
+
+topology_template:
+ node_templates:
+ service#fabric:
+ type: tosca.nodes.FabricService
+ properties:
+ name: fabric
+ kind: platform
+{{- end -}}
diff --git a/xos-services/onos-service/templates/_tosca.tpl b/xos-services/onos-service/templates/_tosca.tpl
new file mode 100644
index 0000000..67438b4
--- /dev/null
+++ b/xos-services/onos-service/templates/_tosca.tpl
@@ -0,0 +1,87 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "onos-service.fabricAppTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+ - custom_types/onosapp.yaml
+ - custom_types/onosservice.yaml
+description: ONOS service and app for fabric
+topology_template:
+ node_templates:
+ service#ONOS_Fabric:
+ type: tosca.nodes.ONOSService
+ properties:
+ name: ONOS_Fabric
+ kind: platform
+ no_container: true
+ rest_hostname: onos-fabric-ui
+ rest_port: 8181
+
+ 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, org.onosproject.vrouter
+{{- end -}}
+
+{{- define "onos-service.vtnAppTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/onosapp.yaml
+ - custom_types/onosservice.yaml
+ - custom_types/serviceinstanceattribute.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-ui
+ rest_port: 8181
+
+ VTN_ONOS_app:
+ type: tosca.nodes.ONOSApp
+ requirements:
+ - owner:
+ node: service#ONOS_CORD
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: VTN_ONOS_app
+ install_dependencies: https://repo.maven.apache.org/maven2/org/opencord/cord-config/1.3.1/cord-config-1.3.1.oar, https://repo.maven.apache.org/maven2/org/opencord/vtn/1.5.0/vtn-1.5.0.oar
+ dependencies: org.onosproject.drivers, org.onosproject.drivers.ovsdb, org.onosproject.openflow-base, org.onosproject.ovsdb-base, org.onosproject.dhcp
+
+ 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
+{{- end -}}
diff --git a/xos-services/openstack/templates/_helpers.tpl b/xos-services/openstack/templates/_helpers.tpl
index d0d413a..db369dd 100644
--- a/xos-services/openstack/templates/_helpers.tpl
+++ b/xos-services/openstack/templates/_helpers.tpl
@@ -45,7 +45,6 @@
{{- define "openstack.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
-
{{- define "openstack.serviceConfig" -}}
name: openstack-synchronizer
accessor:
diff --git a/xos-services/openstack/templates/_tosca.tpl b/xos-services/openstack/templates/_tosca.tpl
new file mode 100644
index 0000000..a2fdd94
--- /dev/null
+++ b/xos-services/openstack/templates/_tosca.tpl
@@ -0,0 +1,185 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "openstack.flavorTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/flavor.yaml
+
+description: openstack flavor models
+
+topology_template:
+ node_templates:
+
+ m1.tiny:
+ type: tosca.nodes.Flavor
+ properties:
+ name: m1.tiny
+
+ m1.small:
+ type: tosca.nodes.Flavor
+ properties:
+ name: m1.small
+
+ m1.medium:
+ type: tosca.nodes.Flavor
+ properties:
+ name: m1.medium
+
+ m1.large:
+ type: tosca.nodes.Flavor
+ properties:
+ name: m1.large
+
+ m1.xlarge:
+ type: tosca.nodes.Flavor
+ properties:
+ name: m1.xlarge
+{{- end -}}
+
+{{- define "openstack.networkTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/network.yaml
+ - custom_types/networktemplate.yaml
+ - custom_types/site.yaml
+ - custom_types/slice.yaml
+
+description: openstack flavor models
+
+topology_template:
+ node_templates:
+
+ {{ .cordSiteName }}:
+ type: tosca.nodes.Site
+ properties:
+ name: {{ .cordSiteName }}
+ must-exist: true
+
+# For private networks (e.g., per-slice)
+ private_template:
+ type: tosca.nodes.NetworkTemplate
+ properties:
+ name: Private
+ visibility: private
+ translation: none
+ vtn_kind: PRIVATE
+
+# management (vtn: MANAGEMENT_LOCAL) 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: 172.27.0.0/24
+ permit_all_slices: true
+ requirements:
+ - template:
+ node: management_template
+ relationship: tosca.relationships.BelongsToOne
+ - owner:
+ node: slice#{{ .cordSiteName }}_management
+ relationship: tosca.relationships.BelongsToOne
+
+# Slice to own management networks
+ slice#{{ .cordSiteName }}_management:
+ description: This slice exists solely to own the management network(s)
+ type: tosca.nodes.Slice
+ properties:
+ network: noauto
+ name: {{ .cordSiteName }}_management
+ requirements:
+ - site:
+ node: {{ .cordSiteName }}
+ relationship: tosca.relationships.BelongsToOne
+{{- end -}}
+
+{{- define "openstack.controllerTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/controller.yaml
+ - custom_types/controllersite.yaml
+ - custom_types/deployment.yaml
+ - custom_types/site.yaml
+ - custom_types/sitedeployment.yaml
+
+description: openstack controller models
+
+topology_template:
+ node_templates:
+
+ {{ .cordSiteName }}:
+ type: tosca.nodes.Site
+ properties:
+ name: {{ .cordSiteName }}
+ must-exist: true
+
+ {{ .cordDeploymentName }}:
+ type: tosca.nodes.Deployment
+ properties:
+ name: {{ .cordDeploymentName }}
+ must-exist: true
+
+ {{ .cordSiteName }}_{{ .cordDeploymentName }}_openstack:
+ type: tosca.nodes.Controller
+ requirements:
+ - deployment:
+ node: {{ .cordDeploymentName }}
+ relationship: tosca.relationships.BelongsToOne
+ properties:
+ name: {{ .cordSiteName }}_{{ .cordDeploymentName }}_openstack
+ backend_type: OpenStack
+ version: Newton
+ auth_url: http://keystone.openstack.svc.cluster.local/v3
+ admin_user: {{ .keystoneAdminUser }}
+ admin_password: {{ .keystoneAdminPassword }}
+ admin_tenant: {{ .keystoneAdminTenant }}
+ domain: {{ .keystoneDomain }}
+
+ {{ .cordSiteName }}_deployment_{{ .cordDeploymentName }}:
+ type: tosca.nodes.SiteDeployment
+ requirements:
+ - site:
+ node: {{ .cordSiteName }}
+ relationship: tosca.relationships.BelongsToOne
+ - deployment:
+ node: {{ .cordDeploymentName }}
+ relationship: tosca.relationships.BelongsToOne
+ - controller:
+ node: {{ .cordSiteName }}_{{ .cordDeploymentName }}_openstack
+ relationship: tosca.relationships.BelongsToOne
+
+ {{ .cordSiteName }}_openstack_controller:
+ type: tosca.nodes.ControllerSite
+ requirements:
+ - site:
+ node: {{ .cordSiteName }}
+ relationship: tosca.relationships.BelongsToOne
+ - controller:
+ node: {{ .cordSiteName }}_{{ .cordDeploymentName }}_openstack
+ relationship: tosca.relationships.BelongsToOne
+{{- end -}}
diff --git a/xos-services/rcord/templates/_tosca.tpl b/xos-services/rcord/templates/_tosca.tpl
new file mode 100644
index 0000000..846837b
--- /dev/null
+++ b/xos-services/rcord/templates/_tosca.tpl
@@ -0,0 +1,28 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "rcord.serviceTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+ - custom_types/rcordservice.yaml
+description: R-CORD service TOSCA
+topology_template:
+ node_templates:
+ service#rcord:
+ type: tosca.nodes.RCORDService
+ properties:
+ name: rcord
+{{- end -}}
diff --git a/xos-services/volt/templates/_tosca.tpl b/xos-services/volt/templates/_tosca.tpl
new file mode 100644
index 0000000..fffdab1
--- /dev/null
+++ b/xos-services/volt/templates/_tosca.tpl
@@ -0,0 +1,35 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "volt.serviceTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+description: Set up VOLT service
+imports:
+ - custom_types/voltservice.yaml
+
+topology_template:
+ node_templates:
+ service#volt:
+ type: tosca.nodes.VOLTService
+ properties:
+ name: volt
+ voltha_url: voltha.voltha.svc.cluster.local
+ voltha_port: 8882
+ onos_voltha_url: onos-voltha-ui.voltha.svc.cluster.local
+ onos_voltha_port: 8181
+ onos_voltha_user: karaf
+ onos_voltha_pass: karaf
+{{- end -}}
diff --git a/xos-services/vrouter/templates/_tosca.tpl b/xos-services/vrouter/templates/_tosca.tpl
new file mode 100644
index 0000000..7dce612
--- /dev/null
+++ b/xos-services/vrouter/templates/_tosca.tpl
@@ -0,0 +1,30 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "vrouter.serviceTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+description: Set up VRouter service
+imports:
+ - custom_types/vrouterservice.yaml
+
+topology_template:
+ node_templates:
+ service#vrouter:
+ type: tosca.nodes.VRouterService
+ properties:
+ name: vrouter
+ kind: rcord
+{{- end -}}
diff --git a/xos-services/vsg-hw/templates/_tosca.tpl b/xos-services/vsg-hw/templates/_tosca.tpl
new file mode 100644
index 0000000..d5d84be
--- /dev/null
+++ b/xos-services/vsg-hw/templates/_tosca.tpl
@@ -0,0 +1,29 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "vsg-hw.serviceTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+description: Set up VSG-HW service
+imports:
+ - custom_types/vsghwservice.yaml
+
+topology_template:
+ node_templates:
+ service#vsg-hw:
+ type: tosca.nodes.VSGHWService
+ properties:
+ name: vsg-hw
+{{- end -}}
diff --git a/xos-services/vtn-service/templates/_tosca.tpl b/xos-services/vtn-service/templates/_tosca.tpl
new file mode 100644
index 0000000..9edc27e
--- /dev/null
+++ b/xos-services/vtn-service/templates/_tosca.tpl
@@ -0,0 +1,46 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Copyright 2018-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.
+*/}}
+{{- define "vtn-service.serviceTosca" -}}
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - custom_types/vtnservice.yaml
+
+description: Configures the VTN ONOS service
+
+topology_template:
+ node_templates:
+
+ 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: 172.27.0.1/24
+ ovsdbPort: 6641
+ sshUser: vagrant
+ sshKeyFile: /root/node_key
+ sshPort: 22
+ xosEndpoint: xos-chameleon:9101
+ xosUser: {{ .xosAdminUser }}
+ xosPassword: {{ .xosAdminPassword }}
+ vtnAPIVersion: 2
+ controllerPort: onos-cord-openflow:6653
+ resync: false
+{{- end -}}