79 lines
1.8 KiB
HCL
79 lines
1.8 KiB
HCL
provider "google-beta" {
|
|
region = "${var.region}"
|
|
project = "${var.project}"
|
|
}
|
|
|
|
# Use Terraform 0.10.x so that we can take advantage of Terraform GCP functionality as a separate provider via
|
|
# https://github.com/terraform-providers/terraform-provider-google
|
|
terraform {
|
|
required_version = ">= 0.10.3"
|
|
}
|
|
|
|
variable "region" {
|
|
default = "europe-north1"
|
|
}
|
|
|
|
variable "project" {
|
|
default = "dev-sandbox-228703"
|
|
}
|
|
|
|
|
|
variable "zone" {
|
|
default = "europe-north1-a"
|
|
}
|
|
|
|
variable "mysql_version" {
|
|
default = "MYSQL_5_6"
|
|
}
|
|
|
|
resource "random_id" "name" {
|
|
byte_length = 2
|
|
}
|
|
|
|
resource "google_compute_network" "private_network" {
|
|
provider = "google-beta"
|
|
name = "private-network"
|
|
}
|
|
|
|
resource "google_compute_global_address" "private_ip_address" {
|
|
provider = "google-beta"
|
|
name = "private-ip-address"
|
|
purpose = "VPC_PEERING"
|
|
address_type = "INTERNAL"
|
|
prefix_length = 16
|
|
network = "${google_compute_network.private_network.self_link}"
|
|
}
|
|
|
|
resource "google_service_networking_connection" "private_vpc_connection" {
|
|
provider = "google-beta"
|
|
network = "${google_compute_network.private_network.self_link}"
|
|
service = "servicenetworking.googleapis.com"
|
|
reserved_peering_ranges = ["${google_compute_global_address.private_ip_address.name}"]
|
|
}
|
|
|
|
|
|
module "mysql-db" {
|
|
source = "../../modules/cloud-sql"
|
|
name = "example-mysql-${random_id.name.hex}"
|
|
region = "${var.region}"
|
|
engine = "${var.mysql_version}"
|
|
project = "${var.project}"
|
|
machine_type = "db-f1-micro"
|
|
|
|
ip_configuration = [
|
|
{
|
|
ipv4_enabled = "true"
|
|
private_network = "${google_compute_network.private_network.self_link}"
|
|
}
|
|
]
|
|
|
|
# https://cloud.google.com/sql/docs/mysql/flags
|
|
flags = [
|
|
]
|
|
}
|
|
|
|
output "mysql_conn" {
|
|
value = "${var.project}:${var.region}:${module.mysql-db.instance_name}"
|
|
}
|
|
|