You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.2 KiB

  1. resource "upcloud_server" "master" {
  2. for_each = {
  3. for name, machine in var.machines :
  4. name => machine
  5. if machine.node_type == "master"
  6. }
  7. hostname = "${each.key}.${var.hostname}"
  8. cpu = each.value.cpu
  9. mem = each.value.mem
  10. zone = var.zone
  11. template {
  12. storage = var.template_name
  13. size = each.value.disk_size
  14. }
  15. # Network interfaces
  16. network_interface {
  17. type = "public"
  18. }
  19. network_interface {
  20. type = "utility"
  21. }
  22. # Include at least one public SSH key
  23. login {
  24. user = var.username
  25. keys = var.ssh_public_keys
  26. create_password = false
  27. }
  28. }
  29. resource "upcloud_server" "worker" {
  30. for_each = {
  31. for name, machine in var.machines :
  32. name => machine
  33. if machine.node_type == "worker"
  34. }
  35. hostname = "${each.key}.${var.hostname}"
  36. cpu = each.value.cpu
  37. mem = each.value.mem
  38. zone = var.zone
  39. template {
  40. storage = var.template_name
  41. size = each.value.disk_size
  42. }
  43. # Network interfaces
  44. network_interface {
  45. type = "public"
  46. }
  47. # Include at least one public SSH key
  48. login {
  49. user = var.username
  50. keys = var.ssh_public_keys
  51. create_password = false
  52. }
  53. }