database.jinja (64 lines of code) (raw):

{% set BASE_NAME = properties['baseName'] + '-' + env['name'] %} {% set REGION = properties['zone'][:-2] %} {% set TEAMCITY_DB = 'teamcitydb' %} {% set TEAMCITY_USER = 'teamcity' %} {% if properties['size'] == 'large' %} {% set DB_TIER = 'db-n1-standard-2' %} {% else %} {% set DB_TIER = 'db-n1-standard-1' %} {% endif %} resources: - name: {{ BASE_NAME }} type: gcp-types/sqladmin-v1beta4:instances properties: region: {{ REGION }} settings: tier: {{ DB_TIER }} backupConfiguration: binaryLogEnabled: true enabled: true databaseFlags: - name: long_query_time value: 5 - name: slow_query_log value: 1 - name: character_set_server value: utf8 - name: max_allowed_packet value: 16777216 - name: create-user type: gcp-types/sqladmin-v1beta4:users metadata: dependsOn: - {{ BASE_NAME }} properties: name: {{ TEAMCITY_USER }} instance: $(ref.{{ BASE_NAME }}.name) host: "cloudsqlproxy~%" - name: create-database type: gcp-types/sqladmin-v1beta4:databases metadata: dependsOn: - create-user properties: name: {{ TEAMCITY_DB }} instance: $(ref.{{ BASE_NAME }}.name) charset: utf8 - name: delete-root-user action: gcp-types/sqladmin-v1beta4:sql.users.delete metadata: runtimePolicy: - CREATE dependsOn: - create-database properties: name: root instance: $(ref.{{ BASE_NAME }}.name) host: "%" outputs: - name: instance value: $(ref.{{ BASE_NAME }}.name) - name: name value: $(ref.create-database.name) - name: user value: {{ TEAMCITY_USER }}