

{% set BASE_NAME = env['deployment'][:40] %}

{%- if not properties['domainName'] %}
  {%- set ENABLE_HTTPS = false %}
{%- else %}
  {%- set ENABLE_HTTPS = true %}
{%- endif %}

resources:
- name: database
  type: database.jinja
  properties:
    baseName: {{ BASE_NAME }}
    zone: {{ properties['zone'] }}
    size: {{ properties['installationSize'] }}

{%- if not properties['network'] %}
- name: network
  type: network.jinja
  properties:
    baseName: {{ BASE_NAME }}
    enableHttps: {{ ENABLE_HTTPS }}
{%- endif %}

{%- if not properties['serviceAccount'] %}
- name: service-account
  type: service-account.jinja
  properties:
    baseName: {{ BASE_NAME }}
{%- endif %}

{%- if properties['createStorageBucket'] %}
- name: storage
  type: storage.jinja
  properties:
    baseName: {{ BASE_NAME }}
    zone: {{ properties['zone'] }}
{%- endif %}

- name: vm
  type: virtual-machine.jinja
  properties:
    baseName: {{ BASE_NAME }}
    zone: {{ properties['zone'] }}
    teamcityVersion: {{ properties['version'] }}
    ipAddress: {{ properties['ipAddress'] }}
    enableHttps: {{ ENABLE_HTTPS }}
{%- if ENABLE_HTTPS %}
    domainName: {{ properties['domainName'] }}
    domainOwnerEmail: {{ properties['domainOwnerEmail'] }}
{%- endif %}
{%- if properties['network'] %}
    network: {{ properties['network'] }}
{%- else %}
    network: $(ref.network.name)
{%- endif %}
    subnetwork: {{ properties['subnetwork'] }}
    size: {{ properties['installationSize'] }}
{%- if properties['serviceAccount'] %}
    serviceAccount: {{ properties['serviceAccount'] }}
{%- else %}
    serviceAccount: $(ref.service-account.email)
{%- endif %}
    database:
      instance: $(ref.database.instance)
      name: $(ref.database.name)
      user: $(ref.database.user)
    waiter:
      name: $(ref.waiter.name)
      config: $(ref.waiter.config)

- name: waiter
  type: waiter.jinja
  properties:
    baseName: {{ BASE_NAME }}
    ipAddress: $(ref.vm.ip)
    enableHttps: {{ ENABLE_HTTPS }}

outputs:
- name: teamcityUrl
{%- if ENABLE_HTTPS %}
  value: https://{{ properties['domainName'] }}
{%- else %}
  value: http://$(ref.vm.ip)
{%- endif %}
- name: teamcityIpAddress
  value: $(ref.vm.ip)
