blob: df38901bab038b5476109b6daf0f62e37e84cfb4 [file] [log] [blame]
{#
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: TOSCA example of adding a service and service instance
imports:
- custom_types/slice.yaml
- custom_types/site.yaml
- custom_types/image.yaml
- custom_types/flavor.yaml
- custom_types/network.yaml
- custom_types/networkslice.yaml
- custom_types/templateservice.yaml
- custom_types/templateserviceinstance.yaml
topology_template:
node_templates:
# site, image, fully created in deployment.yaml
{{ site_name }}:
type: tosca.nodes.Site
properties:
must-exist: true
name: {{ site_name }}
m1.small:
type: tosca.nodes.Flavor
properties:
name: m1.small
must-exist: true
trusty-server-multi-nic:
type: tosca.nodes.Image
properties:
name: trusty-server-multi-nic
# management networks, fully created in management-net.yaml
management:
type: tosca.nodes.Network
properties:
must-exist: true
name: management
{% if use_management_hosts %}
management_hosts:
type: tosca.nodes.Network
properties:
must-exist: true
name: management_hosts
{% endif %}
# public network, fully created in public-net.yaml
public:
type: tosca.nodes.Network
properties:
must-exist: true
name: public
# CORD Services
service#template:
type: tosca.nodes.TemplateService
properties:
name: template
public_key: {{ lookup('file', config_cord_profile_dir + '/key_import/templateservice_rsa.pub') }}
private_key_fn: /opt/xos/services/templateservice/keys/templateservice_rsa
# CORD Slices
{{ site_name }}_template:
description: Template Slice
type: tosca.nodes.Slice
properties:
name: {{ site_name }}_template
default_isolation: vm
network: noauto
requirements:
- site:
node: mysite
relationship: tosca.relationships.BelongsToOne
- service:
node: service#template
relationship: tosca.relationships.BelongsToOne
- default_image:
node: trusty-server-multi-nic
relationship: tosca.relationships.BelongsToOne
- default_flavor:
node: m1.small
relationship: tosca.relationships.BelongsToOne
# CORD Service Instances
serviceinstance#template:
type: tosca.nodes.TemplateServiceInstance
properties:
name: template_instance
requirements:
- owner:
node: service#template
relationship: tosca.relationships.BelongsToOne
# CORD NetworkSlices
template_slice_management_network:
type: tosca.nodes.NetworkSlice
requirements:
- network:
node: management
relationship: tosca.relationships.BelongsToOne
- slice:
node: {{ site_name }}_template
relationship: tosca.relationships.BelongsToOne
template_slice_public_network:
type: tosca.nodes.NetworkSlice
requirements:
- network:
node: public
relationship: tosca.relationships.BelongsToOne
- slice:
node: {{ site_name }}_template
relationship: tosca.relationships.BelongsToOne