From 61191cce38cc64f9aee7a801c6b704ebe48a2279 Mon Sep 17 00:00:00 2001 From: Markus Brunsch Date: Wed, 19 Nov 2025 15:33:57 +0100 Subject: [PATCH] init --- .forgejo/workflows/default-ci.yaml | 2 +- 00-backend.tf | 9 - 00-provider.tf | 26 -- 01-variables.tf | 20 - 02-example.tf | 10 - CHANGELOG.md | 2 +- MAINTAINERS.md | 2 +- backend.conf.example | 8 - create_ske_tf.sh | 87 ++++ eu01-stackit-lb.txt | 34 ++ eu01-stackit-s3.txt | 1 + eu01-stackit-ske.txt | 37 ++ main.tf | 653 +++++++++++++++++++++++++++++ output.tf | 15 + variables.tf | 32 ++ versions.tf | 18 + 16 files changed, 880 insertions(+), 76 deletions(-) delete mode 100644 00-backend.tf delete mode 100644 00-provider.tf delete mode 100644 01-variables.tf delete mode 100644 02-example.tf delete mode 100644 backend.conf.example create mode 100755 create_ske_tf.sh create mode 100644 eu01-stackit-lb.txt create mode 100644 eu01-stackit-s3.txt create mode 100644 eu01-stackit-ske.txt create mode 100644 main.tf create mode 100644 output.tf create mode 100644 variables.tf create mode 100644 versions.tf diff --git a/.forgejo/workflows/default-ci.yaml b/.forgejo/workflows/default-ci.yaml index 5ba5109..ad54d2c 100644 --- a/.forgejo/workflows/default-ci.yaml +++ b/.forgejo/workflows/default-ci.yaml @@ -16,7 +16,7 @@ jobs: # Only checks for the presence of the word "Copyright" in the first line. KEYWORD="Copyright" for file in $(find . -maxdepth 1 -name "*.tf"); do - if ! head -n 1 "$file" | grep -q "$KEYWORD"; then + if ! head -n 2 "$file" | grep -q "$KEYWORD"; then echo "::error file=$file,line=1::A copyright header is missing or incorrect in the first line." exit 1 fi diff --git a/00-backend.tf b/00-backend.tf deleted file mode 100644 index 831a30b..0000000 --- a/00-backend.tf +++ /dev/null @@ -1,9 +0,0 @@ -/*Copyright 2025 STACKIT GmbH & Co. KG - -Use of this source code is governed by an MIT-style -license that can be found in the LICENSE file or at -https://opensource.org/licenses/MIT.*/ - -/*terraform { - backend "s3" {} -}*/ \ No newline at end of file diff --git a/00-provider.tf b/00-provider.tf deleted file mode 100644 index ba22b88..0000000 --- a/00-provider.tf +++ /dev/null @@ -1,26 +0,0 @@ -/*Copyright 2025 STACKIT GmbH & Co. KG - -Use of this source code is governed by an MIT-style -license that can be found in the LICENSE file or at -https://opensource.org/licenses/MIT.*/ - -terraform { - required_version = ">= 0.14.0" - required_providers { - stackit = { - source = "stackitcloud/stackit" - version = "~>0.69.0" - } - random = { - source = "hashicorp/random" - version = "3.6.3" - } - } -} - -provider "stackit" { - default_region = var.stackit_region - service_account_key_path = var.stackit_service_account_key_path - experiments = ["routing-tables", "network"] - enable_beta_resources = true -} \ No newline at end of file diff --git a/01-variables.tf b/01-variables.tf deleted file mode 100644 index 9f83777..0000000 --- a/01-variables.tf +++ /dev/null @@ -1,20 +0,0 @@ -/*Copyright 2025 STACKIT GmbH & Co. KG - -Use of this source code is governed by an MIT-style -license that can be found in the LICENSE file or at -https://opensource.org/licenses/MIT.*/ - -variable "stackit_region" { - type = string - default = "eu01" -} - -variable "stackit_service_account_key_path" { - type = string - default = "keys/sa-key.json" -} - -variable "stackit_project_id" { - type = string - default = "XXXX-XXXX-XXXX-XXXX" -} \ No newline at end of file diff --git a/02-example.tf b/02-example.tf deleted file mode 100644 index 969f3b5..0000000 --- a/02-example.tf +++ /dev/null @@ -1,10 +0,0 @@ -/*Copyright 2025 STACKIT GmbH & Co. KG - -Use of this source code is governed by an MIT-style -license that can be found in the LICENSE file or at -https://opensource.org/licenses/MIT.*/ - -resource "stackit_network" "example" { - project_id = var.stackit_project_id - name = "example" -} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 96f383a..ea7dc03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,2 @@ -- v1.0.0 +- v0.0.1 - Initial Release \ No newline at end of file diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 199ed2d..6129024 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -1,7 +1,7 @@ # Maintainers General maintainers: -* Foo Bar (foo.bar@stackit.cloud) +* Markus Brunsch (markus.brunsch@stackit.cloud) This BP is actively maintained. The owner is responsible for reviewing and updating dependencies and functionalities on a monthly basis. For questions, issues, or feature requests, please email general maintainers. diff --git a/backend.conf.example b/backend.conf.example deleted file mode 100644 index b31c248..0000000 --- a/backend.conf.example +++ /dev/null @@ -1,8 +0,0 @@ -bucket = "" -key = "" -endpoint = "https://object.storage.eu01.onstackit.cloud" -region = "eu01" -skip_credentials_validation = true -skip_region_validation = true -access_key = "" -secret_key = "" \ No newline at end of file diff --git a/create_ske_tf.sh b/create_ske_tf.sh new file mode 100755 index 0000000..e51ee19 --- /dev/null +++ b/create_ske_tf.sh @@ -0,0 +1,87 @@ +# +# Copyright 2025 STACKIT GmbH & Co. KG +# +# Use of this source code is governed by an MIT-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/MIT. +# +# Script to generate a SKE Routing Table as Terraform Code +# + +# Remove duplicate entries +if [[ $1 == "ske" ]]; then + cat eu01-stackit-ske.txt > ske_lb_s3_ips_uncleaned.tmp.txt + echo "" | cat - eu01-stackit-lb.txt >> ske_lb_s3_ips_uncleaned.tmp.txt + echo "" | cat - eu01-stackit-s3.txt >> ske_lb_s3_ips_uncleaned.tmp.txt + sort -u ske_lb_s3_ips_uncleaned.tmp.txt -o ske-routing-table-tmp.tf +elif [[ $1 == "lb" ]]; then + sort -u eu01-stackit-lb.txt -o ske-routing-table-tmp.tf +elif [[ $1 == "s3" ]]; then + sort -u eu01-stackit-s3.txt -o ske-routing-table-tmp.tf +else + echo "Provider parameter ske, lb or s3" + exit 0 +fi +# Remove last linebreak +truncate -s -1 ske-routing-table-tmp.tf + +# Prepare Regex +sed -i -E 's/$/9/g' ske-routing-table-tmp.tf +sed -i -E 's/^/9/g' ske-routing-table-tmp.tf + +# Replacing start +sed -i -E 's/^[0-9]/resource \"stackit_routing_table_route\" \"routing-table-ske\" {\n organization_id = var.stackit_org_id\n network_area_id = var.stackit_sna_id\n routing_table_id = stackit_routing_table.rt-ske.routing_table_id\n destination = {\n type = \"cidrv4\"\n value = \"/g' ske-routing-table-tmp.tf + +# Replace Ending +sed -i -E 's/[0-9]$/\/32\"\n }\n next_hop = {\n type = \"internet\"\n }\n}/g' ske-routing-table-tmp.tf + +# Set Counter for Routes +perl -p -i -e 's/routing-table-ske/"rt-ske-".++$i/ge' ske-routing-table-tmp.tf + +# Add Routing Table Header & Routes for Default Internet via Hub & Direct DNS connection +echo '/* Copyright 2025 STACKIT GmbH & Co. KG + +Use of this source code is governed by an MIT-style +license that can be found in the LICENSE file or at +https://opensource.org/licenses/MIT. +*/ + +resource "stackit_routing_table" "rt-ske" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + name = "${var.routing_table_name}" + system_routes = false +} + +resource "stackit_routing_table_route" "ske-internet" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "0.0.0.0/0" + } + next_hop = { + type = "ipv4" + value = var.default_gateway + } +} + +resource "stackit_routing_table_route" "ske-dns" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "${var.dns_server}/32" + } + next_hop = { + type = "internet" + } +}' > main.tf +cat ske-routing-table-tmp.tf >> main.tf + +# Cleanup +rm ske-routing-table-tmp.tf +rm ske-routing-table-tmp.tf-E +rm ske_lb_s3_ips_uncleaned.tmp.txt \ No newline at end of file diff --git a/eu01-stackit-lb.txt b/eu01-stackit-lb.txt new file mode 100644 index 0000000..7eb14e5 --- /dev/null +++ b/eu01-stackit-lb.txt @@ -0,0 +1,34 @@ +193.148.174.28 +193.148.174.192 +45.129.47.124 +193.148.162.176 +193.148.162.176 +193.148.174.135 +192.214.161.162 +193.148.162.176 +193.148.174.170 +193.148.174.135 +193.148.164.120 +193.148.164.78 +193.148.174.28 +193.148.167.254 +193.148.174.137 +192.214.186.245 +45.129.40.244 +192.214.186.64 +45.141.74.91 +192.214.184.105 +192.214.185.16 +45.141.75.97 +192.214.171.95 +192.214.184.152 +45.141.74.40 +45.141.74.152 +45.141.74.157 +45.141.74.163 +45.141.75.171 +45.141.75.30 +192.53.103.108 +192.53.103.104 +192.53.103.103 +194.94.95.123 \ No newline at end of file diff --git a/eu01-stackit-s3.txt b/eu01-stackit-s3.txt new file mode 100644 index 0000000..54b4476 --- /dev/null +++ b/eu01-stackit-s3.txt @@ -0,0 +1 @@ +193.148.160.68 \ No newline at end of file diff --git a/eu01-stackit-ske.txt b/eu01-stackit-ske.txt new file mode 100644 index 0000000..a45bec3 --- /dev/null +++ b/eu01-stackit-ske.txt @@ -0,0 +1,37 @@ +45.135.245.236 +193.148.174.169 +193.148.174.192 +193.148.174.135 +193.148.164.120 +193.148.164.78 +193.148.164.217 +193.148.174.137 +193.148.174.128 +45.129.41.73 +193.148.174.170 +193.148.167.254 +193.148.174.28 +193.148.162.176 +192.214.170.56 +192.214.168.128 +193.148.166.48 +45.129.47.124 +193.148.166.12 +192.214.168.203 +192.214.161.162 +193.148.166.17 +193.148.165.143 +192.214.165.66 +192.214.163.218 +193.148.174.175 +193.148.174.92 +193.148.174.146 +45.129.44.104 +192.214.171.43 +45.135.246.192 +192.53.103.108 +192.53.103.104 +192.53.103.103 +194.94.95.123 +192.214.163.183 +193.148.163.71 \ No newline at end of file diff --git a/main.tf b/main.tf new file mode 100644 index 0000000..90de55a --- /dev/null +++ b/main.tf @@ -0,0 +1,653 @@ +/* +Copyright 2025 STACKIT GmbH & Co. KG + +Use of this source code is governed by an MIT-style +license that can be found in the LICENSE file or at +https://opensource.org/licenses/MIT. +*/ + +resource "stackit_routing_table" "rt-ske" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + name = "${var.routing_table_name}" + system_routes = false +} + +resource "stackit_routing_table_route" "ske-internet" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "0.0.0.0/0" + } + next_hop = { + type = "ipv4" + value = var.default_gateway + } +} + +resource "stackit_routing_table_route" "ske-dns" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "${var.dns_server}/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-1" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.161.162/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-2" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.163.218/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-3" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.165.66/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-4" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.168.128/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-5" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.168.203/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-6" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.170.56/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-7" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.171.43/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-8" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.171.95/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-9" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.184.105/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-10" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.184.152/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-11" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.185.16/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-12" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.186.245/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-13" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.214.186.64/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-14" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.53.103.103/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-15" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.53.103.104/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-16" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "192.53.103.108/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-17" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.160.68/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-18" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.162.176/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-19" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.164.120/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-20" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.164.217/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-21" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.164.78/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-22" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.165.143/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-23" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.166.12/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-24" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.166.17/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-25" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.166.48/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-26" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.167.254/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-27" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.128/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-28" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.135/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-29" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.137/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-30" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.146/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-31" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.169/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-32" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.170/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-33" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.175/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-34" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.192/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-35" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.28/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-36" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "193.148.174.92/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-37" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "194.94.95.123/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-38" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.129.40.244/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-39" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.129.41.73/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-40" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.129.44.104/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-41" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.129.47.124/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-42" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.135.245.236/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-43" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.135.246.192/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-44" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.141.74.152/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-45" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.141.74.157/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-46" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.141.74.163/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-47" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.141.74.40/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-48" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.141.74.91/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-49" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.141.75.171/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-50" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.141.75.30/32" + } + next_hop = { + type = "internet" + } +} +resource "stackit_routing_table_route" "rt-ske-51" { + organization_id = var.stackit_org_id + network_area_id = var.stackit_sna_id + routing_table_id = stackit_routing_table.rt-ske.routing_table_id + destination = { + type = "cidrv4" + value = "45.141.75.97/32" + } + next_hop = { + type = "internet" + } +} \ No newline at end of file diff --git a/output.tf b/output.tf new file mode 100644 index 0000000..878c157 --- /dev/null +++ b/output.tf @@ -0,0 +1,15 @@ +/* +Copyright 2025 STACKIT GmbH & Co. KG + +Use of this source code is governed by an MIT-style +license that can be found in the LICENSE file or at +https://opensource.org/licenses/MIT. +*/ + +output "routing_table_id" { + value = stackit_routing_table.rt-ske.routing_table_id +} + +output "route_table_updated" { + value = stackit_routing_table.rt-ske.updated_at +} \ No newline at end of file diff --git a/variables.tf b/variables.tf new file mode 100644 index 0000000..a675b37 --- /dev/null +++ b/variables.tf @@ -0,0 +1,32 @@ +/* +Copyright 2025 STACKIT GmbH & Co. KG + +Use of this source code is governed by an MIT-style +license that can be found in the LICENSE file or at +https://opensource.org/licenses/MIT. +*/ + +variable "stackit_org_id" { + description = "STACKIT Organization ID" + type = string +} + +variable "stackit_sna_id" { + description = "STACKIT Network Area ID" + type = string +} + +variable "routing_table_name" { + description = "STACKIT Routing Table ID" + type = string +} + +variable "dns_server" { + description = "DNS Server for SKE" + type = string +} + +variable "default_gateway" { + description = "Default Gateway for SKE Workload" + type = string +} \ No newline at end of file diff --git a/versions.tf b/versions.tf new file mode 100644 index 0000000..9b39d09 --- /dev/null +++ b/versions.tf @@ -0,0 +1,18 @@ +/* +Copyright 2025 STACKIT GmbH & Co. KG + +Use of this source code is governed by an MIT-style +license that can be found in the LICENSE file or at +https://opensource.org/licenses/MIT. +*/ + +terraform { + required_version = ">= 1.0" + + required_providers { + stackit = { + source = "stackitcloud/stackit" + version = ">= 0.71.0" + } + } +} \ No newline at end of file