From a42653b370ac3cda428b6f134f90ed6acba6ae74 Mon Sep 17 00:00:00 2001 From: MichaelFisher1997 Date: Sat, 28 Feb 2026 21:54:49 +0000 Subject: [PATCH] fix: Use eu-central network zone, handle existing SSH key --- terraform/network.tf | 2 +- terraform/servers.tf | 4 ++-- terraform/ssh.tf | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/terraform/network.tf b/terraform/network.tf index 08e2e9a..1f49d09 100644 --- a/terraform/network.tf +++ b/terraform/network.tf @@ -6,6 +6,6 @@ resource "hcloud_network" "cluster" { resource "hcloud_network_subnet" "servers" { network_id = hcloud_network.cluster.id type = "cloud" - network_zone = "${var.location}-network" + network_zone = "eu-central" ip_range = var.subnet_cidr } diff --git a/terraform/servers.tf b/terraform/servers.tf index e4f5535..5b72730 100644 --- a/terraform/servers.tf +++ b/terraform/servers.tf @@ -10,7 +10,7 @@ resource "hcloud_server" "control_plane" { server_type = var.control_plane_type image = data.hcloud_image.ubuntu.id location = var.location - ssh_keys = [hcloud_ssh_key.cluster.id] + ssh_keys = [data.hcloud_ssh_key.cluster.id] labels = { cluster = var.cluster_name @@ -37,7 +37,7 @@ resource "hcloud_server" "workers" { server_type = var.worker_type image = data.hcloud_image.ubuntu.id location = var.location - ssh_keys = [hcloud_ssh_key.cluster.id] + ssh_keys = [data.hcloud_ssh_key.cluster.id] labels = { cluster = var.cluster_name diff --git a/terraform/ssh.tf b/terraform/ssh.tf index 7041784..4e9c475 100644 --- a/terraform/ssh.tf +++ b/terraform/ssh.tf @@ -2,7 +2,21 @@ data "local_file" "ssh_public_key" { filename = pathexpand(var.ssh_public_key) } +data "hcloud_ssh_keys" "all_keys" {} + +locals { + existing_key = try([ + for key in data.hcloud_ssh_keys.all_keys.ssh_keys : + key if key.name == "${var.cluster_name}-ssh-key" + ][0], null) +} + resource "hcloud_ssh_key" "cluster" { + count = local.existing_key == null ? 1 : 0 name = "${var.cluster_name}-ssh-key" public_key = data.local_file.ssh_public_key.content } + +data "hcloud_ssh_key" "cluster" { + fingerprint = local.existing_key != null ? local.existing_key.fingerprint : hcloud_ssh_key.cluster[0].fingerprint +}