|
1 | | -resource "proxmox_vm_qemu" "kubernetes_control_plane" { |
2 | | - depends_on = [proxmox_storage_iso.talos_linux_iso_image] |
3 | | - for_each = var.node_data.controlplanes |
4 | | - name = format("%s-kubernetes-control-plane-%s", var.cluster_name, index(keys(var.node_data.controlplanes), each.key)) |
5 | | - description = "Kubernetes Control Plane" |
6 | | - target_node = var.proxmox_target_node |
7 | | - agent = 1 |
8 | | - vm_state = "running" |
9 | | - memory = 8192 |
10 | | - boot = "order=virtio0;ide2" |
11 | | - nameserver = var.domain_name_server |
| 1 | +resource "proxmox_virtual_environment_vm" "kubernetes_control_plane" { |
| 2 | + depends_on = [proxmox_download_file.talos_linux_iso_image] |
| 3 | + for_each = var.node_data.controlplanes |
| 4 | + name = format("%s-kubernetes-control-plane-%s", var.cluster_name, index(keys(var.node_data.controlplanes), each.key)) |
| 5 | + description = "Kubernetes Control Plane" |
| 6 | + node_name = var.proxmox_target_node |
| 7 | + started = true |
| 8 | + stop_on_destroy = true |
| 9 | + boot_order = ["virtio0", "ide2"] |
| 10 | + |
| 11 | + agent { |
| 12 | + enabled = true |
| 13 | + } |
| 14 | + |
| 15 | + operating_system { |
| 16 | + type = "l26" |
| 17 | + } |
12 | 18 |
|
13 | 19 | cpu { |
14 | 20 | cores = 2 |
| 21 | + type = "host" |
15 | 22 | } |
16 | 23 |
|
17 | | - vga { |
18 | | - type = "std" |
| 24 | + memory { |
| 25 | + dedicated = 8192 |
19 | 26 | } |
20 | 27 |
|
21 | | - disk { |
22 | | - slot = "ide0" |
23 | | - type = "cloudinit" |
24 | | - storage = var.proxmox_storage_device |
| 28 | + vga { |
| 29 | + type = "std" |
25 | 30 | } |
26 | 31 |
|
27 | | - disk { |
28 | | - slot = "ide2" |
29 | | - type = "cdrom" |
30 | | - iso = "local:iso/${var.talos_linux_iso_image_filename}" |
| 32 | + cdrom { |
| 33 | + interface = "ide2" |
| 34 | + file_id = proxmox_download_file.talos_linux_iso_image.id |
31 | 35 | } |
32 | 36 |
|
33 | 37 | disk { |
34 | | - slot = "virtio0" |
35 | | - type = "disk" |
36 | | - storage = var.proxmox_storage_device |
37 | | - size = "50G" |
38 | | - discard = true |
| 38 | + interface = "virtio0" |
| 39 | + datastore_id = var.proxmox_storage_device |
| 40 | + size = 50 |
| 41 | + discard = "on" |
39 | 42 | } |
40 | 43 |
|
41 | | - network { |
42 | | - id = 0 |
43 | | - model = "virtio" |
44 | | - bridge = "vmbr0" |
45 | | - tag = var.vlan_tag |
| 44 | + network_device { |
| 45 | + model = "virtio" |
| 46 | + bridge = "vmbr0" |
| 47 | + vlan_id = var.vlan_tag |
46 | 48 | } |
47 | 49 |
|
48 | 50 | # Cloud init setup |
49 | | - os_type = "cloud-init" |
50 | | - ipconfig0 = "ip=${each.key}/24,gw=${var.network_gateway}" |
| 51 | + initialization { |
| 52 | + interface = "ide0" |
| 53 | + datastore_id = var.proxmox_storage_device |
| 54 | + |
| 55 | + ip_config { |
| 56 | + ipv4 { |
| 57 | + address = "${each.key}/24" |
| 58 | + gateway = var.network_gateway |
| 59 | + } |
| 60 | + } |
| 61 | + |
| 62 | + dns { |
| 63 | + servers = [var.domain_name_server] |
| 64 | + } |
| 65 | + } |
51 | 66 | } |
52 | 67 |
|
53 | 68 |
|
54 | | -resource "proxmox_vm_qemu" "kubernetes_worker" { |
55 | | - depends_on = [proxmox_storage_iso.talos_linux_iso_image] |
56 | | - for_each = var.node_data.workers |
57 | | - name = format("%s-kubernetes-worker-%s", var.cluster_name, index(keys(var.node_data.workers), each.key)) |
58 | | - description = "Kubernetes Worker Node" |
59 | | - target_node = var.proxmox_target_node |
60 | | - agent = 1 |
61 | | - vm_state = "running" |
62 | | - memory = 16384 |
63 | | - boot = "order=virtio0;ide2" |
64 | | - nameserver = var.domain_name_server |
| 69 | +resource "proxmox_virtual_environment_vm" "kubernetes_worker" { |
| 70 | + depends_on = [proxmox_download_file.talos_linux_iso_image] |
| 71 | + for_each = var.node_data.workers |
| 72 | + name = format("%s-kubernetes-worker-%s", var.cluster_name, index(keys(var.node_data.workers), each.key)) |
| 73 | + description = "Kubernetes Worker Node" |
| 74 | + node_name = var.proxmox_target_node |
| 75 | + started = true |
| 76 | + stop_on_destroy = true |
| 77 | + boot_order = ["virtio0", "ide2"] |
| 78 | + |
| 79 | + agent { |
| 80 | + enabled = true |
| 81 | + } |
| 82 | + |
| 83 | + operating_system { |
| 84 | + type = "l26" |
| 85 | + } |
65 | 86 |
|
66 | 87 | cpu { |
67 | 88 | cores = 2 |
| 89 | + type = "host" |
68 | 90 | } |
69 | 91 |
|
70 | | - vga { |
71 | | - type = "std" |
| 92 | + memory { |
| 93 | + dedicated = 16384 |
72 | 94 | } |
73 | 95 |
|
74 | | - disk { |
75 | | - slot = "ide0" |
76 | | - type = "cloudinit" |
77 | | - storage = var.proxmox_storage_device |
| 96 | + vga { |
| 97 | + type = "std" |
78 | 98 | } |
79 | 99 |
|
80 | | - disk { |
81 | | - slot = "ide2" |
82 | | - type = "cdrom" |
83 | | - iso = "local:iso/${var.talos_linux_iso_image_filename}" |
| 100 | + cdrom { |
| 101 | + interface = "ide2" |
| 102 | + file_id = proxmox_download_file.talos_linux_iso_image.id |
84 | 103 | } |
85 | 104 |
|
86 | 105 | disk { |
87 | | - slot = "virtio0" |
88 | | - type = "disk" |
89 | | - storage = var.proxmox_storage_device |
90 | | - size = "50G" |
91 | | - discard = true |
| 106 | + interface = "virtio0" |
| 107 | + datastore_id = var.proxmox_storage_device |
| 108 | + size = 50 |
| 109 | + discard = "on" |
92 | 110 | } |
93 | 111 |
|
94 | | - network { |
95 | | - id = 0 |
96 | | - model = "virtio" |
97 | | - bridge = "vmbr0" |
98 | | - tag = var.vlan_tag |
| 112 | + network_device { |
| 113 | + model = "virtio" |
| 114 | + bridge = "vmbr0" |
| 115 | + vlan_id = var.vlan_tag |
99 | 116 | } |
100 | 117 |
|
101 | 118 | # Cloud init setup |
102 | | - os_type = "cloud-init" |
103 | | - ipconfig0 = "ip=${each.key}/24,gw=${var.network_gateway}" |
| 119 | + initialization { |
| 120 | + interface = "ide0" |
| 121 | + datastore_id = var.proxmox_storage_device |
| 122 | + |
| 123 | + ip_config { |
| 124 | + ipv4 { |
| 125 | + address = "${each.key}/24" |
| 126 | + gateway = var.network_gateway |
| 127 | + } |
| 128 | + } |
| 129 | + |
| 130 | + dns { |
| 131 | + servers = [var.domain_name_server] |
| 132 | + } |
| 133 | + } |
104 | 134 | } |
0 commit comments