The traditional way
Two consoles, or a folder of HCL and a state file.
-
Find the credentials
A Hetzner token in one password manager entry, a Google service account JSON in another. Export both into the right env vars, in the right shell.
-
Write it out
Two providers, two resource vocabularies, two sets of naming rules for the same idea.
provider "hcloud" { token = var.hcloud_token } provider "google" { project = var.gcp_project } resource "hcloud_server" "web" { server_type = "cx22" image = "ubuntu-24.04" location = "nbg1" } resource "google_compute_instance" "api" { machine_type = "e2-medium" zone = "us-central1-a" # ...and a boot_disk block, and a # network_interface block, and... } -
Mind the state file
It has to live somewhere shared, locked, and backed up — before the second person on the team touches anything.
-
Plan in a terminal
Read a wall of +/− lines and decide whether the diff you just read is the diff that will run.
$ terraform plan Plan: 3 to add, 0 to change, 0 to destroy. -
Apply, then go look
Open both consoles to confirm what actually happened. The regions are named differently on each, so the answer arrives in two dialects.
-
Draw the diagram afterwards
In a separate tool. It's accurate until the first person changes something by hand — usually the same afternoon.