geoserver-vm/main.tf (55 lines of code) (raw):
terraform {
backend "gcs" {
bucket = "geoserver-vm-tfstate"
}
}
provider "google" {
project = "bigquery-geotools"
region = "us-central1"
zone = "us-central1-a"
}
data "google_compute_default_service_account" "default" {
}
module "gce-container" {
source = "terraform-google-modules/container-vm/google"
version = "~> 2.0"
container = {
image="gcr.io/bigquery-geotools/geoserver"
}
}
resource "google_compute_instance" "geoserver_vm" {
name = "geoserver-vm"
machine_type = "e2-standard-4"
boot_disk {
initialize_params {
image = module.gce-container.source_image
}
}
network_interface {
network = "default"
access_config {
}
}
metadata = {
gce-container-declaration = module.gce-container.metadata_value
}
labels = {
container-vm = module.gce-container.vm_container_label
}
service_account {
email = data.google_compute_default_service_account.default.email
scopes = [
"https://www.googleapis.com/auth/cloud-platform",
]
}
tags = ["tomcat-server"]
}
resource "google_compute_firewall" "geoserver_firewall_rule" {
name = "geoserver-rule"
network = "default"
allow {
protocol = "tcp"
ports = ["8080"]
}
source_tags = ["tomcat-server"]
}