Skip to content

terraform-google-modules/terraform-google-sql-db

Repository files navigation

terraform-google-sql

terraform-google-sql makes it easy to create Google CloudSQL instance and implement high availability settings. This module consists of the following submodules:

See more details in each module's README.

Compatibility

This module is meant for use with Terraform 1.3+ and tested using Terraform 1.6+. If you find incompatibilities using Terraform >=1.13, please open an issue.

Upgrading

The current version is 20.X. The following guides are available to assist with upgrades:

Root module

The root module has been deprecated. Please switch to using one of the submodules.

Requirements

Installation Dependencies

Configure a Service Account

In order to execute this module you must have a Service Account with the following:

Roles

  • Cloud SQL Admin: roles/cloudsql.admin
  • Compute Network Admin: roles/compute.networkAdmin

Enable APIs

In order to operate with the Service Account you must activate the following APIs on the project where the Service Account was created:

  • Cloud SQL Admin API: sqladmin.googleapis.com

In order to use Private Service Access, required for using Private IPs, you must activate the following APIs on the project where your VPC resides:

  • Cloud SQL Admin API: sqladmin.googleapis.com
  • Compute Engine API: compute.googleapis.com
  • Service Networking API: servicenetworking.googleapis.com
  • Cloud Resource Manager API: cloudresourcemanager.googleapis.com

Service Account Credentials

You can pass the service account credentials into this module by setting the following environment variables:

  • GOOGLE_CREDENTIALS
  • GOOGLE_CLOUD_KEYFILE_JSON
  • GCLOUD_KEYFILE_JSON

See more details.

Provision Instructions

This module has no root configuration. A module with no root configuration cannot be used directly.

Copy and paste into your Terraform configuration, insert the variables, and run terraform init :

For MySQL :

module "sql-db" {
  source  = "GoogleCloudPlatform/sql-db/google//modules/mysql"
  version = "~> 23.0"
}

or for PostgreSQL :

module "sql-db" {
  source  = "GoogleCloudPlatform/sql-db/google//modules/postgresql"
  version = "~> 22.0"
}

or for MSSQL Server :

module "sql-db" {
  source  = "GoogleCloudPlatform/sql-db/google//modules/mssql"
  version = "~> 22.0"
}

Contributing

Refer to the contribution guidelines for information on contributing to this module.