variable "k3s_token" { description = "Shared secret for k3s cluster join (set via TF_VAR or tfvars)" type = string sensitive = true } module "control_plane" { source = "../../modules/base-template" name = "k3s-cp" node_count = 1 extra_cloud_init_parts = [{ content_type = "text/cloud-config" content = templatefile("${path.module}/cloud-init-cp.yaml", { k3s_token = var.k3s_token }) }] } module "workers" { source = "../../modules/base-template" name = "k3s-worker" node_count = 2 extra_cloud_init_parts = [{ content_type = "text/cloud-config" content = templatefile("${path.module}/cloud-init-worker.yaml", { cp_ip = values(module.control_plane.machines)[0] join_token = var.k3s_token }) }] } output "cluster" { value = { control_plane = module.control_plane.machines workers = module.workers.machines } }