blob: 1241399861af265a1132b7edfc3796ee3e026837 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
resource "proxmox_vm_qemu" "k8s_cp" {
lifecycle {
ignore_changes = [
bootdisk,
]
}
name = "k8s-cp-01"
desc = "k8s control plane"
agent = 1 # Qemu Guest Agent
target_node = var.proxmox_node
tags = "debian;k8s"
clone = var.debian_server_bookworm_packer_image_name
full_clone = true
qemu_os = "other"
cores = 2
sockets = 1
cpu_type = "host"
memory = 6144
scsihw = "virtio-scsi-pci"
bootdisk = "scsi0"
disks {
ide {
ide0 {
cloudinit {
storage = "local-lvm"
}
}
}
virtio {
virtio0 {
disk {
storage = "local-lvm"
size = "32G"
iothread = true
replicate = false
}
}
}
}
network {
id = 0
model = "virtio"
bridge = "vmbr0"
}
# Cloud-Init settings
ipconfig0 = "ip=dhcp"
ciuser = "mas"
sshkeys = var.ssh_public_key
}
resource "proxmox_vm_qemu" "k8s_worker" {
lifecycle {
ignore_changes = [
bootdisk,
]
}
count = var.k8s_worker_vm_count
name = "${var.k8s_worker_vm_name_prefix}-${count.index}"
desc = "k8s worker"
agent = 1 # Qemu Guest Agent
target_node = var.proxmox_node
tags = "debian;k8s"
clone = var.debian_server_bookworm_packer_image_name
full_clone = true
qemu_os = "other"
cores = 1
sockets = 1
cpu_type = "host"
memory = 2048
scsihw = "virtio-scsi-pci"
bootdisk = "scsi0"
disks {
ide {
ide0 {
cloudinit {
storage = "local-lvm"
}
}
}
virtio {
virtio0 {
disk {
storage = "local-lvm"
size = "32G"
iothread = true
replicate = false
}
}
}
}
network {
id = 0
model = "virtio"
bridge = "vmbr0"
}
# Cloud-Init settings
ipconfig0 = "ip=dhcp"
ciuser = "mas"
sshkeys = var.ssh_public_key
}
## Run Ansible playbook after VM creation
#resource "null_resource" "ansible_provisioner" {
# triggers = {
# vm_id = proxmox_vm_qemu.k8s-[worker][cp]-[count.index].id
# }
#
# provisioner "local-exec" {
# command = <<-EOT
# ANSIBLE_HOST_KEY_CHECKING=False ANSIBLE_CONFIG=${path.root}/../ansible/ansible.cfg ansible-playbook \
# -i '${proxmox_vm_qemu.k8s-[worker][cp]-[count.index].default_ipv4_address},' \
# -u ${var.vm_username} \
# --private-key ${var.ssh_private_key_path} \
# ${var.ansible_playbook_path}
# EOT
# }
#
# depends_on = [proxmox_vm_qemu.docker_server]
#}
|