Skip to content

Commit 8de8cb7

Browse files
authored
Merge pull request #94 from oreze/fix/make-compatible-with-proxmox-8.4-and-fix-scripts
Make template compatible with Proxmox 8.2.4, fix issues across template
2 parents 67f7a3d + ae1a1e0 commit 8de8cb7

File tree

11 files changed

+148
-122
lines changed

11 files changed

+148
-122
lines changed

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@
55
*.tfplan
66
cloud.tf
77
tmp
8+
*.tfvars
9+
10+
# Exclude example.tfvars from being ignored
11+
!example.tfvars
812

913
# OS files
1014
Icon*
1115
.DS_Store
12-
.env*
16+
.env*
17+

.terraform.lock.hcl

Lines changed: 31 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 59 additions & 61 deletions
Large diffs are not rendered by default.

example.tfvars

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ vm_k8s_worker = {
6363

6464
# Kubernetes settings
6565
########################################################################
66-
kube_version = "v1.24.6"
66+
kube_version = "v1.29.5"
6767
kube_network_plugin = "calico"
6868
enable_nodelocaldns = false
6969
podsecuritypolicy_enabled = false
7070
persistent_volumes_enabled = false
7171
helm_enabled = false
7272
ingress_nginx_enabled = false
7373
argocd_enabled = false
74-
argocd_version = "v2.4.12"
74+
argocd_version = "v2.11.4"

modules/proxmox_ubuntu_vm/main.tf

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
proxmox = {
66
source = "telmate/proxmox"
7-
version = "2.9.14"
7+
version = "3.0.1-rc3"
88
}
99
}
1010
}
@@ -27,27 +27,37 @@ resource "proxmox_vm_qemu" "ubuntu_vm" {
2727
scsihw = "virtio-scsi-single"
2828
hotplug = "network,disk,usb,memory,cpu"
2929
numa = true
30-
automatic_reboot = false
30+
automatic_reboot = true
3131
desc = "This VM is managed by Terraform, cloned from an Cloud-init Ubuntu image, configured with an internal network and supports CPU hotplug/hot unplug and memory hotplug capabilities."
3232
tags = var.vm_tags
3333

34-
disk {
35-
slot = 0
36-
type = "virtio"
37-
storage = var.vm_os_disk_storage
38-
size = "${var.vm_os_disk_size_gb}G"
39-
iothread = 1
40-
}
41-
42-
dynamic "disk" {
43-
for_each = var.add_worker_node_data_disk ? [var.worker_node_data_disk_size] : []
34+
disks {
35+
virtio {
36+
virtio0 {
37+
disk {
38+
size = "${var.vm_os_disk_size_gb}G"
39+
storage = var.vm_os_disk_storage
40+
iothread = true
41+
}
42+
}
4443

45-
content {
46-
slot = 1
47-
type = "virtio"
48-
storage = var.worker_node_data_disk_storage
49-
size = "${var.worker_node_data_disk_size}G"
50-
iothread = 1
44+
dynamic "virtio1" {
45+
for_each = var.add_worker_node_data_disk ? [var.worker_node_data_disk_size] : []
46+
content {
47+
disk {
48+
size = "${var.worker_node_data_disk_size}G"
49+
storage = var.worker_node_data_disk_storage
50+
iothread = true
51+
}
52+
}
53+
}
54+
}
55+
ide {
56+
ide0 {
57+
cloudinit {
58+
storage = var.vm_os_disk_storage
59+
}
60+
}
5161
}
5262
}
5363

modules/proxmox_ubuntu_vm/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ variable "vm_os_disk_storage" {
8888
variable "vm_ubuntu_tmpl_name" {
8989
type = string
9090
description = "Name of Cloud-init template Ubuntu VM."
91-
default = "ubuntu-2204"
91+
default = "ubuntu-2404"
9292
}
9393

9494
variable "vm_host_number" {

providers.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ terraform {
44
required_providers {
55
proxmox = {
66
source = "telmate/proxmox"
7-
version = "2.9.14"
7+
version = "3.0.1-rc3"
88
}
99
null = {
1010
source = "hashicorp/null"
11-
version = "3.2.1"
11+
version = "3.2.2"
1212
}
1313
}
1414
}

scripts/setup_kubespray.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ if ! command -v docker &> /dev/null; then
4242
exit 1
4343
fi
4444

45+
# Check and add DPkg::Lock::Timeout=600 to apt-get install if not already present
46+
if ! grep -q 'apt-get install.*DPkg::Lock::Timeout=600' get-docker.sh; then
47+
sed -i 's/apt-get install/apt-get install -o DPkg::Lock::Timeout=600/g' get-docker.sh
48+
fi
49+
50+
# Check and add DPkg::Lock::Timeout=600 to apt-get update if not already present
51+
if ! grep -q 'apt-get update.*DPkg::Lock::Timeout=600' get-docker.sh; then
52+
sed -i 's/apt-get update/apt-get update -o DPkg::Lock::Timeout=600/g' get-docker.sh
53+
fi
54+
4555
# Install Docker
4656
if ! sudo sh get-docker.sh; then
4757
echo "Error installing Docker. Exiting." >&2

variables.tf

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,13 @@ variable "internal_net_subnet_cidr" {
8888
variable "ssh_private_key" {
8989
type = string
9090
description = "SSH private key in base64, will be used by Terraform client to connect to the VM after provisioning"
91+
sensitive = false
9192
}
9293

9394
variable "ssh_public_keys" {
9495
type = string
9596
description = "SSH public keys in base64"
97+
sensitive = false
9698
}
9799

98100
variable "vm_user" {
@@ -145,7 +147,7 @@ variable "worker_node_data_disk_size" {
145147
variable "vm_ubuntu_tmpl_name" {
146148
type = string
147149
description = "Name of Cloud-init template Ubuntu VM"
148-
default = "ubuntu-2204"
150+
default = "ubuntu-2404"
149151
}
150152

151153
variable "bastion_ssh_ip" {
@@ -191,13 +193,13 @@ variable "create_kubespray_host" {
191193
variable "kubespray_image" {
192194
type = string
193195
description = "The Docker image to deploy Kubespray"
194-
default = "khanhphhub/kubespray:v2.22.0"
196+
default = "quay.io/kubespray/kubespray:v2.25.0"
195197
}
196198

197199
variable "kube_version" {
198200
type = string
199201
description = "Kubernetes version"
200-
default = "v1.24.6"
202+
default = "v1.29.5"
201203
}
202204
variable "kube_network_plugin" {
203205
type = string
@@ -238,7 +240,7 @@ variable "argocd_enabled" {
238240
variable "argocd_version" {
239241
type = string
240242
description = "The ArgoCD version to be installed"
241-
default = "v2.4.12"
243+
default = "v2.11.4"
242244
}
243245

244246

vm-k8s-nodes.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module "k8s_control_plane_nodes" {
1616
vm_net_subnet_cidr = var.internal_net_subnet_cidr
1717
vm_host_number = 10
1818
vm_user = var.vm_user
19-
vm_tags = "${var.env_name};terraform;k8s-control-plane"
19+
vm_tags = "${var.env_name};terraform;k8s_control_plane"
2020
ssh_public_keys = var.ssh_public_keys
2121
use_legacy_naming_convention = var.use_legacy_naming_convention
2222
}
@@ -39,7 +39,7 @@ module "k8s_worker_nodes" {
3939
vm_net_subnet_cidr = var.internal_net_subnet_cidr
4040
vm_host_number = 20
4141
vm_user = var.vm_user
42-
vm_tags = "${var.env_name};terraform;k8s-worker"
42+
vm_tags = "${var.env_name};terraform;k8s_worker"
4343
ssh_public_keys = var.ssh_public_keys
4444
add_worker_node_data_disk = var.add_worker_node_data_disk
4545
worker_node_data_disk_storage = var.worker_node_data_disk_storage

0 commit comments

Comments
 (0)