diff --git a/tofu/kubernetes/main.tf b/tofu/kubernetes/main.tf index 74edb22..1814b85 100644 --- a/tofu/kubernetes/main.tf +++ b/tofu/kubernetes/main.tf @@ -19,22 +19,21 @@ module "talos" { } cluster = { - name = "talos" + name = "talos" # This should point to the vip as below(if nodes on layer 2) or one of the nodes (if nodes not on layer 2) # Note: Nodes are not on layer 2 if there is a router between them (even a mesh router) # Not sure how it works if connected to the same router via ethernet (does it act as a switch then???) # Ref: https://www.talos.dev/v1.9/talos-guides/network/vip/#requirements # Note This is Kubernetes API endpoint. Different from all mentions of Talos endpoints. - endpoint = "192.168.1.102" - # Omit this if devices are not connected on layer 2 - vip = "192.168.1.99" - gateway = "192.168.1.1" + endpoint = "192.168.1.102" + vip = "192.168.1.99" + gateway = "192.168.1.1" # The version of talos features to use in generated machine configuration. Generally the same as image version. # See https://github.com/siderolabs/terraform-provider-talos/blob/main/docs/data-sources/machine_configuration.md - talos_machine_config_version = "v1.9.2" - proxmox_cluster = "homelab" + talos_machine_config_version = "v1.9.2" + proxmox_cluster = "homelab" kubernetes_version = "1.32.0" # renovate: github-releases=kubernetes/kubernetes - base_domain = "stonegarden.dev" + base_domain = "stonegarden.dev" } nodes = { diff --git a/tofu/kubernetes/talos/config.tf b/tofu/kubernetes/talos/config.tf index 3e2b0e3..6443f68 100644 --- a/tofu/kubernetes/talos/config.tf +++ b/tofu/kubernetes/talos/config.tf @@ -12,14 +12,16 @@ data "talos_client_configuration" "this" { } data "talos_machine_configuration" "this" { - for_each = var.nodes - cluster_name = var.cluster.name + for_each = var.nodes + cluster_name = var.cluster.name # This is the Kubernetes API Server endpoint. # ref - https://www.talos.dev/v1.9/introduction/prodnotes/#decide-the-kubernetes-endpoint cluster_endpoint = "https://${var.cluster.endpoint}:6443" - talos_version = var.cluster.talos_machine_config_version - machine_type = each.value.machine_type - machine_secrets = talos_machine_secrets.this.machine_secrets + # @formatter:off + talos_version = var.cluster.talos_machine_config_version != null ? var.cluster.talos_machine_config_version : (each.value.update == true ? var.image.update_version : var.image.version) + # @formatter:on + machine_type = each.value.machine_type + machine_secrets = talos_machine_secrets.this.machine_secrets config_patches = [ templatefile("${path.module}/machine-config/common.yaml.tftpl", { node_name = each.value.host_node diff --git a/tofu/kubernetes/talos/variables.tf b/tofu/kubernetes/talos/variables.tf index 64052dc..dc0e912 100644 --- a/tofu/kubernetes/talos/variables.tf +++ b/tofu/kubernetes/talos/variables.tf @@ -20,7 +20,7 @@ variable "cluster" { vip = optional(string) gateway = string subnet_mask = optional(string, "24") - talos_machine_config_version = string + talos_machine_config_version = optional(string) proxmox_cluster = string kubernetes_version = string base_domain = string