terraform { required_providers { hcloud = { source = "hetznercloud/hcloud" version = "~> 1.45" } ovh = { source = "ovh/ovh" version = "~> 0.48" } postgresql = { source = "cyrilgdn/postgresql" version = "~> 1.23" } scaleway = { source = "scaleway/scaleway" version = "~> 2.43" } tailscale = { source = "tailscale/tailscale" version = "~> 0.16" } } backend "s3" { bucket = var.backend_bucket access_key = var.backend_access_key secret_key = var.backend_secret_key key = "terraform.tfstate" region = var.backend_region encrypt = true endpoints = { s3 = var.backend_endpoint } # Disable AWS-specific features skip_credentials_validation = true skip_region_validation = true skip_requesting_account_id = true skip_s3_checksum = true } } provider "hcloud" { token = "${var.hcloud_token}" } provider "ovh" { endpoint = "ovh-eu" application_key = "${var.ovh_application_key}" application_secret = "${var.ovh_application_secret}" consumer_key = "${var.ovh_consumer_key}" } provider "postgresql" { host = "${var.postgresql_host}" port = "${var.postgresql_port}" database = "postgres" username = "${var.postgresql_username}" password = "${var.postgresql_password}" sslmode = "verify-full" connect_timeout = 15 } provider "scaleway" { organization_id = "${var.scaleway_organization_id}" project_id = "${var.scaleway_project_id}" access_key = "${var.scaleway_access_key}" secret_key = "${var.scaleway_secret_key}" region = "nl-ams" zone = "nl-ams-1" } provider "tailscale" { api_key = "${var.tailscale_api_key}" tailnet = "${var.tailscale_tailnet}" }