# This file handles environment variable loading from .env file locals { # Parse .env file if it exists and make variables available env_file_exists = fileexists("${path.module}/.env") # Read and parse .env file content env_file_content = local.env_file_exists ? file("${path.module}/.env") : "" # Convert lines to key-value pairs env_vars = local.env_file_exists ? { for line in compact(split("\n", local.env_file_content)) : trimspace(split("=", line)[0]) => trimspace(join("=", slice(split("=", line), 1, length(split("=", line))))) if length(split("=", line)) > 1 && !startswith(trimspace(line), "#") } : {} # Environment variables that can override Terraform variables server_ip_override = lookup(local.env_vars, "SERVER_IP", "") worker_ips_override = lookup(local.env_vars, "WORKER_IPS", "") ssh_user_override = lookup(local.env_vars, "SSH_USER", "") ssh_private_key_override = lookup(local.env_vars, "SSH_PRIVATE_KEY", "") domain_override = lookup(local.env_vars, "DOMAIN", "") k3s_version_override = lookup(local.env_vars, "K3S_VERSION", "") } # Use environment variables if provided, otherwise use terraform.tfvars values locals { effective_server_ip = local.server_ip_override != "" ? local.server_ip_override : var.server_ip effective_worker_ips = local.worker_ips_override != "" ? split(",", local.worker_ips_override) : var.worker_ips effective_ssh_user = local.ssh_user_override != "" ? local.ssh_user_override : var.ssh_user effective_ssh_private_key = local.ssh_private_key_override != "" ? local.ssh_private_key_override : var.ssh_private_key effective_domain = local.domain_override != "" ? local.domain_override : var.domain effective_k3s_version = local.k3s_version_override != "" ? local.k3s_version_override : var.k3s_version }