63 lines
1.4 KiB
Terraform
63 lines
1.4 KiB
Terraform
|
|
resource "google_compute_disk" "forgejo_data" {
|
||
|
|
name = "forgejo-data"
|
||
|
|
type = "pd-standard"
|
||
|
|
size = 20
|
||
|
|
zone = var.zone
|
||
|
|
|
||
|
|
lifecycle {
|
||
|
|
prevent_destroy = true
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
resource "google_compute_instance" "forgejo" {
|
||
|
|
name = "forgejo"
|
||
|
|
machine_type = "e2-micro"
|
||
|
|
zone = var.zone
|
||
|
|
tags = ["forgejo"]
|
||
|
|
|
||
|
|
boot_disk {
|
||
|
|
initialize_params {
|
||
|
|
image = "cos-cloud/cos-stable"
|
||
|
|
size = 10
|
||
|
|
type = "pd-standard"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
attached_disk {
|
||
|
|
source = google_compute_disk.forgejo_data.id
|
||
|
|
device_name = "forgejo-data"
|
||
|
|
}
|
||
|
|
|
||
|
|
network_interface {
|
||
|
|
network = "default"
|
||
|
|
access_config {
|
||
|
|
nat_ip = google_compute_address.forgejo.address
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
metadata = {
|
||
|
|
user-data = templatefile("${path.module}/../cloud-init/user-data.yaml.tpl", {
|
||
|
|
domain = var.domain
|
||
|
|
forgejo_image = var.forgejo_image
|
||
|
|
caddy_image = var.caddy_image
|
||
|
|
gcs_backup_bucket = google_storage_bucket.backups.name
|
||
|
|
project_id = var.project_id
|
||
|
|
})
|
||
|
|
google-logging-enabled = "true"
|
||
|
|
cos-update-strategy = "update_enabled"
|
||
|
|
enable-oslogin = "TRUE"
|
||
|
|
}
|
||
|
|
|
||
|
|
service_account {
|
||
|
|
email = google_service_account.forgejo.email
|
||
|
|
scopes = ["cloud-platform"]
|
||
|
|
}
|
||
|
|
|
||
|
|
allow_stopping_for_update = true
|
||
|
|
|
||
|
|
depends_on = [
|
||
|
|
google_secret_manager_secret_iam_member.forgejo_secrets,
|
||
|
|
google_storage_bucket_iam_member.backups_writer,
|
||
|
|
]
|
||
|
|
}
|