teamcity.jinja (79 lines of code) (raw):

{% 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)