feat(iaas): support for v2 API (#1070)

relates to STACKITTPR-313
This commit is contained in:
Ruben Hönle 2025-12-17 15:40:46 +01:00 committed by GitHub
parent 460c18c202
commit 53a3697850
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
124 changed files with 8342 additions and 6042 deletions

View file

@ -8,8 +8,10 @@ variable "default_prefix_length" {}
variable "max_prefix_length" {}
variable "min_prefix_length" {}
variable "route_prefix" {}
variable "route_next_hop" {}
variable "route_destination_type" {}
variable "route_destination_value" {}
variable "route_next_hop_type" {}
variable "route_next_hop_value" {}
variable "label" {}
resource "stackit_network_area" "network_area" {
@ -33,8 +35,14 @@ resource "stackit_network_area" "network_area" {
resource "stackit_network_area_route" "network_area_route" {
organization_id = stackit_network_area.network_area.organization_id
network_area_id = stackit_network_area.network_area.network_area_id
prefix = var.route_prefix
next_hop = var.route_next_hop
destination = {
type = var.route_destination_type
value = var.route_destination_value
}
next_hop = {
type = var.route_next_hop_type
value = var.route_next_hop_value
}
labels = {
"acc-test" : var.label
}

View file

@ -1,26 +1,8 @@
variable "organization_id" {}
variable "name" {}
variable "transfer_network" {}
variable "network_ranges_prefix" {}
variable "route_prefix" {}
variable "route_next_hop" {}
resource "stackit_network_area" "network_area" {
organization_id = var.organization_id
name = var.name
transfer_network = var.transfer_network
network_ranges = [
{
prefix = var.network_ranges_prefix
}
]
organization_id = var.organization_id
name = var.name
}
resource "stackit_network_area_route" "network_area_route" {
organization_id = stackit_network_area.network_area.organization_id
network_area_id = stackit_network_area.network_area.network_area_id
prefix = var.route_prefix
next_hop = var.route_next_hop
}

View file

@ -0,0 +1,33 @@
variable "organization_id" {}
variable "name" {}
variable "transfer_network" {}
variable "network_ranges_prefix" {}
variable "default_prefix_length" {}
variable "min_prefix_length" {}
variable "max_prefix_length" {}
variable "default_nameservers" {}
resource "stackit_network_area" "network_area" {
organization_id = var.organization_id
name = var.name
}
resource "stackit_network_area_region" "network_area_region" {
organization_id = var.organization_id
network_area_id = stackit_network_area.network_area.network_area_id
ipv4 = {
transfer_network = var.transfer_network
network_ranges = [
{
prefix = var.network_ranges_prefix
}
]
default_prefix_length = var.default_prefix_length
min_prefix_length = var.min_prefix_length
max_prefix_length = var.max_prefix_length
default_nameservers = [
var.default_nameservers
]
}
}

View file

@ -0,0 +1,23 @@
variable "organization_id" {}
variable "name" {}
variable "transfer_network" {}
variable "network_ranges_prefix" {}
resource "stackit_network_area" "network_area" {
organization_id = var.organization_id
name = var.name
}
resource "stackit_network_area_region" "network_area_region" {
organization_id = var.organization_id
network_area_id = stackit_network_area.network_area.network_area_id
ipv4 = {
transfer_network = var.transfer_network
network_ranges = [
{
prefix = var.network_ranges_prefix
}
]
}
}

View file

@ -0,0 +1,85 @@
variable "organization_id" {}
variable "name" {}
variable "ipv4_gateway" {}
variable "ipv4_nameserver_0" {}
variable "ipv4_nameserver_1" {}
variable "ipv4_prefix" {}
variable "ipv4_prefix_length" {}
variable "routed" {}
variable "label" {}
variable "service_account_mail" {}
# no test candidate, just needed for the testing setup
resource "stackit_network_area" "network_area" {
organization_id = var.organization_id
name = var.name
labels = {
"preview/routingtables" = "true"
}
}
resource "stackit_network_area_region" "network_area_region" {
organization_id = var.organization_id
network_area_id = stackit_network_area.network_area.network_area_id
ipv4 = {
network_ranges = [
{
prefix = "10.0.0.0/16"
},
{
prefix = "10.2.2.0/24"
}
]
transfer_network = "10.1.2.0/24"
}
}
# no test candidate, just needed for the testing setup
resource "stackit_resourcemanager_project" "project" {
parent_container_id = stackit_network_area.network_area.organization_id
name = var.name
labels = {
"networkArea" = stackit_network_area.network_area.network_area_id
}
owner_email = var.service_account_mail
depends_on = [stackit_network_area_region.network_area_region]
}
resource "stackit_network" "network_prefix" {
project_id = stackit_resourcemanager_project.project.project_id
name = var.name
# ipv4_gateway = var.ipv4_gateway != "" ? var.ipv4_gateway : null
# no_ipv4_gateway = var.ipv4_gateway != "" ? null : true
ipv4_nameservers = [var.ipv4_nameserver_0, var.ipv4_nameserver_1]
ipv4_prefix = var.ipv4_prefix
routed = var.routed
labels = {
"acc-test" : var.label
}
depends_on = [stackit_network_area_region.network_area_region]
}
resource "stackit_network" "network_prefix_length" {
project_id = stackit_resourcemanager_project.project.project_id
name = var.name
# no_ipv4_gateway = true
ipv4_nameservers = [var.ipv4_nameserver_0, var.ipv4_nameserver_1]
ipv4_prefix_length = var.ipv4_prefix_length
routed = var.routed
labels = {
"acc-test" : var.label
}
routing_table_id = stackit_routing_table.routing_table.routing_table_id
depends_on = [stackit_network.network_prefix, stackit_network_area_region.network_area_region]
}
resource "stackit_routing_table" "routing_table" {
organization_id = var.organization_id
network_area_id = stackit_network_area.network_area.network_area_id
name = var.name
depends_on = [stackit_network_area_region.network_area_region]
}

View file

@ -1,35 +0,0 @@
variable "project_id" {}
variable "name" {}
variable "ipv4_gateway" {}
variable "ipv4_nameserver_0" {}
variable "ipv4_nameserver_1" {}
variable "ipv4_prefix" {}
variable "ipv4_prefix_length" {}
variable "routed" {}
variable "label" {}
resource "stackit_network" "network_prefix" {
project_id = var.project_id
name = var.name
ipv4_gateway = var.ipv4_gateway != "" ? var.ipv4_gateway : null
no_ipv4_gateway = var.ipv4_gateway != "" ? null : true
ipv4_nameservers = [var.ipv4_nameserver_0, var.ipv4_nameserver_1]
ipv4_prefix = var.ipv4_prefix
routed = var.routed
labels = {
"acc-test" : var.label
}
}
resource "stackit_network" "network_prefix_length" {
project_id = var.project_id
name = var.name
no_ipv4_gateway = true
ipv4_nameservers = [var.ipv4_nameserver_0, var.ipv4_nameserver_1]
ipv4_prefix_length = var.ipv4_prefix_length
routed = var.routed
labels = {
"acc-test" : var.label
}
}

View file

@ -1,43 +0,0 @@
variable "project_id" {}
variable "name" {}
variable "ipv4_gateway" {}
variable "ipv4_nameserver_0" {}
variable "ipv4_nameserver_1" {}
variable "ipv4_prefix" {}
variable "ipv4_prefix_length" {}
variable "routed" {}
variable "label" {}
variable "organization_id" {}
variable "network_area_id" {}
# resource "stackit_network" "network_prefix" {
# project_id = var.project_id
# name = var.name
# # ipv4_gateway = var.ipv4_gateway != "" ? var.ipv4_gateway : null
# # no_ipv4_gateway = var.ipv4_gateway != "" ? null : true
# ipv4_nameservers = [var.ipv4_nameserver_0, var.ipv4_nameserver_1]
# ipv4_prefix = var.ipv4_prefix
# routed = var.routed
# labels = {
# "acc-test" : var.label
# }
# }
resource "stackit_network" "network_prefix_length" {
project_id = var.project_id
name = var.name
# no_ipv4_gateway = true
ipv4_nameservers = [var.ipv4_nameserver_0, var.ipv4_nameserver_1]
ipv4_prefix_length = var.ipv4_prefix_length
routed = var.routed
labels = {
"acc-test" : var.label
}
routing_table_id = stackit_routing_table.routing_table.routing_table_id
}
resource "stackit_routing_table" "routing_table" {
organization_id = var.organization_id
network_area_id = var.network_area_id
name = var.name
}

View file

@ -1,7 +0,0 @@
variable "project_id" {}
variable "name" {}
resource "stackit_network" "network" {
project_id = var.project_id
name = var.name
}

View file

@ -1,8 +1,18 @@
variable "project_id" {}
variable "name" {}
variable "network_name" {}
variable "machine_type" {}
variable "image_id" {}
resource "stackit_network" "network" {
project_id = var.project_id
name = var.network_name
}
resource "stackit_network_interface" "nic" {
project_id = var.project_id
network_id = stackit_network.network.network_id
}
resource "stackit_server" "server" {
project_id = var.project_id
@ -14,4 +24,7 @@ resource "stackit_server" "server" {
source_id = var.image_id
delete_on_termination = true
}
network_interfaces = [
stackit_network_interface.nic.network_interface_id
]
}

View file

@ -23,8 +23,9 @@ resource "stackit_volume" "volume_source" {
availability_zone = var.availability_zone
name = var.name
description = var.description
performance_class = var.performance_class
size = var.size
# TODO: keep commented until IaaS API bug is resolved
#performance_class = var.performance_class
size = var.size
source = {
id = stackit_volume.volume_size.volume_id
type = "volume"