From 3a85d8cededded1afb6d947f073f9ba0ebd1fb9e Mon Sep 17 00:00:00 2001 From: William Carroll Date: Mon, 27 Dec 2021 21:56:02 -0400 Subject: feat(wpcarro/terraform): Encode diogenes as terraform configuration Some reference commands for my future self (blog post forthcoming?): ```shell $ nix-shell -p google-cloud-sdk terraform $ gcloud auth application-default login # stateful $ terraform init $ terraform apply ``` What's left for feature parity? - Encode 100GB external disk as resource - Encode firewall as resource - Ensure marcus can SSH to instance Stretch goals: - Spin-up fully NixOS-configured instances Change-Id: If156a5b0a2a0f8bfdf2548a4b5f592a77409fcb5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4724 Reviewed-by: wpcarro Autosubmit: wpcarro Tested-by: BuildkiteCI --- users/wpcarro/terraform/.gitignore | 4 ++++ users/wpcarro/terraform/gcp.tf | 47 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 users/wpcarro/terraform/.gitignore create mode 100644 users/wpcarro/terraform/gcp.tf (limited to 'users/wpcarro/terraform') diff --git a/users/wpcarro/terraform/.gitignore b/users/wpcarro/terraform/.gitignore new file mode 100644 index 0000000000..f437e99d80 --- /dev/null +++ b/users/wpcarro/terraform/.gitignore @@ -0,0 +1,4 @@ +*.tfstate +*.tfstate.backup +.terraform.lock.hcl +.terraform/**/* \ No newline at end of file diff --git a/users/wpcarro/terraform/gcp.tf b/users/wpcarro/terraform/gcp.tf new file mode 100644 index 0000000000..f287e90e91 --- /dev/null +++ b/users/wpcarro/terraform/gcp.tf @@ -0,0 +1,47 @@ +provider "google" { + project = "wpcarros-infrastructure" + region = "us-central1" + zone = "us-central1-a" +} + +data "google_compute_default_service_account" "default" {} + +resource "google_compute_instance" "default" { + name = "diogenes-2" + machine_type = "e2-standard-2" + zone = "us-central1-a" + hostname = "diogenes.wpcarro.dev" + + tags = [ + "http-server", + "https-server", + "mosh-server", + "quassel-core", + ] + + boot_disk { + device_name = "boot" + + initialize_params { + size = 10 + image = "nixos-20-03" + } + } + + network_interface { + network = "default" + subnetwork = "default" + + access_config { + public_ptr_domain_name = "wpcarro.dev" + } + } + + metadata = { + enable-oslogin = "TRUE" + } + + service_account { + scopes = ["cloud-platform"] + } +} \ No newline at end of file -- cgit 1.4.1