diff --git a/terraform/main.tf b/terraform/main.tf index 1f9f39d..51339e8 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -89,6 +89,7 @@ resource "local_file" "worker_configs" { lan_ip = each.value.lan_ip lan_subnet = each.value.lan_subnet lan_gateway = each.value.lan_gateway + network_interface = each.value.network_interface kubelet_image = local.kubelet_image cluster_dns_ip = local.cluster_dns_ip install_disk = each.value.install_disk @@ -100,6 +101,7 @@ resource "local_file" "worker_configs" { zone = each.value.zone gpu_count = each.value.gpu_count extra_disks = each.value.extra_disks + swap_size = each.value.swap_size # Cluster config cluster_id = var.cluster_id diff --git a/terraform/templates/worker.tftpl b/terraform/templates/worker.tftpl index 5be6c95..323a826 100644 --- a/terraform/templates/worker.tftpl +++ b/terraform/templates/worker.tftpl @@ -12,7 +12,7 @@ machine: network: hostname: ${hostname} interfaces: - - interface: eno1 + - interface: ${network_interface} addresses: - ${lan_ip}/24 routes: @@ -37,11 +37,15 @@ machine: - ${cluster_dns_ip} extraArgs: rotate-server-certificates: true + extraConfig: + memorySwap: + swapBehavior: LimitedSwap nodeIP: validSubnets: - 192.168.1.0/24 install: - disk: ${install_disk} + diskSelector: + match: disk.transport == "nvme" image: ${factory_image} wipe: true grubUseUKICmdline: true @@ -93,3 +97,14 @@ cluster: kubernetes: disabled: true service: {} +%{ if swap_size != "" ~} +--- +apiVersion: v1alpha1 +kind: SwapVolumeConfig +name: swap1 +provisioning: + diskSelector: + match: disk.transport == "nvme" + minSize: ${swap_size} + maxSize: ${swap_size} +%{ endif ~} diff --git a/terraform/tfplan-rename b/terraform/tfplan-rename new file mode 100644 index 0000000..d10b71b Binary files /dev/null and b/terraform/tfplan-rename differ diff --git a/terraform/variables.tf b/terraform/variables.tf index 11d38c8..87f6b27 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -123,14 +123,16 @@ variable "controlplane_configs" { variable "worker_configs" { type = map(object({ - hostname = string - lan_ip = string - lan_subnet = string - lan_gateway = string - install_disk = string - zone = string - gpu_count = optional(number, 0) - factory_image = optional(string) + hostname = string + lan_ip = string + lan_subnet = string + lan_gateway = string + install_disk = string + network_interface = optional(string, "eno1") + zone = string + gpu_count = optional(number, 0) + factory_image = optional(string) + swap_size = optional(string, "") extra_disks = optional(list(object({ device = string mountpoint = string