diff --git a/README.md b/README.md index 3298fe7..f3386a2 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,26 @@ qm set 103 -scsi2 /dev/disk/by-id/usb-WD_BLACK_SN770_1TB_012938055C4B-0:0 grep 5C4B /etc/pve/qemu-server/103.conf ``` +#### Proxmox How to Join a Cluster with Live VM + +Proxmox does not allow nodes to join a cluster with guest VMs running or existing. +The workaround is to backup existing configuration files, join the cluster, and +then restore the files. + +```bash +mkdir -p /root/guest-backup/qemu /root/guest-backup/lxc +cp /etc/pve/qemu-server/*.conf /root/guest-backup/qemu/ +cp /etc/pve/lxc/*.conf /root/guest-backup/lxc/ +rm /etc/pve/qemu-server/*.conf +rm /etc/pve/lxc/*.conf + +# After that, join the node from GUI + +# Finally restore the configuration files +cp /root/guest-backup/qemu/*.conf /etc/pve/qemu-server/ +cp /root/guest-backup/lxc/*.conf /etc/pve/lxc/ +``` + > 📚 Reference: [Proxmox Disk Passthrough Guide]() ### 2. Kubernetes Cluster Setup diff --git a/infra/ansible/inventory/host_vars/proxmox3.yaml b/infra/ansible/inventory/host_vars/proxmox3.yaml new file mode 100644 index 0000000..8a37118 --- /dev/null +++ b/infra/ansible/inventory/host_vars/proxmox3.yaml @@ -0,0 +1,29 @@ +# VM related variables +vm_list: + - id: 301 + name: "vm10" + memory: 4096 + cores: 2 + disk_size: 30G + ip: "192.168.1.172/24" + gateway: "192.168.1.1" + nameserver1: "192.168.1.145" + nameserver2: "1.1.1.1" + - id: 302 + name: "vm11" + memory: 4096 + cores: 2 + disk_size: 30G + ip: "192.168.1.173/24" + gateway: "192.168.1.1" + nameserver1: "192.168.1.145" + nameserver2: "1.1.1.1" + +# cloud-init template variables +node: "homeserver3" +net0: "virtio,bridge=vmbr0" +# disk_name: "local:2000/vm-2000-disk-0.raw,discard=on" +disk_path: "/var/lib/vz/images/3000" +ide2: "local:cloudinit,format=qcow2" +boot_order: "order=scsi0" +scsi_hw: "virtio-scsi-pci" diff --git a/infra/ansible/inventory/hosts.yaml b/infra/ansible/inventory/hosts.yaml index c184f8d..8e1b68a 100644 --- a/infra/ansible/inventory/hosts.yaml +++ b/infra/ansible/inventory/hosts.yaml @@ -7,19 +7,27 @@ hypervisors: children: server1: server2: + server3: server1: hosts: proxmox1: ansible_host: 192.168.1.121 - ansible_user: "{{ ansible_proxmox_user }}" + ansible_user: "{{ ansible_proxmox_user }}" ansible_ssh_private_key_file: "{{ ansible_ssh_private_key_file }}" server2: hosts: proxmox2: ansible_host: 192.168.1.122 - ansible_user: "{{ ansible_proxmox_user }}" + ansible_user: "{{ ansible_proxmox_user }}" + ansible_ssh_private_key_file: "{{ ansible_ssh_private_key_file }}" + +server3: + hosts: + proxmox3: + ansible_host: 192.168.1.123 + ansible_user: "{{ ansible_proxmox_user }}" ansible_ssh_private_key_file: "{{ ansible_ssh_private_key_file }}" vms: @@ -48,4 +56,3 @@ vm_group_2: ansible_host: 192.168.1.162 ansible_user: "{{ ansible_vm_user }}" ansible_ssh_private_key_file: "{{ ansible_ssh_private_key_file }}" - diff --git a/infra/terraform/proxmox/terraform.tfvars b/infra/terraform/proxmox/terraform.tfvars index eeb49b4..7e8403e 100644 --- a/infra/terraform/proxmox/terraform.tfvars +++ b/infra/terraform/proxmox/terraform.tfvars @@ -11,42 +11,42 @@ vms = [ gateway = "192.168.1.1" dns_servers = ["192.168.1.145", "1.1.1.1"] cores = 2 - memory = 2048 + memory = 4096 disk_size = 20 }, { name = "vm7" - node_name = "homeserver1" - vm_id = 106 - ip_address = "192.168.1.152/24" - gateway = "192.168.1.1" - dns_servers = ["192.168.1.145", "1.1.1.1"] - cores = 2 - memory = 2048 - disk_size = 20 - }, - { - name = "vm8" node_name = "homeserver2" vm_id = 205 ip_address = "192.168.1.161/24" gateway = "192.168.1.1" dns_servers = ["192.168.1.145", "1.1.1.1"] cores = 2 - memory = 2048 + memory = 4096 disk_size = 20 }, { - name = "vm9" - node_name = "homeserver2" - vm_id = 206 - ip_address = "192.168.1.162/24" + name = "vm8" + node_name = "homeserver3" + vm_id = 301 + ip_address = "192.168.1.172/24" gateway = "192.168.1.1" dns_servers = ["192.168.1.145", "1.1.1.1"] cores = 2 - memory = 2048 - disk_size = 20 + memory = 4096 + disk_size = 50 + }, + { + name = "vm9" + node_name = "homeserver3" + vm_id = 302 + ip_address = "192.168.1.173/24" + gateway = "192.168.1.1" + dns_servers = ["192.168.1.145", "1.1.1.1"] + cores = 2 + memory = 4096 + disk_size = 50 } ] -nodes = ["homeserver1", "homeserver2"] \ No newline at end of file +nodes = ["homeserver1", "homeserver2", "homeserver3"] \ No newline at end of file diff --git a/infra/terraform/proxmox/variables.tf b/infra/terraform/proxmox/variables.tf index 2caf3a3..f86382c 100644 --- a/infra/terraform/proxmox/variables.tf +++ b/infra/terraform/proxmox/variables.tf @@ -66,7 +66,7 @@ variable "vms" { variable "nodes" { type = list(string) - default = ["homeserver1", "homeserver2"] + default = ["homeserver1", "homeserver2", "homeserver3"] } variable "vm_user_name" { diff --git a/kubernetes/minio/values-tenant.yaml b/kubernetes/minio/values-tenant.yaml index 11eac43..5087420 100644 --- a/kubernetes/minio/values-tenant.yaml +++ b/kubernetes/minio/values-tenant.yaml @@ -29,9 +29,9 @@ tenant: # # image: - repository: quay.io/minio/minio - tag: RELEASE.2025-04-08T15-41-24Z - pullPolicy: IfNotPresent + repository: docker.io/minio/minio + tag: RELEASE.2025-06-13T11-33-47Z-cpuv1 + pullPolicy: Always ### # # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``.