Files
smom-dbis-138/terraform/multi-cloud/variables.tf

193 lines
4.4 KiB
Terraform
Raw Normal View History

# Variables for Multi-Cloud Deployment
variable "environment" {
description = "Environment name (prod, dev, test, staging)"
type = string
default = "prod"
validation {
condition = contains(["prod", "dev", "test", "staging"], var.environment)
error_message = "Environment must be one of: prod, dev, test, staging"
}
}
variable "deployment_strategy" {
description = "Deployment strategy (blue-green, canary, rolling)"
type = string
default = "blue-green"
validation {
condition = contains(["blue-green", "canary", "rolling"], var.deployment_strategy)
error_message = "Deployment strategy must be one of: blue-green, canary, rolling"
}
}
variable "enable_azure_arc" {
description = "Enable Azure Arc for hybrid management"
type = bool
default = true
}
variable "enable_service_mesh" {
description = "Enable service mesh for cross-cloud communication"
type = bool
default = true
}
variable "service_mesh_provider" {
description = "Service mesh provider (istio, linkerd, kuma)"
type = string
default = "istio"
validation {
condition = contains(["istio", "linkerd", "kuma"], var.service_mesh_provider)
error_message = "Service mesh provider must be one of: istio, linkerd, kuma"
}
}
variable "secrets_provider" {
description = "Primary secrets management provider"
type = string
default = "vault"
validation {
condition = contains(["vault", "azure-keyvault", "aws-secrets-manager", "gcp-secret-manager"], var.secrets_provider)
error_message = "Secrets provider must be one of: vault, azure-keyvault, aws-secrets-manager, gcp-secret-manager"
}
}
variable "vault_address" {
description = "HashiCorp Vault address (if using Vault)"
type = string
default = ""
}
variable "vault_token" {
description = "HashiCorp Vault token (if using Vault)"
type = string
default = ""
sensitive = true
}
# Azure-specific variables
variable "azure_subscription_id" {
description = "Azure subscription ID"
type = string
default = ""
}
variable "azure_tenant_id" {
description = "Azure tenant ID"
type = string
default = ""
}
# AWS-specific variables
variable "aws_access_key_id" {
description = "AWS access key ID"
type = string
default = ""
sensitive = true
}
variable "aws_secret_access_key" {
description = "AWS secret access key"
type = string
default = ""
sensitive = true
}
variable "aws_default_region" {
description = "AWS default region"
type = string
default = "us-west-2"
}
# GCP-specific variables
variable "gcp_project_id" {
description = "GCP project ID"
type = string
default = ""
}
variable "gcp_default_region" {
description = "GCP default region"
type = string
default = "europe-west1"
}
# IBM Cloud-specific variables
variable "ibm_api_key" {
description = "IBM Cloud API key"
type = string
default = ""
sensitive = true
}
variable "ibm_default_region" {
description = "IBM Cloud default region"
type = string
default = "us-south"
}
# Oracle Cloud-specific variables
variable "oci_tenancy_ocid" {
description = "OCI tenancy OCID"
type = string
default = ""
}
variable "oci_user_ocid" {
description = "OCI user OCID"
type = string
default = ""
}
variable "oci_fingerprint" {
description = "OCI API key fingerprint"
type = string
default = ""
}
variable "oci_private_key_path" {
description = "Path to OCI private key"
type = string
default = ""
}
variable "oci_default_region" {
description = "OCI default region"
type = string
default = "us-ashburn-1"
}
# vSphere/On-prem variables
variable "vsphere_user" {
description = "vSphere username"
type = string
default = ""
}
variable "vsphere_password" {
description = "vSphere password"
type = string
default = ""
sensitive = true
}
variable "vsphere_server" {
description = "vSphere server address"
type = string
default = ""
}
variable "tags" {
description = "Common tags to apply to all resources"
type = map(string)
default = {
Environment = "production"
Project = "DeFi Oracle Meta Mainnet"
ChainID = "138"
ManagedBy = "Terraform"
CostCenter = "Blockchain"
Owner = "DevOps Team"
}
}