From e50ce7235d1616aca6466a9a16a9122c3d781425 Mon Sep 17 00:00:00 2001 From: Mauritz Uphoff Date: Thu, 10 Jul 2025 16:46:32 +0200 Subject: [PATCH] dev --- 020-variables.tf | 4 ++-- 030-server.tf | 51 +++++++++++++++++++++++++++++------------------- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/020-variables.tf b/020-variables.tf index f96404a..1c7426a 100644 --- a/020-variables.tf +++ b/020-variables.tf @@ -1,6 +1,6 @@ variable "stackit_project_id" { type = string - default = "XXXXX-XXXX-XXXX-XXXX-XXXXXXX" + default = "2b3c1df5-4cb0-4d5e-aed1-3abf211c4c43" } variable "stackit_region" { @@ -10,5 +10,5 @@ variable "stackit_region" { variable "stackit_service_account_key_path" { type = string - default = "./keys/stackit-sa.json" + default = "./keys/stackit-sa-nvl.json" } diff --git a/030-server.tf b/030-server.tf index eef4d05..7c5c616 100644 --- a/030-server.tf +++ b/030-server.tf @@ -8,18 +8,12 @@ resource "stackit_key_pair" "example_keypair" { public_key = chomp(file("~/.ssh/id_rsa.pub")) } -resource "stackit_network_interface" "example_nic" { - project_id = var.stackit_project_id - network_id = stackit_network.example_network.network_id - security = false -} - locals { servers = flatten([ for zone, count in { - eu01-3 = 2, - eu01-1 = 1, - eu01-2 = 1 + eu01-3 = 3, + eu01-1 = 3, + eu01-2 = 2 } : [ for index in range(count) : { name = "example-server-${zone}-${index}" @@ -29,6 +23,26 @@ locals { ]) } +# Create network for each server +resource "stackit_network" "example_network" { + for_each = { for server in local.servers : server.name => server } + + project_id = var.stackit_project_id + name = "${each.value.name}-network" + ipv4_prefix_length = 24 + ipv4_nameservers = ["1.1.1.1", "8.8.8.8"] +} + +# Create NIC for each server +resource "stackit_network_interface" "example_nic" { + for_each = { for server in local.servers : server.name => server } + + project_id = var.stackit_project_id + network_id = stackit_network.example_network[each.key].network_id + security = false +} + +# Create server resource "stackit_server" "example_server" { for_each = { for server in local.servers : server.name => server } @@ -43,22 +57,19 @@ resource "stackit_server" "example_server" { availability_zone = each.value.availability_zone machine_type = "n3.14d.g1" network_interfaces = [ - stackit_network_interface.example_nic.network_interface_id + stackit_network_interface.example_nic[each.key].network_interface_id ] } -resource "stackit_network" "example_network" { - project_id = var.stackit_project_id - name = "example-network" - ipv4_prefix_length = 24 - ipv4_nameservers = ["1.1.1.1", "8.8.8.8"] -} - +# Create public IP for each server resource "stackit_public_ip" "example_public_ip" { + for_each = { for server in local.servers : server.name => server } + project_id = var.stackit_project_id - network_interface_id = stackit_network_interface.example_nic.network_interface_id + network_interface_id = stackit_network_interface.example_nic[each.key].network_interface_id } -output "public_ip" { - value = stackit_public_ip.example_public_ip.ip +# Output public IPs +output "public_ips" { + value = { for name, public_ip in stackit_public_ip.example_public_ip : name => public_ip.ip } } \ No newline at end of file