scoder
scoder

Reputation: 2611

terraform select a resource based on condition

is there way to add if condtion for selecting resoucre itself

I want the below resource if env = dev

resource "aws_rds_cluster" "myDB" {
  cluster_identifier      = "aurora-cluster-demo"
  engine                  = "aurora-mysql"
  engine_version          = "5.7.mysql_aurora.2.03.2"
  availability_zones      = ["us-west-2a", "us-west-2b", "us-west-2c"]
  database_name           = "mydb"
  master_username         = "foo"
  master_password         = "bar"
  backup_retention_period = 5
  preferred_backup_window = "07:00-09:00"
}

 resource "route53" "dns" {
 }

else below reource

resource "aws_rds_cluster" "myDB" {
  cluster_identifier      = "aurora-cluster-demo"
  engine                  = "aurora-postgres"
  engine_version          = "5.7.mysql_aurora.2.03.2" 
  database_name           = "mydb"
  master_username         = "foo"
  master_password         = "bar" 
  preferred_backup_window = "07:00-09:00"
}

one wayis I can starting adding all the variables like below, or create a local variable. engine = var.env=dev?"aurora-mysql":"aurora-postgres"

is there any otherway to disable a resource itself ?

Upvotes: 0

Views: 285

Answers (1)

BinaryMonster
BinaryMonster

Reputation: 1218

Maybe something like this also should works with the help of count


resource "aws_rds_cluster" "myDB-mysql" {
  count                   = var.env == dev ? 1 : 0
  cluster_identifier      = "aurora-cluster-demo"
  engine                  = "aurora-mysql"
  engine_version          = "5.7.mysql_aurora.2.03.2"
  availability_zones      = ["us-west-2a", "us-west-2b", "us-west-2c"]
  database_name           = "mydb"
  master_username         = "foo"
  master_password         = "bar"
  backup_retention_period = 5
  preferred_backup_window = "07:00-09:00"
}

resource "aws_rds_cluster" "myDB-postgres" {
  count                   = var.env != dev ? 1 : 0
  cluster_identifier      = "aurora-cluster-demo"
  engine                  = "aurora-postgres"
  engine_version          = "5.7.mysql_aurora.2.03.2" 
  database_name           = "mydb"
  master_username         = "foo"
  master_password         = "bar" 
  preferred_backup_window = "07:00-09:00"
}

Upvotes: 1

Related Questions