From 628443c06c65fffa8a64aa42c86364273b8495d2 Mon Sep 17 00:00:00 2001 From: pgijsbertsen <117165507+pgijsbertsen@users.noreply.github.com> Date: Mon, 15 Dec 2025 18:23:22 +0100 Subject: [PATCH] feat: Manage storage nic config through machineconfig --- pve01.wheatley.in/k8s-wheatley/main.tf | 24 +++++++++++-------- .../modules/talos-bootstrap/main.tf | 1 + .../templates/machineconfig-worker.yaml.tmpl | 8 +++++++ .../modules/talos-bootstrap/variables.tf | 9 +++---- 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/pve01.wheatley.in/k8s-wheatley/main.tf b/pve01.wheatley.in/k8s-wheatley/main.tf index d5a9bc1..6e63247 100644 --- a/pve01.wheatley.in/k8s-wheatley/main.tf +++ b/pve01.wheatley.in/k8s-wheatley/main.tf @@ -68,16 +68,19 @@ locals { nodes = [ { - name = "worker01" - ip_address = "10.13.37.21" + name = "worker01" + ip_address = "10.13.37.21" + storage_address = "10.0.69.21" }, { - name = "worker02" - ip_address = "10.13.37.22" + name = "worker02" + ip_address = "10.13.37.22" + storage_address = "10.0.69.22" }, { - name = "worker03" - ip_address = "10.13.37.23" + name = "worker03" + ip_address = "10.13.37.23" + storage_address = "10.0.69.23" }, ] } @@ -163,10 +166,11 @@ module "talos-bootstrap" { ], [ for node in local.workers.nodes : { - name = format("k8s-wheatley-%s", node.name) - type = "worker" - ipv4_address = node.ip_address - pvc_disks = local.workers.pvc_disks + name = format("k8s-wheatley-%s", node.name) + type = "worker" + ipv4_address = node.ip_address + storage_address = node.storage_address + pvc_disks = local.workers.pvc_disks } ] ) diff --git a/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/main.tf b/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/main.tf index a5da642..fed2237 100644 --- a/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/main.tf +++ b/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/main.tf @@ -78,6 +78,7 @@ resource "talos_machine_configuration_apply" "config_apply_worker" { cluster_name = var.node_config.cluster_name vip_address = var.node_config.cluster_endpoint node_name = format("%s.wheatley.in", var.node_config.proxmox_node) + storage_address = each.value.storage_address machine_type = each.value.type talos_version = var.node_config.talos_version gateway-api_version = var.node_config.gateway_api_version diff --git a/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/templates/machineconfig-worker.yaml.tmpl b/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/templates/machineconfig-worker.yaml.tmpl index 993a531..aca6c48 100644 --- a/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/templates/machineconfig-worker.yaml.tmpl +++ b/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/templates/machineconfig-worker.yaml.tmpl @@ -8,6 +8,14 @@ machine: hostname: ${hostname} nameservers: - 9.9.9.9 +%{ if storage_address != false ~} + interfaces: + - interface: eth1 + mtu: 9000 + dhcp: false + addresses: + - ${storage_address}/24 +%{ endif ~} kubelet: extraArgs: pod-max-pids: 1000 diff --git a/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/variables.tf b/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/variables.tf index 1bd8b0f..9fb3342 100644 --- a/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/variables.tf +++ b/pve01.wheatley.in/k8s-wheatley/modules/talos-bootstrap/variables.tf @@ -17,9 +17,10 @@ variable "node_config" { variable "talos_nodes" { description = "List of Talos nodes to bootstrap" type = list(object({ - name = string - type = string - ipv4_address = string - pvc_disks = optional(list(number)), + name = string + type = string + ipv4_address = string + storage_address = optional(string) + pvc_disks = optional(list(number)), })) }