blob: 792f15265012bc878eccd6911835d50e576d13bd [file] [log] [blame]
{{/* vim: set filetype=mustache: */}}
{{/*
Copyright 2019-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 "comac.onosTosca" -}}
tosca_definitions_version: tosca_simple_yaml_1_0
imports:
- custom_types/onosapp.yaml
- custom_types/onosservice.yaml
- custom_types/serviceinstanceattribute.yaml
description: Configures services in COMAC
topology_template:
node_templates:
service#onos:
type: tosca.nodes.ONOSService
properties:
name: onos
kind: data
rest_hostname: {{ .onosRestService | quote }}
rest_port: 8181
{{- if $.residentialService.enabled }}
onos_app#openflow-base:
type: tosca.nodes.ONOSApp
properties:
name: openflow-base
app_id: org.onosproject.openflow-base
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
onos_app#hostprovider:
type: tosca.nodes.ONOSApp
properties:
name: hostprovider
app_id: org.onosproject.hostprovider
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
# FOR ATT-Workflow --
onos_app#aaa:
type: tosca.nodes.ONOSApp
properties:
name: aaa
app_id: org.opencord.aaa
url: {{ .aaaAppUrl }}
version: {{ .aaaAppVersion }}
dependencies: org.opencord.sadis
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
# --
onos_app#olt:
type: tosca.nodes.ONOSApp
properties:
name: olt
app_id: org.opencord.olt
url: {{ .oltAppUrl }}
version: {{ .oltAppVersion }}
dependencies: org.opencord.sadis
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
onos_app#sadis:
type: tosca.nodes.ONOSApp
properties:
name: sadis
app_id: org.opencord.sadis
url: {{ .sadisAppUrl }}
version: {{ .sadisAppVersion }}
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
onos_app#dhcpl2relay:
type: tosca.nodes.ONOSApp
properties:
name: dhcpl2relay
app_id: org.opencord.dhcpl2relay
url: {{ .dhcpl2relayAppUrl }}
version: {{ .dhcpl2relayAppVersion }}
dependencies: org.opencord.sadis
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
onos_app#kafka:
type: tosca.nodes.ONOSApp
properties:
name: kafka
app_id: org.opencord.kafka
url: {{ .kafkaAppUrl }}
version: {{ .kafkaAppVersion }}
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
# CORD-Configuration
kafka-config-attr:
type: tosca.nodes.ServiceInstanceAttribute
properties:
name: /onos/v1/network/configuration/apps/org.opencord.kafka
value: >
{
"kafka" : {
"bootstrapServers" : {{ .kafkaService | quote }}
}
}
requirements:
- service_instance:
node: onos_app#kafka
relationship: tosca.relationships.BelongsToOne
sadis-config-attr:
type: tosca.nodes.ServiceInstanceAttribute
properties:
name: /onos/v1/network/configuration/apps/org.opencord.sadis
value: >
{
"sadis" : {
"integration" : {
"cache" : {
"maxsize" : 1000,
"ttl": "PT300S"
},
"url" : "http://sadis-service:8000/subscriber/%s"
}
},
"bandwidthprofile":{
"integration":{
"url": "http://sadis-service:8000/bandwidthprofiles/%s",
"cache":{
"enabled":true,
"maxsize":40,
"ttl":"PT1m"
}
}
}
}
requirements:
- service_instance:
node: onos_app#sadis
relationship: tosca.relationships.BelongsToOne
# FOR ATT-Workflow --
aaa-config-attr:
type: tosca.nodes.ServiceInstanceAttribute
properties:
name: /onos/v1/network/configuration/apps/org.opencord.aaa
value: >
{
"AAA" : {
"radiusConnectionType" : "socket",
"radiusHost" : "freeradius.voltha.svc.cluster.local",
"radiusServerPort" : "1812",
"radiusSecret" : "SECRET"
}
}
requirements:
- service_instance:
node: onos_app#aaa
relationship: tosca.relationships.BelongsToOne
olt-config-attr:
type: tosca.nodes.ServiceInstanceAttribute
properties:
name: /onos/v1/configuration/org.opencord.olt.impl.Olt?preset=true
value: >
{
"enableDhcpOnProvisioning" : true
}
requirements:
- service_instance:
node: onos_app#olt
relationship: tosca.relationships.BelongsToOne
# --
{{- end }}
onos_app#segmentrouting:
type: tosca.nodes.ONOSApp
properties:
name: org.onosproject.segmentrouting
app_id: org.onosproject.segmentrouting
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
onos_app#netcfghostprovider:
type: tosca.nodes.ONOSApp
properties:
name: org.onosproject.netcfghostprovider
app_id: org.onosproject.netcfghostprovider
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
onos_app#openflow:
type: tosca.nodes.ONOSApp
properties:
name: org.onosproject.openflow
app_id: org.onosproject.openflow
requirements:
- owner:
node: service#onos
relationship: tosca.relationships.BelongsToOne
{{- end -}}
{{- define "comac.basicFixturesTosca" -}}
tosca_definitions_version: tosca_simple_yaml_1_0
description: Some basic fixtures
imports:
- 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
# -----------------------------------------------------------------------------
# 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
{{- end -}}
{{- define "comac.serviceGraphTosca" -}}
tosca_definitions_version: tosca_simple_yaml_1_0
imports:
{{- if .Values.fabric.enabled }}
- custom_types/fabricservice.yaml
{{- end }}
- custom_types/mcordsubscriberservice.yaml
- custom_types/onosservice.yaml
{{- if .Values.vrouter.enabled }}
- custom_types/vrouterservice.yaml
{{- end }}
{{- if .Values.progran.enabled }}
- custom_types/progranservice.yaml
{{- end }}
{{- if .Values.residentialService.enabled }}
- custom_types/rcordservice.yaml
- custom_types/voltservice.yaml
- custom_types/fabriccrossconnectservice.yaml
- custom_types/attworkflowdriverservice.yaml
{{- end }}
- custom_types/servicegraphconstraint.yaml
- custom_types/servicedependency.yaml
- custom_types/service.yaml
description: COMAC service graph
topology_template:
node_templates:
service#onos:
type: tosca.nodes.ONOSService
properties:
name: onos
must-exist: true
{{ if .Values.fabric.enabled }}
service#fabric:
type: tosca.nodes.FabricService
properties:
name: fabric
must-exist: true
{{ end }}
{{ if .Values.vrouter.enabled }}
service#vrouter:
type: tosca.nodes.VRouterService
properties:
name: vrouter
must-exist: true
{{ end }}
service#mcord:
type: tosca.nodes.MCordSubscriberService
properties:
name: mcord
must-exist: true
{{ if .Values.progran.enabled }}
service#progran:
type: tosca.nodes.ProgranService
properties:
name: progran
must-exist: true
{{ end }}
{{- if .Values.residentialService.enabled }}
service#rcord:
type: tosca.nodes.RCORDService
properties:
name: rcord
must-exist: true
service#volt:
type: tosca.nodes.VOLTService
properties:
name: volt
must-exist: true
service#fabric-crossconnect:
type: tosca.nodes.FabricCrossconnectService
properties:
name: fabric-crossconnect
must-exist: true
# FOR ATT-Workflow --
service#att-workflow-driver:
type: tosca.nodes.AttWorkflowDriverService
properties:
name: att-workflow-driver
must-exist: true
# --
{{- end }}
service#omec-cp:
type: tosca.nodes.Service
properties:
name: omec-cp
service#omec-up:
type: tosca.nodes.Service
properties:
name: omec-up
service#cdn-local:
type: tosca.nodes.Service
properties:
name: cdn-local
service#cdn-remote:
type: tosca.nodes.Service
properties:
name: cdn-remote
{{ if .Values.fabric.enabled }}
service_dependency#onos-fabric_fabric:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#fabric
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#onos
relationship: tosca.relationships.BelongsToOne
{{ if .Values.vrouter.enabled }}
service_dependency#vrouter_fabric:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#vrouter
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#fabric
relationship: tosca.relationships.BelongsToOne
{{ end }}
{{ end }}
{{- if .Values.residentialService.enabled }}
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#onos_volt:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#volt
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#onos
relationship: tosca.relationships.BelongsToOne
service_dependency#volt_fabric-crossconnect:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#volt
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#fabric-crossconnect
relationship: tosca.relationships.BelongsToOne
service_dependency#onos_fabric-crossconnect:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#fabric-crossconnect
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#onos
relationship: tosca.relationships.BelongsToOne
# FOR ATT-Workflow --
service_dependency#workflow_volt:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#att-workflow-driver
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#volt
relationship: tosca.relationships.BelongsToOne
# --
{{- end }}
{{ if .Values.progran.enabled }}
service_dependency#mcord_progran:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#progran
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#mcord
relationship: tosca.relationships.BelongsToOne
service_dependency#progran_epc_cp:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#omec-cp
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#progran
relationship: tosca.relationships.BelongsToOne
service_dependency#progran_epc_up:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#omec-up
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#progran
relationship: tosca.relationships.BelongsToOne
{{ else }}
service_dependency#mcord_epc_cp:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#omec-cp
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#mcord
relationship: tosca.relationships.BelongsToOne
service_dependency#mcord_epc_up:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#omec-up
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#mcord
relationship: tosca.relationships.BelongsToOne
{{ end }}
service_dependency#epc_cp_epc_up:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#omec-up
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#omec-cp
relationship: tosca.relationships.BelongsToOne
service_dependency#epc_up_cdn_local:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#cdn-local
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#omec-up
relationship: tosca.relationships.BelongsToOne
service_dependency#cdn_local_cdn_remote:
type: tosca.nodes.ServiceDependency
properties:
connect_method: none
requirements:
- subscriber_service:
node: service#cdn-remote
relationship: tosca.relationships.BelongsToOne
- provider_service:
node: service#cdn-local
relationship: tosca.relationships.BelongsToOne
constraints:
type: tosca.nodes.ServiceGraphConstraint
properties:
constraints: '[["mcord", null, null, "rcord"], ["progran", null, "att-workflow-driver", "volt"], ["omec-cp", "omec-up", "onos", "fabric-crossconnect"], [null, "cdn-local", "fabric", null], [null, "cdn-remote", "vrouter", null]]'
{{- end -}}