# 开发环境变量定义 variable "environment" { description = "环境名称" type = string default = "dev" } variable "project_name" { description = "项目名称" type = string default = "mgmt" } variable "owner" { description = "项目所有者" type = string default = "ben" } variable "cloud_providers" { description = "要启用的云服务商列表" type = list(string) default = ["oracle"] } variable "vpc_cidr" { description = "VPC CIDR 块" type = string default = "10.0.0.0/16" } variable "availability_zones" { description = "可用区列表" type = list(string) default = ["a", "b"] } variable "common_tags" { description = "通用标签" type = map(string) default = { Environment = "dev" Project = "mgmt" ManagedBy = "terraform" } } # Oracle Cloud 配置 variable "oci_config" { description = "Oracle Cloud 配置" type = object({ tenancy_ocid = string user_ocid = string fingerprint = string private_key_path = string region = string compartment_ocid = optional(string) }) default = { tenancy_ocid = "" user_ocid = "" fingerprint = "" private_key_path = "" region = "ap-seoul-1" compartment_ocid = "" } } # 华为云配置 variable "huawei_config" { description = "华为云配置" type = object({ access_key = string secret_key = string region = string project_id = optional(string) }) default = { access_key = "" secret_key = "" region = "cn-north-4" project_id = "" } sensitive = true } # Google Cloud 配置 variable "gcp_config" { description = "Google Cloud 配置" type = object({ project_id = string region = string zone = string credentials_file = string }) default = { project_id = "" region = "asia-northeast3" zone = "asia-northeast3-a" credentials_file = "" } } # AWS 配置 variable "aws_config" { description = "AWS 配置" type = object({ region = string access_key = string secret_key = string }) default = { region = "ap-northeast-2" access_key = "" secret_key = "" } sensitive = true } # DigitalOcean 配置 variable "do_config" { description = "DigitalOcean 配置" type = object({ token = string region = string }) default = { token = "" region = "sgp1" } sensitive = true } # HashiCorp Vault 配置 - 使用Tailscale IP而非localhost variable "vault_config" { description = "HashiCorp Vault 配置" type = object({ address = string token = string }) default = { address = "http://100.116.158.95:8200" token = "" } sensitive = true } variable "vault_token" { description = "Vault 访问令牌" type = string default = "" sensitive = true }