change network routing and add s3

This commit is contained in:
Michael_Sodan 2025-05-27 16:12:25 +02:00
parent 1245040383
commit a96de3678b
9 changed files with 48 additions and 14 deletions

View file

@ -1,5 +1,5 @@
// ------- project 1 - landingzone ------------ // ------- project 1 - landingzone ------------
// This file defines the network setup for the first project landingzone.
resource "stackit_network" "wan_network" { resource "stackit_network" "wan_network" {
project_id = module.project.project_info["project1"].project_id project_id = module.project.project_info["project1"].project_id
name = "wan_network" name = "wan_network"
@ -14,7 +14,7 @@ resource "stackit_network" "lan_network1" {
name = "lan_network1" name = "lan_network1"
ipv4_prefix_length = 24 ipv4_prefix_length = 24
ipv4_prefix = "10.220.1.0/24" ipv4_prefix = "10.220.1.0/24"
routed = false routed = true
} }
resource "stackit_network" "lan_network2" { resource "stackit_network" "lan_network2" {
@ -22,7 +22,7 @@ resource "stackit_network" "lan_network2" {
name = "lan_network2" name = "lan_network2"
ipv4_prefix_length = 24 ipv4_prefix_length = 24
ipv4_prefix = "10.220.2.0/24" ipv4_prefix = "10.220.2.0/24"
routed = false routed = true
} }
resource "stackit_network" "lan_network3" { resource "stackit_network" "lan_network3" {
@ -64,13 +64,14 @@ resource "stackit_network_interface" "lan3" {
} }
# ---------- project 2 core ------------------ # ---------- project 2 core ------------------
// This file defines the network setup for the second project (core).
resource "stackit_network" "p2_lan_network1" { resource "stackit_network" "p2_lan_network1" {
project_id = module.project.project_info["project2"].project_id project_id = module.project.project_info["project2"].project_id
name = "p2_lan_network" name = "p2_lan_network"
ipv4_prefix_length = 24 ipv4_prefix_length = 24
ipv4_prefix = "10.220.5.0/24" ipv4_prefix = "10.220.5.0/24"
routed = false routed = true
} }
resource "stackit_network_interface" "p2_lan1" { resource "stackit_network_interface" "p2_lan1" {
@ -81,15 +82,39 @@ resource "stackit_network_interface" "p2_lan1" {
security_group_ids = [ stackit_security_group.example.security_group_id ] security_group_ids = [ stackit_security_group.example.security_group_id ]
} }
resource "stackit_network" "p2_wan_network1" {
project_id = module.project.project_info["project2"].project_id
name = "wan"
ipv4_prefix_length = 24
ipv4_prefix = "10.220.6.0/24"
routed = true
}
resource "stackit_network_interface" "p2_wan_interface1" {
project_id = module.project.project_info["project2"].project_id
network_id = stackit_network.p2_wan_network1.network_id
security = false
name = "wan_if"
}
// ---------- public IPs ------------------
// This file defines the public IPs for the projects.
resource "stackit_public_ip" "wan_ip" { resource "stackit_public_ip" "wan_ip" {
project_id = module.project.project_info["project1"].project_id project_id = module.project.project_info["project1"].project_id
network_interface_id = stackit_network_interface.wan.network_interface_id network_interface_id = stackit_network_interface.wan.network_interface_id
} }
resource "stackit_public_ip" "wan_server" {
project_id = module.project.project_info["project2"].project_id
network_interface_id = stackit_network_interface.p2_wan_interface1.network_interface_id
}
// Output the public IPs for both projects
output "public_ips" { output "public_ips" {
value = { value = {
"wan_ip" = stackit_public_ip.wan_ip.ip "wan_ip" = stackit_public_ip.wan_ip.ip
"wan_server" = stackit_public_ip.wan_server.ip
} }
} }

View file

@ -1,3 +1,4 @@
// This file is part of the STACKIT Terraform module for deploying a pfSense appliance.
resource "stackit_volume" "pfsense_vol" { resource "stackit_volume" "pfsense_vol" {
project_id = module.project.project_info["project1"].project_id project_id = module.project.project_info["project1"].project_id
name = "pfsense-2.7.2-root" name = "pfsense-2.7.2-root"

View file

@ -1,3 +1,5 @@
// Attach network interfaces to the pfSense server without recreating the server
resource "stackit_server_network_interface_attach" "nic-attachment-lan1" { resource "stackit_server_network_interface_attach" "nic-attachment-lan1" {
project_id = module.project.project_info["project1"].project_id project_id = module.project.project_info["project1"].project_id
server_id = stackit_server.pfsense_appliance.server_id server_id = stackit_server.pfsense_appliance.server_id

View file

@ -1,3 +1,4 @@
// create the server in the second project (core)
resource "stackit_volume" "example_vol" { resource "stackit_volume" "example_vol" {
project_id = module.project.project_info["project2"].project_id project_id = module.project.project_info["project2"].project_id
name = "example_root" name = "example_root"
@ -19,12 +20,12 @@ resource "stackit_server" "dev_server" {
} }
availability_zone = var.region_az1 availability_zone = var.region_az1
machine_type = var.flavor machine_type = var.flavor
network_interfaces = [stackit_network_interface.p2_lan1.network_interface_id] network_interfaces = [stackit_network_interface.p2_wan_interface1.network_interface_id, stackit_network_interface.p2_lan1.network_interface_id ]
keypair_name = stackit_key_pair.keypair.name keypair_name = stackit_key_pair.keypair.name
} }
data "stackit_image" "debian" { data "stackit_image" "debian" {
project_id = module.project.project_info["project2"].project_id project_id = module.project.project_info["project2"].project_id
image_id = "d1151962-f2cd-45e6-9c67-185c5055c7e0" image_id = "d1151962-f2cd-45e6-9c67-185c5055c7e0" // Debian 12 (Bookworm) x86_64
} }

View file

@ -1,3 +1,5 @@
// Security Group and Security Group Rules
resource "stackit_security_group" "example" { resource "stackit_security_group" "example" {
project_id = module.project.project_info["project2"].project_id project_id = module.project.project_info["project2"].project_id
name = "test" name = "test"

View file

@ -1,5 +1,6 @@
// keypair adding to the server
resource "stackit_key_pair" "keypair" { resource "stackit_key_pair" "keypair" {
name = "msodan2" name = "pubkeyforauth"
public_key = chomp(file("/Users/sodan/.ssh/id_ed25519.pub")) public_key = chomp(file("/Users/sodan/.ssh/id_ed25519.pub"))
} }

View file

@ -1,4 +1,4 @@
# -- network variables # -- variables
variable "organization_id" { variable "organization_id" {
default = "03a34540-3c1a-4794-b2c6-7111ecf824ef" default = "03a34540-3c1a-4794-b2c6-7111ecf824ef"
} }

View file

@ -1,25 +1,27 @@
resource "time_sleep" "wait_before_destroy" { /* resource "time_sleep" "wait_before_destroy" {
destroy_duration = "60s" destroy_duration = "60s"
} }
*/
resource "stackit_network_area" "sna" { resource "stackit_network_area" "sna" {
organization_id = var.organization_id organization_id = var.organization_id
name = "landingzone_sna" name = "project_sna"
network_ranges = [ network_ranges = [
{ {
prefix = "10.220.0.0/16" prefix = "10.220.0.0/16"
} }
] ]
transfer_network = "172.16.9.0/24" transfer_network = "172.16.9.0/24"
depends_on = [time_sleep.wait_before_destroy] //depends_on = [time_sleep.wait_before_destroy]
} }
resource "stackit_network_area_route" "sna_route1" { /* resource "stackit_network_area_route" "sna_route1" {
organization_id = var.organization_id organization_id = var.organization_id
network_area_id = stackit_network_area.sna.network_area_id network_area_id = stackit_network_area.sna.network_area_id
prefix = "10.220.5.0/24" prefix = "10.220.99.0/24"
next_hop = "10.220.0.0" next_hop = "10.220.0.0"
labels = { labels = {
"key" = "value" "key" = "value"
} }
} }
*/

View file

@ -1,4 +1,4 @@
# -- network variables # -- variables
variable "organization_id" { variable "organization_id" {
default = "03a34540-3c1a-4794-b2c6-7111ecf824ef" default = "03a34540-3c1a-4794-b2c6-7111ecf824ef"
} }