# Variables for the Raspberry Pi 4 Talos control-plane node that joins the r740 # "kube" cluster as a third etcd member to restore quorum (2-of-3 majority). # # Secret handling: the cluster machine secrets (cluster id/secret, etcd/k8s # certs, bootstrap token) are NOT read from terraform state (the r740 state is # stale) and are NOT generated here (that would create a new, incompatible # cluster). Instead they are provided via `machine_secrets_file` — a local, # gitignored JSON file in the Talos provider's machine_secrets format. The # file is produced once from the live r740 node (see # scripts/extract-talos-secrets.sh) and stored in a real secret manager # (Bitwarden); you paste it back to disk when running this module. Ephemeral # resources + write-only attributes ensure the secrets never land in Terraform # state. variable "rpi4_host" { description = "Reachable IP/hostname of the rpi4 Talos node (for Talos API access). With DHCP this is the leased IP (e.g. 10.1.2.135)." type = string } variable "rpi4_node_name" { description = "Kubernetes/Talos node name for the rpi4 (e.g. rpi4). Pinned via machine.network.hostname so the node registers with this name regardless of DHCP." type = string default = "rpi4" } # --- Cluster identity (no terraform_remote_state — state is stale) ---------- variable "cluster_name" { description = "Name of the existing Talos cluster the rpi4 joins. Must match the cluster the r740 bootstrapped (kube-r740)." type = string default = "kube-r740" } variable "cluster_endpoint" { description = "Endpoint (host:port) of the Talos/Kubernetes API on the cluster. Must match the r740 bootstrap endpoint." type = string default = "https://kube-r740.lan:6443" } # --- Secrets (provided manually, never in state) --------------------------- variable "machine_secrets_file" { description = <