
resource "upcloud_server" "master" {
  for_each = {
    for name, machine in var.machines :
    name => machine
    if machine.node_type == "master"
  }

  hostname    = "${each.key}.${var.hostname}"
  cpu            = each.value.cpu
  mem       = each.value.mem
  zone            = var.zone

  template {
  storage = var.template_name
  size = each.value.disk_size
  }

  # Network interfaces
 network_interface {
   type = "public"
 }

 network_interface {
   type = "utility"
 }
 # Include at least one public SSH key
 login {
   user = var.username
   keys = var.ssh_public_keys
   create_password = false

 }

}


resource "upcloud_server" "worker" {
  for_each = {
    for name, machine in var.machines :
    name => machine
    if machine.node_type == "worker"
  }

  hostname    = "${each.key}.${var.hostname}"
  cpu            = each.value.cpu
  mem       = each.value.mem
  zone            = var.zone

  template {
  storage = var.template_name
  size = each.value.disk_size
  }

  # Network interfaces
 network_interface {
   type = "public"
 }

 # Include at least one public SSH key
 login {
   user = var.username
   keys = var.ssh_public_keys
   create_password = false
 }
}
