blob: c6392cde533c5c41988e6b5f2ef1c92a9dda5072 (
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
|
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
}
# Provision the control plane node and the workers
module "ansible_provision_k8s" {
source = "./modules/ansible_provisioner"
inventory_file_path = local_file.ansible_inventory.filename # Pass inventory path here
vm_username = var.vm_username
ssh_private_key_path = var.ssh_private_key_path
ansible_playbook_path = var.k8s_ansible_playbook_path
}
|