- 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
229 lines
4.7 KiB
HCL
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 = {}
|
|
}
|