# Nomad 多数据中心集群变量定义

variable "deploy_korea_node" {
  description = "是否部署韩国节点 (Oracle Cloud)"
  type        = bool
  default     = true
}

variable "deploy_us_node" {
  description = "是否部署美国节点 (暂时禁用)"
  type        = bool
  default     = false
}

# Oracle Cloud 配置
variable "oracle_config" {
  description = "Oracle Cloud 配置"
  type = object({
    tenancy_ocid     = string
    user_ocid        = string
    fingerprint      = string
    private_key_path = string
    region           = string
    compartment_ocid = string
  })
  sensitive = true
}

variable "oracle_availability_domain" {
  description = "Oracle Cloud 可用域"
  type        = string
  default     = "" # 将通过数据源自动获取
}

variable "oracle_ubuntu_image_id" {
  description = "Oracle Cloud Ubuntu 镜像 ID"
  type        = string
  default     = "" # 将通过数据源自动获取
}

variable "oracle_subnet_id" {
  description = "Oracle Cloud 子网 ID"
  type        = string
}

# 华为云配置 - 暂时禁用
# variable "huawei_config" {
#   description = "华为云配置"
#   type = object({
#     access_key = string
#     secret_key = string
#     region     = string
#   })
#   sensitive = true
# }

# variable "huawei_ubuntu_image_id" {
#   description = "华为云 Ubuntu 镜像 ID"
#   type        = string
#   default     = "" # 将通过数据源自动获取
# }

# variable "huawei_subnet_id" {
#   description = "华为云子网 ID"
#   type        = string
# }

# 通用配置
variable "common_tags" {
  description = "通用标签"
  type        = map(string)
  default = {
    Project     = "nomad-multi-dc"
    Environment = "production"
    ManagedBy   = "terraform"
  }
}

variable "ssh_public_key" {
  description = "SSH 公钥"
  type        = string
}

variable "allowed_cidr_blocks" {
  description = "允许访问的 CIDR 块"
  type        = list(string)
  default     = ["0.0.0.0/0"] # 生产环境应该限制
}

# Nomad 特定配置
variable "nomad_version" {
  description = "Nomad 版本"
  type        = string
  default     = "1.10.5"
}

variable "nomad_encrypt_key" {
  description = "Nomad 集群加密密钥"
  type        = string
  sensitive   = true
  default     = "NVOMDvXblgWfhtzFzOUIHnKEOrbXOkPrkIPbRGGf1YQ="
}

# 网络配置
variable "vpc_cidr" {
  description = "VPC CIDR 块"
  type        = string
  default     = "10.0.0.0/16"
}

variable "availability_zones" {
  description = "可用区列表"
  type        = list(string)
  default     = ["a", "b"]
}