tosca_definitions_version: tosca_simple_yaml_1_0

description: >
    * Create a new deployment, controller, and site.
    * Add a SiteDeployment from the site to the deployment using the controller.
    * Create a Slice in the Site, with one Instance

imports:
   - custom_types/xos.yaml

topology_template:
  node_templates:
    newdeployment:
      type: tosca.nodes.Deployment

    newcontroller:
      type: tosca.nodes.Controller
      requirements:
          - deployment:
              node: newdeployment
              relationship: tosca.relationships.ControllerDeployment
      properties:
           backend_type: openstack
           version: v1.23.4
           auth_url: http://foo/
           admin_user: johndoe
           admin_password: letmeout
           admin_tenant: 12345678
           domain: mydomain
           rabbit_host: rabhost
           rabbit_user: rabuser
           rabbit_password: rabpw

    newsite:
      type: tosca.nodes.Site
      properties:
          display_name: some new site
          site_url: http://newsite.org/
      requirements:
          - deployment:
               node: newdeployment
               relationship: tosca.relationships.SiteDeployment
               requirements:
                   - controller:
                       node: newcontroller
                       relationship: tosca.relationships.UsesController

    newsite_tosca:
      type: tosca.nodes.Slice
      requirements:
          - slice:
                node: newsite
                relationship: tosca.relationships.MemberOfSite

    my_server:
      type: tosca.nodes.Compute
      capabilities:
        # Host container properties
        host:
         properties:
           num_cpus: 1
           disk_size: 10 GB
           mem_size: 4 MB
        # Guest Operating System properties
        os:
          properties:
            # host Operating System image properties
            architecture: x86_64
            type: linux
            distribution: rhel
            version: 6.5
      requirements:
          - slice:
                node: newsite_tosca
                relationship: tosca.relationships.MemberOfSlice
