Compare commits
15 commits
main
...
minor-impr
| Author | SHA1 | Date | |
|---|---|---|---|
| 980f1c120b | |||
| 60a41535d8 | |||
| 473be00e29 | |||
| 945b18af83 | |||
| 64fbe9554a | |||
| 47a25347b1 | |||
| b5615c5107 | |||
| 4e2c356e14 | |||
| ba90a0e7a0 | |||
| 757ce25fe7 | |||
| e2f9a7cfdd | |||
| 7d7ad4db6b | |||
| 0a8ed3abd4 | |||
| 32f05739e6 | |||
| 000a129efc |
18 changed files with 200 additions and 195 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,3 +1,5 @@
|
|||
.terraform*
|
||||
terraform*
|
||||
*.qcow2
|
||||
*.tfvars
|
||||
.idea
|
||||
|
|
@ -17,7 +17,3 @@ provider "stackit" {
|
|||
service_account_key_path = var.service_account_key_path
|
||||
enable_beta_resources = true
|
||||
}
|
||||
|
||||
module "project" {
|
||||
source = "./project"
|
||||
}
|
||||
|
|
|
|||
145
01-network.tf
145
01-network.tf
|
|
@ -1,163 +1,162 @@
|
|||
/* ------- project 1 - landingzone ------------ */
|
||||
resource "stackit_network" "wan_network" {
|
||||
project_id = module.project.project_info["project1"].project_id
|
||||
name = "wan_network"
|
||||
resource "stackit_network" "landingzone_wan" {
|
||||
project_id = module.project.project_info["landingzone"].project_id
|
||||
name = "landingzone_wan"
|
||||
ipv4_nameservers = ["1.1.1.1", "8.8.8.8"]
|
||||
ipv4_prefix = "10.220.0.0/24"
|
||||
routed = true
|
||||
}
|
||||
|
||||
resource "stackit_network" "lan_network1" {
|
||||
project_id = module.project.project_info["project1"].project_id
|
||||
name = "lan_network1"
|
||||
resource "stackit_network" "landingzone_lan" {
|
||||
project_id = module.project.project_info["landingzone"].project_id
|
||||
name = "landingzone_lan"
|
||||
ipv4_prefix = "10.220.1.0/24"
|
||||
routed = true
|
||||
}
|
||||
|
||||
resource "stackit_network_interface" "wan" {
|
||||
project_id = module.project.project_info["project1"].project_id
|
||||
network_id = stackit_network.wan_network.network_id
|
||||
resource "stackit_network_interface" "landingzone_wan" {
|
||||
project_id = module.project.project_info["landingzone"].project_id
|
||||
network_id = stackit_network.landingzone_wan.network_id
|
||||
security = false
|
||||
name = "MGMT"
|
||||
ipv4 = "10.220.0.254"
|
||||
|
||||
}
|
||||
|
||||
resource "stackit_network_interface" "lan1" {
|
||||
project_id = module.project.project_info["project1"].project_id
|
||||
network_id = stackit_network.lan_network1.network_id
|
||||
resource "stackit_network_interface" "landingzone_lan" {
|
||||
project_id = module.project.project_info["landingzone"].project_id
|
||||
network_id = stackit_network.landingzone_lan.network_id
|
||||
security = false
|
||||
name = "LAN1"
|
||||
}
|
||||
|
||||
/* ---------- project 2 core ------------------ */
|
||||
resource "stackit_network" "p2_lan_network1" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
name = "p2_lan_network"
|
||||
resource "stackit_network" "core_lan" {
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
name = "core_lan"
|
||||
ipv4_prefix = "10.220.5.0/24"
|
||||
routed = true
|
||||
}
|
||||
|
||||
resource "stackit_network_interface" "p2_lan1" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
network_id = stackit_network.p2_lan_network1.network_id
|
||||
resource "stackit_network_interface" "core_lan" {
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
network_id = stackit_network.core_lan.network_id
|
||||
security = false
|
||||
name = "P2LAN1"
|
||||
//security_group_ids = [ stackit_security_group.example.security_group_id ]
|
||||
name = "CORELAN"
|
||||
// security_group_ids = [ stackit_security_group.example.security_group_id ]
|
||||
}
|
||||
|
||||
/* this is for adding a second network interface to the core project (for WAN access).
|
||||
resource "stackit_network" "p2_wan_network1" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
name = "wan"
|
||||
/* this is for adding a second network interface to the core project (for WAN access).*/
|
||||
resource "stackit_network" "core_wan" {
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
name = "core_wan"
|
||||
ipv4_prefix = "10.220.50.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
|
||||
resource "stackit_network_interface" "core_wan" {
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
network_id = stackit_network.core_wan.network_id
|
||||
security = false
|
||||
name = "wan_if"
|
||||
name = "core_wan_if"
|
||||
}
|
||||
*/
|
||||
/**/
|
||||
|
||||
/* ---------- project 3 backup ------------------ */
|
||||
resource "stackit_network" "p3_lan_network1" {
|
||||
project_id = module.project.project_info["project3"].project_id
|
||||
name = "p3_lan_network"
|
||||
resource "stackit_network" "backup_lan" {
|
||||
project_id = module.project.project_info["backup"].project_id
|
||||
name = "backup_lan"
|
||||
ipv4_prefix = "10.220.6.0/24"
|
||||
routed = true
|
||||
}
|
||||
|
||||
resource "stackit_network_interface" "p3_lan1" {
|
||||
project_id = module.project.project_info["project3"].project_id
|
||||
network_id = stackit_network.p3_lan_network1.network_id
|
||||
resource "stackit_network_interface" "backup_lan" {
|
||||
project_id = module.project.project_info["backup"].project_id
|
||||
network_id = stackit_network.backup_lan.network_id
|
||||
security = false
|
||||
name = "P3LAN1"
|
||||
name = "BACKUPLAN"
|
||||
//security_group_ids = [ stackit_security_group.example.security_group_id ]
|
||||
}
|
||||
|
||||
/* project 4 for SKE, so no configuration necessary here */
|
||||
|
||||
/* ------- project 5 - vpn ------------ */
|
||||
resource "stackit_network" "wan_network_beta" {
|
||||
project_id = module.project.project_info["project5"].project_id
|
||||
name = "wan_network_beta"
|
||||
resource "stackit_network" "vpn_wan" {
|
||||
project_id = module.project.project_info["vpn"].project_id
|
||||
name = "vpn_wan"
|
||||
ipv4_nameservers = ["1.1.1.1", "8.8.8.8"]
|
||||
ipv4_prefix = "10.230.0.0/24"
|
||||
routed = true
|
||||
}
|
||||
|
||||
resource "stackit_network" "lan_network_beta" {
|
||||
project_id = module.project.project_info["project5"].project_id
|
||||
name = "lan_network_beta"
|
||||
resource "stackit_network" "vpn_lan" {
|
||||
project_id = module.project.project_info["vpn"].project_id
|
||||
name = "vpn_lan"
|
||||
ipv4_prefix = "10.230.1.0/24"
|
||||
routed = true
|
||||
}
|
||||
|
||||
resource "stackit_network_interface" "wan_beta" {
|
||||
project_id = module.project.project_info["project5"].project_id
|
||||
network_id = stackit_network.wan_network_beta.network_id
|
||||
resource "stackit_network_interface" "vpn_wan" {
|
||||
project_id = module.project.project_info["vpn"].project_id
|
||||
network_id = stackit_network.vpn_wan.network_id
|
||||
security = false
|
||||
name = "MGMT"
|
||||
ipv4 = "10.230.0.254"
|
||||
|
||||
}
|
||||
|
||||
resource "stackit_network_interface" "lan_beta" {
|
||||
project_id = module.project.project_info["project5"].project_id
|
||||
network_id = stackit_network.lan_network_beta.network_id
|
||||
resource "stackit_network_interface" "vpn_lan" {
|
||||
project_id = module.project.project_info["vpn"].project_id
|
||||
network_id = stackit_network.vpn_lan.network_id
|
||||
security = false
|
||||
name = "LAN1"
|
||||
name = "VPNLAN"
|
||||
}
|
||||
|
||||
/* ---------- project 6 infra ------------------ */
|
||||
resource "stackit_network" "p6_lan_network1" {
|
||||
project_id = module.project.project_info["project6"].project_id
|
||||
name = "p6_lan_network"
|
||||
resource "stackit_network" "infra_lan" {
|
||||
project_id = module.project.project_info["infra"].project_id
|
||||
name = "infra_lan"
|
||||
ipv4_prefix = "10.230.5.0/24"
|
||||
routed = true
|
||||
}
|
||||
|
||||
resource "stackit_network_interface" "p6_lan1" {
|
||||
project_id = module.project.project_info["project6"].project_id
|
||||
network_id = stackit_network.p6_lan_network1.network_id
|
||||
resource "stackit_network_interface" "infra_lan" {
|
||||
project_id = module.project.project_info["infra"].project_id
|
||||
network_id = stackit_network.infra_lan.network_id
|
||||
security = false
|
||||
name = "P6LAN1"
|
||||
//security_group_ids = [ stackit_security_group.example_beta.security_group_id ]
|
||||
name = "INFRALAN"
|
||||
// security_group_ids = [ stackit_security_group.example_beta.security_group_id ]
|
||||
}
|
||||
|
||||
/* ---------- public IP configuration------------- */
|
||||
resource "stackit_public_ip" "wan_ip" {
|
||||
project_id = module.project.project_info["project1"].project_id
|
||||
network_interface_id = stackit_network_interface.wan.network_interface_id
|
||||
resource "stackit_public_ip" "landingzone_wan" {
|
||||
project_id = module.project.project_info["landingzone"].project_id
|
||||
network_interface_id = stackit_network_interface.landingzone_wan.network_interface_id
|
||||
}
|
||||
resource "stackit_public_ip" "wan_ip_beta" {
|
||||
project_id = module.project.project_info["project5"].project_id
|
||||
network_interface_id = stackit_network_interface.wan_beta.network_interface_id
|
||||
resource "stackit_public_ip" "vpn_wan" {
|
||||
project_id = module.project.project_info["vpn"].project_id
|
||||
network_interface_id = stackit_network_interface.vpn_wan.network_interface_id
|
||||
}
|
||||
|
||||
*/ this is for adding a public IP to the second project (core) for WAN access.
|
||||
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
|
||||
/* this is for adding a public IP to the second project (core) for WAN access. */
|
||||
resource "stackit_public_ip" "core_wan" {
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
network_interface_id = stackit_network_interface.core_wan.network_interface_id
|
||||
}
|
||||
*/
|
||||
|
||||
/* Output the public IPs for both projects */
|
||||
output "public_ips" {
|
||||
value = {
|
||||
"pfsense-alpha" = stackit_public_ip.wan_ip.ip
|
||||
"pfsense-beta" = stackit_public_ip.wan_ip_beta.ip
|
||||
//"wan_server" = stackit_public_ip.wan_server.ip
|
||||
"pfsense-alpha" = stackit_public_ip.landingzone_wan.ip
|
||||
"pfsense-beta" = stackit_public_ip.vpn_wan.ip
|
||||
"wan_server" = stackit_public_ip.core_wan.ip
|
||||
}
|
||||
}
|
||||
|
||||
output "private_ips" {
|
||||
value = {
|
||||
"linux-alpha" = stackit_network_interface.p2_lan1.ipv4
|
||||
"linux-beta" = stackit_network_interface.p6_lan1.ipv4
|
||||
"linux-alpha" = stackit_network_interface.core_lan.ipv4
|
||||
"linux-beta" = stackit_network_interface.infra_lan.ipv4
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ resource "null_resource" "pfsense_image_file" {
|
|||
|
||||
// Upload VPN Appliance Image to STACKIT
|
||||
resource "stackit_image" "pfsense_image" {
|
||||
project_id = module.project.project_info["project1"].project_id
|
||||
project_id = module.project.project_info["landingzone"].project_id
|
||||
name = "pfsense-2.7.2-amd64-image"
|
||||
local_file_path = "./pfsense.qcow2"
|
||||
disk_format = "qcow2"
|
||||
|
|
@ -34,7 +34,7 @@ resource "stackit_image" "pfsense_image" {
|
|||
|
||||
// Upload VPN Appliance Image to STACKIT
|
||||
resource "stackit_image" "pfsense_image_beta" {
|
||||
project_id = module.project.project_info["project5"].project_id
|
||||
project_id = module.project.project_info["vpn"].project_id
|
||||
name = "pfsense-2.7.2-amd64-image"
|
||||
local_file_path = "./pfsense.qcow2"
|
||||
disk_format = "qcow2"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// This file is part of the STACKIT Terraform module for deploying a pfSense appliance.
|
||||
resource "stackit_volume" "pfsense_vol" {
|
||||
project_id = module.project.project_info["project1"].project_id
|
||||
project_id = module.project.project_info["landingzone"].project_id
|
||||
name = "pfsense-2.7.2-root"
|
||||
availability_zone = var.region_az1
|
||||
size = 50
|
||||
|
|
@ -12,7 +12,7 @@ resource "stackit_volume" "pfsense_vol" {
|
|||
}
|
||||
|
||||
resource "stackit_server" "pfsense_appliance" {
|
||||
project_id = module.project.project_info["project1"].project_id
|
||||
project_id = module.project.project_info["landingzone"].project_id
|
||||
name = "pfSense-alpha"
|
||||
boot_volume = {
|
||||
source_type = "volume"
|
||||
|
|
@ -20,13 +20,13 @@ resource "stackit_server" "pfsense_appliance" {
|
|||
}
|
||||
availability_zone = var.region_az1
|
||||
machine_type = var.flavor
|
||||
network_interfaces = [stackit_network_interface.wan.network_interface_id]
|
||||
depends_on = [ stackit_network.wan_network ]
|
||||
network_interfaces = [stackit_network_interface.landingzone_wan.network_interface_id]
|
||||
depends_on = [ stackit_network.landingzone_wan ]
|
||||
}
|
||||
|
||||
// This file is part of the STACKIT Terraform module for deploying a pfSense appliance.
|
||||
resource "stackit_volume" "pfsense_vol_beta" {
|
||||
project_id = module.project.project_info["project5"].project_id
|
||||
project_id = module.project.project_info["vpn"].project_id
|
||||
name = "pfsense-2.7.2-root"
|
||||
availability_zone = var.region_az1
|
||||
size = 50
|
||||
|
|
@ -38,7 +38,7 @@ resource "stackit_volume" "pfsense_vol_beta" {
|
|||
}
|
||||
|
||||
resource "stackit_server" "pfsense_appliance_beta" {
|
||||
project_id = module.project.project_info["project5"].project_id
|
||||
project_id = module.project.project_info["vpn"].project_id
|
||||
name = "pfSense-beta"
|
||||
boot_volume = {
|
||||
source_type = "volume"
|
||||
|
|
@ -46,7 +46,7 @@ resource "stackit_server" "pfsense_appliance_beta" {
|
|||
}
|
||||
availability_zone = var.region_az1
|
||||
machine_type = var.flavor
|
||||
network_interfaces = [stackit_network_interface.wan_beta.network_interface_id, stackit_network_interface.lan_beta.network_interface_id ]
|
||||
depends_on = [ stackit_network.wan_network_beta ]
|
||||
network_interfaces = [stackit_network_interface.vpn_wan.network_interface_id, stackit_network_interface.vpn_lan.network_interface_id ]
|
||||
depends_on = [ stackit_network.vpn_wan ]
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
|
||||
// Attach network interfaces to the pfSense server without recreating the server
|
||||
resource "stackit_server_network_interface_attach" "nic-attachment-lan1" {
|
||||
project_id = module.project.project_info["project1"].project_id
|
||||
project_id = module.project.project_info["landingzone"].project_id
|
||||
server_id = stackit_server.pfsense_appliance.server_id
|
||||
network_interface_id = stackit_network_interface.lan1.network_interface_id
|
||||
network_interface_id = stackit_network_interface.landingzone_lan.network_interface_id
|
||||
depends_on = [ stackit_server.pfsense_appliance ]
|
||||
}
|
||||
|
||||
|
|
|
|||
26
05-server.tf
26
05-server.tf
|
|
@ -1,6 +1,6 @@
|
|||
// create the server in the second project (core)
|
||||
resource "stackit_volume" "example_vol" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
name = "example_root"
|
||||
availability_zone = var.region_az1
|
||||
size = 200
|
||||
|
|
@ -12,7 +12,7 @@ resource "stackit_volume" "example_vol" {
|
|||
}
|
||||
|
||||
resource "stackit_server" "dev_server" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
name = "linux-alpha"
|
||||
boot_volume = {
|
||||
source_type = "volume"
|
||||
|
|
@ -20,19 +20,19 @@ resource "stackit_server" "dev_server" {
|
|||
}
|
||||
availability_zone = var.region_az1
|
||||
machine_type = var.flavor
|
||||
network_interfaces = [stackit_network_interface.p2_lan1.network_interface_id ]
|
||||
network_interfaces = [stackit_network_interface.core_lan.network_interface_id ]
|
||||
keypair_name = stackit_key_pair.keypair.name
|
||||
depends_on = [ stackit_network_interface.p2_lan1 ]
|
||||
depends_on = [ stackit_network_interface.core_lan ]
|
||||
}
|
||||
|
||||
data "stackit_image" "debian" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
image_id = "d1151962-f2cd-45e6-9c67-185c5055c7e0" // Debian 12 (Bookworm) x86_64
|
||||
}
|
||||
|
||||
// create the server in the third project (backup)
|
||||
resource "stackit_volume" "example_vol_p3" {
|
||||
project_id = module.project.project_info["project3"].project_id
|
||||
project_id = module.project.project_info["backup"].project_id
|
||||
name = "root_volume"
|
||||
availability_zone = var.region_az1
|
||||
size = 200
|
||||
|
|
@ -44,7 +44,7 @@ resource "stackit_volume" "example_vol_p3" {
|
|||
}
|
||||
|
||||
resource "stackit_server" "dev_server_p3" {
|
||||
project_id = module.project.project_info["project3"].project_id
|
||||
project_id = module.project.project_info["backup"].project_id
|
||||
name = "server2"
|
||||
boot_volume = {
|
||||
source_type = "volume"
|
||||
|
|
@ -52,15 +52,15 @@ resource "stackit_server" "dev_server_p3" {
|
|||
}
|
||||
availability_zone = var.region_az1
|
||||
machine_type = var.flavor
|
||||
network_interfaces = [stackit_network_interface.p3_lan1.network_interface_id ]
|
||||
network_interfaces = [stackit_network_interface.backup_lan.network_interface_id ]
|
||||
keypair_name = stackit_key_pair.keypair.name
|
||||
depends_on = [ stackit_network_interface.p3_lan1 ]
|
||||
depends_on = [ stackit_network_interface.backup_lan ]
|
||||
}
|
||||
|
||||
|
||||
// create the server in the sixth project (infra)
|
||||
resource "stackit_volume" "example_vol_p6" {
|
||||
project_id = module.project.project_info["project6"].project_id
|
||||
project_id = module.project.project_info["infra"].project_id
|
||||
name = "root_volume"
|
||||
availability_zone = var.region_az1
|
||||
size = 200
|
||||
|
|
@ -72,7 +72,7 @@ resource "stackit_volume" "example_vol_p6" {
|
|||
}
|
||||
|
||||
resource "stackit_server" "dev_server_p6" {
|
||||
project_id = module.project.project_info["project6"].project_id
|
||||
project_id = module.project.project_info["infra"].project_id
|
||||
name = "linux-beta"
|
||||
boot_volume = {
|
||||
source_type = "volume"
|
||||
|
|
@ -80,9 +80,9 @@ resource "stackit_server" "dev_server_p6" {
|
|||
}
|
||||
availability_zone = var.region_az1
|
||||
machine_type = var.flavor
|
||||
network_interfaces = [stackit_network_interface.p6_lan1.network_interface_id ]
|
||||
network_interfaces = [stackit_network_interface.infra_lan.network_interface_id ]
|
||||
keypair_name = stackit_key_pair.keypair.name
|
||||
depends_on = [ stackit_network_interface.p6_lan1 ]
|
||||
depends_on = [ stackit_network_interface.infra_lan ]
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
// Security Group and Security Group Rules
|
||||
resource "stackit_security_group" "example" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
name = "test"
|
||||
labels = {
|
||||
"key" = "example"
|
||||
|
|
@ -10,7 +10,7 @@ resource "stackit_security_group" "example" {
|
|||
|
||||
resource "stackit_security_group_rule" "icmp_ingress" {
|
||||
security_group_id = stackit_security_group.example.security_group_id
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
direction = "ingress"
|
||||
icmp_parameters = {
|
||||
code = 0
|
||||
|
|
@ -21,7 +21,7 @@ resource "stackit_security_group_rule" "icmp_ingress" {
|
|||
}
|
||||
}
|
||||
resource "stackit_security_group_rule" "icmp_egress" {
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
security_group_id = stackit_security_group.example.security_group_id
|
||||
direction = "egress"
|
||||
icmp_parameters = {
|
||||
|
|
@ -35,7 +35,7 @@ resource "stackit_security_group_rule" "icmp_egress" {
|
|||
|
||||
resource "stackit_security_group_rule" "ssh_ingress" {
|
||||
security_group_id = stackit_security_group.example.security_group_id
|
||||
project_id = module.project.project_info["project2"].project_id
|
||||
project_id = module.project.project_info["core"].project_id
|
||||
direction = "ingress"
|
||||
|
||||
protocol = {
|
||||
|
|
@ -51,7 +51,7 @@ resource "stackit_security_group_rule" "ssh_ingress" {
|
|||
|
||||
// Security Group and Security Group Rules
|
||||
resource "stackit_security_group" "example_beta" {
|
||||
project_id = module.project.project_info["project6"].project_id
|
||||
project_id = module.project.project_info["infra"].project_id
|
||||
name = "test"
|
||||
labels = {
|
||||
"key" = "example"
|
||||
|
|
@ -60,7 +60,7 @@ resource "stackit_security_group" "example_beta" {
|
|||
|
||||
resource "stackit_security_group_rule" "icmp_ingress_beta" {
|
||||
security_group_id = stackit_security_group.example_beta.security_group_id
|
||||
project_id = module.project.project_info["project6"].project_id
|
||||
project_id = module.project.project_info["infra"].project_id
|
||||
direction = "ingress"
|
||||
icmp_parameters = {
|
||||
code = 0
|
||||
|
|
@ -71,7 +71,7 @@ resource "stackit_security_group_rule" "icmp_ingress_beta" {
|
|||
}
|
||||
}
|
||||
resource "stackit_security_group_rule" "icmp_egress_beta" {
|
||||
project_id = module.project.project_info["project6"].project_id
|
||||
project_id = module.project.project_info["infra"].project_id
|
||||
security_group_id = stackit_security_group.example_beta.security_group_id
|
||||
direction = "egress"
|
||||
icmp_parameters = {
|
||||
|
|
@ -85,7 +85,7 @@ resource "stackit_security_group_rule" "icmp_egress_beta" {
|
|||
|
||||
resource "stackit_security_group_rule" "ssh_ingress_beta" {
|
||||
security_group_id = stackit_security_group.example_beta.security_group_id
|
||||
project_id = module.project.project_info["project6"].project_id
|
||||
project_id = module.project.project_info["infra"].project_id
|
||||
direction = "ingress"
|
||||
|
||||
protocol = {
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
resource "stackit_objectstorage_bucket" "example" {
|
||||
project_id = module.project.project_info["project3"].project_id
|
||||
project_id = module.project.project_info["backup"].project_id
|
||||
name = "073a0ea0-9282-4ed6-8990-d5c4bff7cc3f"
|
||||
}
|
||||
|
||||
resource "stackit_objectstorage_credentials_group" "example" {
|
||||
project_id = module.project.project_info["project3"].project_id
|
||||
project_id = module.project.project_info["backup"].project_id
|
||||
name = "example-credentials-group"
|
||||
depends_on = [ stackit_objectstorage_bucket.example ]
|
||||
}
|
||||
|
||||
resource "stackit_objectstorage_credential" "example" {
|
||||
project_id = module.project.project_info["project3"].project_id
|
||||
project_id = module.project.project_info["backup"].project_id
|
||||
credentials_group_id = stackit_objectstorage_credentials_group.example.credentials_group_id
|
||||
expiration_timestamp = "2028-01-02T03:04:05Z"
|
||||
depends_on = [ stackit_objectstorage_credentials_group.example ]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
resource "stackit_ske_cluster" "demo-cluster" {
|
||||
project_id = module.project.project_info["project4"].project_id
|
||||
project_id = module.project.project_info["ske"].project_id
|
||||
name = "demo-clustr"
|
||||
node_pools = [
|
||||
{
|
||||
|
|
@ -34,7 +34,7 @@ output "ske-egress-ip" {
|
|||
}
|
||||
|
||||
resource "stackit_network" "ske_network" {
|
||||
project_id = module.project.project_info["project4"].project_id
|
||||
project_id = module.project.project_info["ske"].project_id
|
||||
name = "ske_network"
|
||||
ipv4_nameservers = ["1.1.1.1", "9.9.9.9"]
|
||||
ipv4_prefix = "10.220.10.0/24"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// keypair adding to the server
|
||||
resource "stackit_key_pair" "keypair" {
|
||||
name = "073a0ea0-9282-4ed6-8990-d5c4bff7cc3f"
|
||||
public_key = chomp(file("/root/.ssh/id_ed25519.pub"))
|
||||
public_key = chomp(file(var.public_key_file))
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,3 +33,8 @@ variable "flavor" {
|
|||
default = "m1.2"
|
||||
}
|
||||
|
||||
variable "public_key_file" {
|
||||
type = string
|
||||
default = "/root/.ssh/id_ed25519.pub"
|
||||
}
|
||||
|
||||
|
|
|
|||
5
modules.tf
Normal file
5
modules.tf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
module "project" {
|
||||
source = "./modules/project"
|
||||
organization_id = var.organization_id
|
||||
service_account_key_path = var.service_account_key_path
|
||||
}
|
||||
|
|
@ -1,47 +1,3 @@
|
|||
|
||||
|
||||
variable "projects_alpha" {
|
||||
type = map(object({
|
||||
name = string
|
||||
owner_email = string
|
||||
}))
|
||||
default = {
|
||||
project1 = {
|
||||
name = "landingzone"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
project2 = {
|
||||
name = "core"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
project3 = {
|
||||
name = "backup"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
project4 = {
|
||||
name = "ske"
|
||||
owner_email = "markus.brunsch@stackit.cloud"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "projects_beta" {
|
||||
type = map(object({
|
||||
name = string
|
||||
owner_email = string
|
||||
}))
|
||||
default = {
|
||||
project5 = {
|
||||
name = "vpn"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
project6 = {
|
||||
name = "infra"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "stackit_resourcemanager_project" "projects_alpha" {
|
||||
for_each = var.projects_alpha
|
||||
parent_container_id = var.organization_id
|
||||
77
modules/project/99-variables.tf
Normal file
77
modules/project/99-variables.tf
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
# -- variables
|
||||
variable "organization_id" {
|
||||
default = "03a34540-3c1a-4794-b2c6-7111ecf824ef"
|
||||
}
|
||||
|
||||
variable "service_account_key_path" {
|
||||
default = "/root/.stackit/credentials.json"
|
||||
}
|
||||
|
||||
variable "default_region" {
|
||||
default ="eu01"
|
||||
}
|
||||
|
||||
variable "region_az1" {
|
||||
default = "eu01-1"
|
||||
}
|
||||
|
||||
variable "region_az2" {
|
||||
default = "eu01-2"
|
||||
}
|
||||
|
||||
variable "region_az3" {
|
||||
default = "eu01-3"
|
||||
}
|
||||
|
||||
variable "region_metro" {
|
||||
default = "eu01-m"
|
||||
}
|
||||
|
||||
variable "flavor" {
|
||||
type = string
|
||||
description = ""
|
||||
default = "c1.2"
|
||||
}
|
||||
|
||||
variable "projects_alpha" {
|
||||
type = map(object({
|
||||
name = string
|
||||
owner_email = string
|
||||
}))
|
||||
default = {
|
||||
landingzone = {
|
||||
name = "landingzone"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
core = {
|
||||
name = "core"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
backup = {
|
||||
name = "backup"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
ske = {
|
||||
name = "ske"
|
||||
owner_email = "markus.brunsch@stackit.cloud"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "projects_beta" {
|
||||
type = map(object({
|
||||
name = string
|
||||
owner_email = string
|
||||
}))
|
||||
default = {
|
||||
vpn = {
|
||||
name = "vpn"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
infra = {
|
||||
name = "infra"
|
||||
owner_email = "michael.sodan@stackit.cloud"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
# -- variables
|
||||
variable "organization_id" {
|
||||
default = "03a34540-3c1a-4794-b2c6-7111ecf824ef"
|
||||
}
|
||||
|
||||
variable "service_account_key_path" {
|
||||
default = "/root/.stackit/credentials.json"
|
||||
}
|
||||
|
||||
variable "default_region" {
|
||||
default ="eu01"
|
||||
}
|
||||
|
||||
variable "region_az1" {
|
||||
default = "eu01-1"
|
||||
}
|
||||
|
||||
variable "region_az2" {
|
||||
default = "eu01-2"
|
||||
}
|
||||
|
||||
variable "region_az3" {
|
||||
default = "eu01-3"
|
||||
}
|
||||
|
||||
variable "region_metro" {
|
||||
default = "eu01-m"
|
||||
}
|
||||
|
||||
variable "flavor" {
|
||||
type = string
|
||||
description = ""
|
||||
default = "c1.2"
|
||||
}
|
||||
|
||||
Loading…
Reference in a new issue