aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclyhtsuriva <aimeric@adjutor.xyz>2025-03-03 21:17:33 +0100
committerclyhtsuriva <aimeric@adjutor.xyz>2025-03-03 21:17:33 +0100
commitf8f9666a8e630d6d64a883bca25ccc4ba98d73e4 (patch)
tree81204d58b1be9461c1af4489f7ccde0ec7e09aa0
parentcbe2665fbb9130ec3bd736f4428ea02966b125f4 (diff)
tofu: Use static IPs, clean up vars, reduce workers
-rw-r--r--opentofu/main.tf22
-rw-r--r--opentofu/outputs.tf3
-rw-r--r--opentofu/terraform.tfvars18
-rw-r--r--opentofu/variables.tf10
4 files changed, 17 insertions, 36 deletions
diff --git a/opentofu/main.tf b/opentofu/main.tf
index 1cbd21f..6fa477c 100644
--- a/opentofu/main.tf
+++ b/opentofu/main.tf
@@ -39,7 +39,7 @@ resource "proxmox_virtual_environment_vm" "docker_server" {
initialization {
ip_config {
ipv4 {
- address = "dhcp"
+ address = "192.168.1.150/24,gw=192.168.1.1"
}
}
@@ -50,15 +50,6 @@ resource "proxmox_virtual_environment_vm" "docker_server" {
}
}
-# Run Ansible playbook after VM creation to install Docker
-module "ansible_provision_docker_server" {
- source = "./modules/ansible_provisioner"
- vm_ip = proxmox_virtual_environment_vm.docker_server.ipv4_addresses[1][0] # Use first ip & ensure this is a string
- vm_username = var.vm_username
- ssh_private_key_path = var.ssh_private_key_path
- ansible_playbook_path = var.docker_ansible_playbook_path
- depends_on = [proxmox_virtual_environment_vm.docker_server]
-}
# Master Node (Control Plane)
resource "proxmox_virtual_environment_vm" "k3s_master" {
@@ -67,6 +58,7 @@ resource "proxmox_virtual_environment_vm" "k3s_master" {
node_name = var.proxmox_node
tags = ["ubuntu", "k8s", "k3s_master"]
+
clone {
vm_id = var.ubuntu_server_noble_packer_image_id
full = true
@@ -83,7 +75,7 @@ resource "proxmox_virtual_environment_vm" "k3s_master" {
}
memory {
- dedicated = 4096
+ dedicated = 2048
}
disk {
@@ -102,7 +94,7 @@ resource "proxmox_virtual_environment_vm" "k3s_master" {
initialization {
ip_config {
ipv4 {
- address = "dhcp"
+ address = "192.168.1.14${count.index}/24,gw=192.168.1.1"
}
}
@@ -115,7 +107,7 @@ resource "proxmox_virtual_environment_vm" "k3s_master" {
# Worker Nodes
resource "proxmox_virtual_environment_vm" "k3s_worker" {
- count = 2
+ count = 1
name = "k3s-worker-${count.index}"
node_name = var.proxmox_node
tags = ["debian", "k8s", "k3s_worker"]
@@ -136,7 +128,7 @@ resource "proxmox_virtual_environment_vm" "k3s_worker" {
}
memory {
- dedicated = 2048
+ dedicated = 512
}
disk {
@@ -155,7 +147,7 @@ resource "proxmox_virtual_environment_vm" "k3s_worker" {
initialization {
ip_config {
ipv4 {
- address = "dhcp"
+ address = "192.168.1.13${count.index}/24,gw=192.168.1.1"
}
}
diff --git a/opentofu/outputs.tf b/opentofu/outputs.tf
index 09a05d8..a2de653 100644
--- a/opentofu/outputs.tf
+++ b/opentofu/outputs.tf
@@ -1,6 +1,9 @@
+# Define all VMs
locals {
all_vms = flatten([
[proxmox_virtual_environment_vm.docker_server],
+ [for vm in proxmox_virtual_environment_vm.k3s_master : vm],
+ [for vm in proxmox_virtual_environment_vm.k3s_worker : vm]
])
}
diff --git a/opentofu/terraform.tfvars b/opentofu/terraform.tfvars
index f8094d4..ba8756b 100644
--- a/opentofu/terraform.tfvars
+++ b/opentofu/terraform.tfvars
@@ -1,11 +1,7 @@
-proxmox_api_url = "https://10.0.0.5:8006/api2/json"
-proxmox_node = "pve"
-debian_server_bookworm_packer_image_name = "debian-server-bookworm-12-9-0-amd64"
-debian_server_bookworm_packer_image_id = "999"
-ubuntu_server_noble_packer_image_id = "998"
-ubuntu_server_noble_packer_image_name = "ubuntu-server-noble-24-04-1-amd64"
-vm_username = "mas"
-ssh_private_key_path = "~/.ssh/id_ecdsa"
-ssh_public_key = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCtB9NZgJMVovVR4foT0OOV9GdHeHZoPtK1TGko2W4wli/reKjpUYBhlSPWbaWD9WUbl0RRqdzkODy1fB001zxs= mas@TMV2"
-docker_ansible_playbook_path = "../ansible/playbooks/docker.yml"
-k8s_ansible_playbook_path = "../ansible/playbooks/k8s.yml"
+proxmox_api_url = "https://10.0.0.5:8006/api2/json"
+proxmox_node = "pve"
+debian_server_bookworm_packer_image_id = "999"
+ubuntu_server_noble_packer_image_id = "998"
+vm_username = "mas"
+ssh_private_key_path = "~/.ssh/id_ecdsa"
+ssh_public_key = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCtB9NZgJMVovVR4foT0OOV9GdHeHZoPtK1TGko2W4wli/reKjpUYBhlSPWbaWD9WUbl0RRqdzkODy1fB001zxs= mas@TMV2"
diff --git a/opentofu/variables.tf b/opentofu/variables.tf
index 30f20ec..30e82bf 100644
--- a/opentofu/variables.tf
+++ b/opentofu/variables.tf
@@ -35,13 +35,3 @@ variable "ssh_public_key" {
type = string
sensitive = true
}
-
-variable "docker_ansible_playbook_path" {
- description = "Path to the Ansible playbook for Docker installation"
- type = string
-}
-
-variable "k8s_ansible_playbook_path" {
- description = "Path to the Ansible playbook for k8s installation"
- type = string
-}