tosca_definitions_version: tosca_simple_yaml_1_0

imports:
   - custom_types/xos.yaml

description: openstack extensions to deployment, generated by platform-install

topology_template:
  node_templates:

# Images and flavors
{% for image in xos_images %}
    {{ image.name }}:
      type: tosca.nodes.Image
      properties:
         path: /opt/xos/images/{{ image.name }}.qcow2
         disk_format: QCOW2
         container_format: BARE

{% endfor %}

{% for flavor in deployment_flavors %}
    {{ flavor }}:
      type: tosca.nodes.Flavor

{% endfor %}

# Deployment - adds images/flavors to site defined in deployment.yaml
    {{ deployment_type }}:
      type: tosca.nodes.Deployment
      requirements:
{% for flavor in deployment_flavors %}
          - {{ flavor }}:
              node: {{ flavor }}
              relationship: tosca.relationships.SupportsFlavor
{% endfor %}

# OpenStack Controller
    {{ site_name }}_{{ deployment_type }}_openstack:
      type: tosca.nodes.Controller
      requirements:
        - deployment:
            node: {{ deployment_type }}
            relationship: tosca.relationships.ControllerDeployment
      properties:
          backend_type: OpenStack
          version: Kilo
          auth_url: { get_script_env: [ SELF, adminrc, OS_AUTH_URL, LOCAL_FILE] }
          admin_user: { get_script_env: [ SELF, adminrc, OS_USERNAME, LOCAL_FILE] }
          admin_password: { get_script_env: [ SELF, adminrc, OS_PASSWORD, LOCAL_FILE] }
          admin_tenant: { get_script_env: [ SELF, adminrc, OS_TENANT_NAME, LOCAL_FILE] }
          domain: Default
      artifacts:
          adminrc: /opt/cord_profile/admin-openrc.sh

# Site - adds openstack controller to site defined in deployment.yaml
    {{ site_name }}:
      type: tosca.nodes.Site
      properties:
          display_name: {{ site_humanname }}
          site_url: http://{{ site_name }}.opencloud.us/
          hosts_nodes: true
      requirements:
        - deployment:
            node: {{ deployment_type }}
            relationship: tosca.relationships.MemberOfDeployment
        - controller:
            node: {{ site_name }}_{{ deployment_type }}_openstack
            relationship: tosca.relationships.UsesController

