Mickael Brangeon
Mickael Brangeon

Reputation: 79

Terraform enclosing issue in variable assignment

I Got a syntax problem with terraform:

Let me write some pseudo code to descript the problem as the line is a bit complicated:

I would like to have display_name equal to force_name when defined.

And if not defined I would like to have name_prefix**-01**

Now the -XX suffix is always added in both case, and I can't enclose it correctly to add it in the else clause.

What I tried: I've tried many enclosing {} "" () in differents places.

resource "exoscale_compute" "generic" {                      
  count = "${var.replicas}"                                  

  affinity_groups = "${var.affinity_group}"                  
  disk_size = "${var.disk_size}"                             
  display_name = "${var.force_name != "" ? var.force_name : var.name_prefix}-${format("%02d", count.index + var.replicas_index_start) }

The issue:

The output is always forcedname**-01** or nameprefix**-01**

What I'd like would be:

forcedname or nameprefix-01

Could you help ? Thanks

Upvotes: 2

Views: 52

Answers (1)

James Thorpe
James Thorpe

Reputation: 32212

You can nest the interpolation, so the 2nd option for the ?: operator becomes another string with more interpolation:

display_name = "${var.force_name != "" ? var.force_name : "${var.name_prefix}-${format("%02d", count.index + var.replicas_index_start)}" }

Upvotes: 1

Related Questions