---

# 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
    Cirros-0.3.5:
      type: tosca.nodes.Image
      properties:
        name: "Cirros 0.3.5 64-bit"
        must-exist: true

    m1.tiny:
      type: tosca.nodes.Flavor
      properties:
        name: m1.tiny
        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: Cirros-0.3.5
            relationship: tosca.relationships.BelongsToOne
        - deployment:
            node: MyDeployment
            relationship: tosca.relationships.BelongsToOne
        - flavor:
            node: m1.tiny
            relationship: tosca.relationships.BelongsToOne
        - slice:
            node: mysite_test
            relationship: tosca.relationships.BelongsToOne
        - node:
            node: compute1
            relationship: tosca.relationships.BelongsToOne

