tosca_definitions_version: tosca_simple_yaml_1_0

description: Onboard the exampleservice

imports:
   - custom_types/xos.yaml

topology_template:
  node_templates:

    # UI Container
    xos-spa-gui:
      type: tosca.nodes.Component
      properties:
        image: {{ deploy_docker_registry }}xosproject/xos-gui:{{ deploy_docker_tag }}
        ports: 4000:4000

    # UI App Config
    /var/www/dist/app.config.js:
      type: tosca.nodes.ComponentVolume
      properties:
          host_path: {{ cord_profile_dir }}/app.config.js
          read_only: false
      requirements:
          - xos:
             node: xos-spa-gui
             relationship: tosca.relationships.VolumeOfComponent

    # UI Style Config
    /var/www/dist/style.config.js:
      type: tosca.nodes.ComponentVolume
      properties:
          host_path: {{ cord_profile_dir }}/style.config.js
          read_only: false
      requirements:
          - xos:
             node: xos-spa-gui
             relationship: tosca.relationships.VolumeOfComponent

    # Mounting volume from volume container
    gui-extensions-store:
      type: tosca.nodes.ComponentVolumeContainer
      properties:
          container: gui-extensions-store
      requirements:
          - xos:
             node: xos-spa-gui
             relationship: tosca.relationships.VolumeContainerOfComponent

    gui-to-chameleon:
      type: tosca.nodes.ComponentLink
      properties:
          container: xos_chameleon
          alias: xos-chameleon
          kind: internal
      requirements:
          - xos:
             node: xos-spa-gui
             relationship: tosca.relationships.LinkOfComponent

    gui-to-gw:
      type: tosca.nodes.ComponentLink
      properties:
          container: xos-rest-gateway
          alias: xos-rest-gw
          kind: internal
      requirements:
          - xos:
             node: xos-spa-gui
             relationship: tosca.relationships.LinkOfComponent
