---

# 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.

# TOSCA recipe for adding a sample R-CORD subscriber
#
# http POST $(minikube service xos-tosca --url)/run \
#  xos-username:admin@opencord.org xos-password:letmein \
#  @./openstack-instance-tosca.yaml

tosca_definitions_version: tosca_simple_yaml_1_0

imports:
  - custom_types/flavor.yaml
  - custom_types/image.yaml
  - custom_types/node.yaml
  - custom_types/instance.yaml
  - custom_types/slice.yaml
  - custom_types/site.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.small:
      type: tosca.nodes.Flavor
      properties:
        name: m1.small
        must-exist: true

    mysite:
      type: tosca.nodes.Site
      properties:
        name: mysite
        must-exist: true

    mysite_test:
      description: Test Slice
      type: tosca.nodes.Slice
      properties:
        name: mysite_test
      requirements:
        - site:
            node: mysite
            relationship: tosca.relationships.BelongsToOne

    compute1:
      type: tosca.nodes.Node
      properties:
        name: insert-node-hostname-here
        must-exist: true

    test_instance:
      description: Test Instance
      type: tosca.nodes.Instance
      properties:
        name: test_instance
      requirements:
        - image:
            node: Ubuntu-14.04
            relationship: tosca.relationships.BelongsToOne
        - flavor:
            node: m1.small
            relationship: tosca.relationships.BelongsToOne
        - slice:
            node: mysite_test
            relationship: tosca.relationships.BelongsToOne
        - node:
            node: compute1
            relationship: tosca.relationships.BelongsToOne
