diff options
author | clyhtsuriva <aimeric@adjutor.xyz> | 2025-02-03 13:01:33 +0100 |
---|---|---|
committer | clyhtsuriva <aimeric@adjutor.xyz> | 2025-02-03 13:01:33 +0100 |
commit | d26133790a82e30955aeaa0327a30616788b9aee (patch) | |
tree | bab75464255b3d92377398cdc8ec530d6f1758a4 /opentofu/k8s-cluster.tf | |
parent | cbe1116f9ea9c4b1c0e66125070d33236fe0bbc6 (diff) |
opentofu: main becomes docker-server, starting ubuntu and k8s cluster template
Diffstat (limited to 'opentofu/k8s-cluster.tf')
-rw-r--r-- | opentofu/k8s-cluster.tf | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/opentofu/k8s-cluster.tf b/opentofu/k8s-cluster.tf new file mode 100644 index 0000000..1241399 --- /dev/null +++ b/opentofu/k8s-cluster.tf @@ -0,0 +1,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] +#} |