Compare commits
3 commits
main
...
gpu-h100-n
| Author | SHA1 | Date | |
|---|---|---|---|
| e50ce7235d | |||
| 688d552a5d | |||
| 78961a6349 |
2 changed files with 56 additions and 41 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
variable "stackit_project_id" {
|
variable "stackit_project_id" {
|
||||||
type = string
|
type = string
|
||||||
default = "XXXXX-XXXX-XXXX-XXXX-XXXXXXX"
|
default = "2b3c1df5-4cb0-4d5e-aed1-3abf211c4c43"
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "stackit_region" {
|
variable "stackit_region" {
|
||||||
|
|
@ -10,5 +10,5 @@ variable "stackit_region" {
|
||||||
|
|
||||||
variable "stackit_service_account_key_path" {
|
variable "stackit_service_account_key_path" {
|
||||||
type = string
|
type = string
|
||||||
default = "./keys/stackit-sa.json"
|
default = "./keys/stackit-sa-nvl.json"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,53 +8,68 @@ resource "stackit_key_pair" "example_keypair" {
|
||||||
public_key = chomp(file("~/.ssh/id_rsa.pub"))
|
public_key = chomp(file("~/.ssh/id_rsa.pub"))
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "stackit_volume" "example_volume" {
|
locals {
|
||||||
project_id = var.stackit_project_id
|
servers = flatten([
|
||||||
size = 72
|
for zone, count in {
|
||||||
source = {
|
eu01-3 = 3,
|
||||||
type = "image"
|
eu01-1 = 3,
|
||||||
// ubuntu 24.04
|
eu01-2 = 2
|
||||||
id = "a2c127b2-b1b5-4aee-986f-41cd11b41279"
|
} : [
|
||||||
}
|
for index in range(count) : {
|
||||||
performance_class = "storage_premium_perf12"
|
name = "example-server-${zone}-${index}"
|
||||||
name = "example-volume"
|
availability_zone = zone
|
||||||
availability_zone = "eu01-m"
|
}
|
||||||
}
|
]
|
||||||
|
])
|
||||||
resource "stackit_network_interface" "example_nic" {
|
|
||||||
project_id = var.stackit_project_id
|
|
||||||
network_id = stackit_network.example_network.network_id
|
|
||||||
security = false
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "stackit_server" "example_server" {
|
|
||||||
project_id = var.stackit_project_id
|
|
||||||
name = "example-server"
|
|
||||||
boot_volume = {
|
|
||||||
source_type = "volume"
|
|
||||||
source_id = stackit_volume.example_volume.volume_id
|
|
||||||
}
|
|
||||||
availability_zone = "eu01-m"
|
|
||||||
// change on the machine type does not affect the underlying volume
|
|
||||||
machine_type = "g1.4"
|
|
||||||
keypair_name = stackit_key_pair.example_keypair.name
|
|
||||||
network_interfaces = [
|
|
||||||
stackit_network_interface.example_nic.network_interface_id
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Create network for each server
|
||||||
resource "stackit_network" "example_network" {
|
resource "stackit_network" "example_network" {
|
||||||
|
for_each = { for server in local.servers : server.name => server }
|
||||||
|
|
||||||
project_id = var.stackit_project_id
|
project_id = var.stackit_project_id
|
||||||
name = "example-network"
|
name = "${each.value.name}-network"
|
||||||
ipv4_prefix_length = 24
|
ipv4_prefix_length = 24
|
||||||
ipv4_nameservers = ["1.1.1.1", "8.8.8.8"]
|
ipv4_nameservers = ["1.1.1.1", "8.8.8.8"]
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "stackit_public_ip" "example_public_ip" {
|
# Create NIC for each server
|
||||||
project_id = var.stackit_project_id
|
resource "stackit_network_interface" "example_nic" {
|
||||||
network_interface_id = stackit_network_interface.example_nic.network_interface_id
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
output "public_ip" {
|
# Create server
|
||||||
value = stackit_public_ip.example_public_ip.ip
|
resource "stackit_server" "example_server" {
|
||||||
|
for_each = { for server in local.servers : server.name => server }
|
||||||
|
|
||||||
|
project_id = var.stackit_project_id
|
||||||
|
name = each.value.name
|
||||||
|
boot_volume = {
|
||||||
|
size = 64
|
||||||
|
source_type = "image"
|
||||||
|
source_id = "a2c127b2-b1b5-4aee-986f-41cd11b41279" // Ubuntu 24.04
|
||||||
|
performance_class = "storage_premium_perf12"
|
||||||
|
}
|
||||||
|
availability_zone = each.value.availability_zone
|
||||||
|
machine_type = "n3.14d.g1"
|
||||||
|
network_interfaces = [
|
||||||
|
stackit_network_interface.example_nic[each.key].network_interface_id
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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[each.key].network_interface_id
|
||||||
|
}
|
||||||
|
|
||||||
|
# Output public IPs
|
||||||
|
output "public_ips" {
|
||||||
|
value = { for name, public_ip in stackit_public_ip.example_public_ip : name => public_ip.ip }
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue