---

# 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/deployment.yaml
  - custom_types/flavor.yaml
  - custom_types/image.yaml
  - custom_types/node.yaml
  - custom_types/instance.yaml
  - custom_types/slice.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"
        must-exist: true

    m1.small:
      type: tosca.nodes.Flavor
      properties:
        name: m1.small
        must-exist: true

    MyDeployment:
      type: tosca.nodes.Deployment
      properties:
        name: MyDeployment
        must-exist: true

    mysite_test:
      description: Test Slice
      type: tosca.nodes.Slice
      properties:
        name: mysite_test
        must-exist: true

    compute1:
      type: tosca.nodes.Node
      properties:
        name: compute1
        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
        - deployment:
            node: MyDeployment
            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

