Files
aitbc/infra/terraform/environments/variables.tf
AITBC System b033923756 chore: normalize file permissions across repository
- Remove executable permissions from configuration files (.editorconfig, .env.example, .gitignore)
- Remove executable permissions from documentation files (README.md, LICENSE, SECURITY.md)
- Remove executable permissions from web assets (HTML, CSS, JS files)
- Remove executable permissions from data files (JSON, SQL, YAML, requirements.txt)
- Remove executable permissions from source code files across all apps
- Add executable permissions to Python
2026-03-08 11:26:18 +01:00

229 lines
4.7 KiB
HCL

# Shared variables for all environments
variable "cluster_name" {
description = "Name of the Kubernetes cluster"
type = string
}
variable "environment" {
description = "Environment name (dev, staging, prod)"
type = string
validation {
condition = contains(["dev", "staging", "prod"], var.environment)
error_message = "Environment must be dev, staging, or prod."
}
}
variable "aws_region" {
description = "AWS region for resources"
type = string
default = "us-west-2"
}
variable "vpc_cidr" {
description = "CIDR block for VPC"
type = string
}
variable "private_subnet_cidrs" {
description = "CIDR blocks for private subnets"
type = list(string)
}
variable "public_subnet_cidrs" {
description = "CIDR blocks for public subnets"
type = list(string)
}
variable "availability_zones" {
description = "Availability zones to use"
type = list(string)
}
variable "kubernetes_version" {
description = "Kubernetes version"
type = string
default = "1.28"
}
variable "enable_public_endpoint" {
description = "Enable public API endpoint"
type = bool
default = false
}
variable "desired_node_count" {
description = "Desired number of worker nodes"
type = number
default = 2
}
variable "min_node_count" {
description = "Minimum number of worker nodes"
type = number
default = 1
}
variable "max_node_count" {
description = "Maximum number of worker nodes"
type = number
default = 10
}
variable "instance_types" {
description = "EC2 instance types for worker nodes"
type = list(string)
default = ["t3.medium"]
}
# Monitoring and logging
variable "enable_monitoring" {
description = "Enable CloudWatch monitoring"
type = bool
default = true
}
variable "enable_logging" {
description = "Enable centralized logging"
type = bool
default = true
}
variable "enable_alerting" {
description = "Enable alerting (prod only)"
type = bool
default = false
}
variable "log_retention_days" {
description = "Log retention in days"
type = number
default = 30
}
variable "backup_retention_days" {
description = "Backup retention in days"
type = number
default = 7
}
# Application replicas
variable "coordinator_replicas" {
description = "Number of coordinator API replicas"
type = number
default = 1
}
variable "explorer_replicas" {
description = "Number of explorer replicas"
type = number
default = 1
}
variable "marketplace_replicas" {
description = "Number of marketplace replicas"
type = number
default = 1
}
variable "wallet_daemon_replicas" {
description = "Number of wallet daemon replicas"
type = number
default = 1
}
# Database
variable "db_instance_class" {
description = "RDS instance class"
type = string
default = "db.t3.micro"
}
variable "db_allocated_storage" {
description = "Allocated storage in GB"
type = number
default = 20
}
variable "db_multi_az" {
description = "Enable Multi-AZ deployment"
type = bool
default = false
}
variable "db_backup_window" {
description = "Preferred backup window"
type = string
default = "03:00-04:00"
}
variable "db_maintenance_window" {
description = "Preferred maintenance window"
type = string
default = "Mon:04:00-Mon:05:00"
}
# Security
variable "enable_encryption" {
description = "Enable encryption at rest"
type = bool
default = true
}
variable "enable_waf" {
description = "Enable WAF protection"
type = bool
default = false
}
variable "ssl_policy" {
description = "SSL policy for load balancers"
type = string
default = "ELBSecurityPolicy-TLS-1-2-2017-01"
}
# Autoscaling
variable "enable_cluster_autoscaler" {
description = "Enable cluster autoscaler"
type = bool
default = false
}
variable "enable_hpa" {
description = "Enable horizontal pod autoscaler"
type = bool
default = false
}
# GPU nodes
variable "gpu_node_group_enabled" {
description = "Enable GPU node group for miners"
type = bool
default = false
}
variable "gpu_instance_types" {
description = "GPU instance types"
type = list(string)
default = ["g4dn.xlarge"]
}
variable "gpu_min_nodes" {
description = "Minimum GPU nodes"
type = number
default = 0
}
variable "gpu_max_nodes" {
description = "Maximum GPU nodes"
type = number
default = 5
}
# Tags
variable "tags" {
description = "Common tags for all resources"
type = map(string)
default = {}
}