blob: 0c485d8840ebdbfbec5d8b3349084aada04d5fff [file] [log] [blame]
{{/* 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 "exampleservice.serviceTosca" -}}
tosca_definitions_version: tosca_simple_yaml_1_0
imports:
- custom_types/slice.yaml
- custom_types/site.yaml
- custom_types/image.yaml
- custom_types/flavor.yaml
- custom_types/network.yaml
- custom_types/networktemplate.yaml
- custom_types/networkslice.yaml
- custom_types/openstackservice.yaml
- custom_types/trustdomain.yaml
- custom_types/exampleservice.yaml
- custom_types/exampleserviceinstance.yaml
description: configure exampleservice
topology_template:
node_templates:
service#openstack:
type: tosca.nodes.OpenStackService
properties:
name: "OpenStack"
must-exist: true
untrusted_trustdomain:
type: tosca.nodes.TrustDomain
properties:
name: "untrusted-openstack"
requirements:
- owner:
node: service#openstack
relationship: tosca.relationships.BelongsToOne
# site, image, fully created in deployment.yaml
mysite:
type: tosca.nodes.Site
properties:
must-exist: true
name: {{ .cordSiteName }}
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"
container_format: "BARE"
disk_format: "QCOW2"
path: "https://github.com/opencord/platform-install/releases/download/vms/trusty-server-cloudimg-amd64-disk1.img.20170201"
# private network template, fully created somewhere else
private:
type: tosca.nodes.NetworkTemplate
properties:
must-exist: true
name: Private
# management networks, fully created in management-net.yaml
management_network:
type: tosca.nodes.Network
properties:
must-exist: true
name: management
# public network, fully created somewhere else
public_network:
type: tosca.nodes.Network
properties:
must-exist: true
name: public
exampleservice_network:
type: tosca.nodes.Network
properties:
name: exampleservice_network
labels: exampleservice_private_network
requirements:
- template:
node: private
relationship: tosca.relationships.BelongsToOne
- owner:
node: exampleservice_slice
relationship: tosca.relationships.BelongsToOne
# ExampleService Slices
exampleservice_slice:
description: Example Service Slice
type: tosca.nodes.Slice
properties:
name: exampleservice
default_isolation: vm
network: noauto
requirements:
- site:
node: mysite
relationship: tosca.relationships.BelongsToOne
- service:
node: exampleservice
relationship: tosca.relationships.BelongsToOne
- default_image:
node: trusty-server-multi-nic
relationship: tosca.relationships.BelongsToOne
- default_flavor:
node: m1.small
relationship: tosca.relationships.BelongsToOne
- trust_domain:
node: untrusted_trustdomain
relationship: tosca.relationships.BelongsToOne
# ExampleService NetworkSlices
exampleservice_slice_management_network:
type: tosca.nodes.NetworkSlice
requirements:
- network:
node: management_network
relationship: tosca.relationships.BelongsToOne
- slice:
node: exampleservice_slice
relationship: tosca.relationships.BelongsToOne
exampleservice_slice_public_network:
type: tosca.nodes.NetworkSlice
requirements:
- network:
node: public_network
relationship: tosca.relationships.BelongsToOne
- slice:
node: exampleservice_slice
relationship: tosca.relationships.BelongsToOne
exampleservice_slice_exampleservice_network:
type: tosca.nodes.NetworkSlice
requirements:
- network:
node: exampleservice_network
relationship: tosca.relationships.BelongsToOne
- slice:
node: exampleservice_slice
relationship: tosca.relationships.BelongsToOne
exampleservice:
type: tosca.nodes.ExampleService
properties:
name: exampleservice
public_key: {{ .publicKey | quote }}
private_key_fn: /opt/xos/services/exampleservice/keys/id_rsa
service_message: hello
exampletenant1:
type: tosca.nodes.ExampleServiceInstance
properties:
name: exampletenant1
tenant_message: world
requirements:
- owner:
node: exampleservice
relationship: tosca.relationships.BelongsToOne
{{- end -}}