Uses Spot Only When Cost Is Configured

This commit is contained in:
2024-12-17 20:03:47 -03:00
parent c82cffbe6d
commit 773a05a108
3 changed files with 12 additions and 9 deletions

View File

@@ -51,7 +51,7 @@ variable "aws_ami" {
variable "aws_spot_price" { variable "aws_spot_price" {
type = number type = number
default = 0.0028 default = 0
} }
variable "cloudflare_api_token" { variable "cloudflare_api_token" {

View File

@@ -35,7 +35,7 @@ variable "aws_ami" {
variable "aws_spot_price" { variable "aws_spot_price" {
type = number type = number
default = 0.0028 default = 0
} }
variable "ssh_public_key_main" { variable "ssh_public_key_main" {

View File

@@ -116,14 +116,17 @@ resource "aws_instance" "worker" {
vpc_security_group_ids = [aws_security_group.project_pool.id] vpc_security_group_ids = [aws_security_group.project_pool.id]
count = var.number_of_workers count = var.number_of_workers
instance_market_options { dynamic "instance_market_options" {
for_each = var.aws_spot_price != 0 ? [var.aws_spot_price] : []
content {
market_type = "spot" market_type = "spot"
spot_options { spot_options {
max_price = var.aws_spot_price max_price = instance_market_options.value
instance_interruption_behavior = "stop" instance_interruption_behavior = "stop"
spot_instance_type = "persistent" spot_instance_type = "persistent"
} }
} }
}
key_name = aws_key_pair.ssh_key_main.key_name key_name = aws_key_pair.ssh_key_main.key_name