Terraform condition not working for empty value

Maya Ray

I am running a condition in terraform. If the publicA is empty, it shouldn't create any subnet. Below is the code and error. Please help. env.tfvars:

subnets_cidrs = [
  {
    vpc_cidr = "10.150.0.0/20"
    publicA            = [""]               #list of IPs
    privateA           = ["10.150.0.0/23","10.150.9.0/26","10.150.7.0/24"] #list of IPs
    publicB            = [""]              #list of IPs
    privateB           = ["10.150.2.0/23","10.150.9.64/26","10.150.8.0/24"] #list of IPs
    publicC            = [""]           #list of IPs
    privateC           = ["10.150.4.0/23","10.150.9.128/26","10.150.6.0/24"]                                #list of IPs
  },

variables.tf

variable "subnets_cidrs" {
  type = list(object({
    vpc_cidr = string
    publicA            = list(string)              #list of IPs
    privateA           = list(string)              #list of IPs
    publicB            = list(string)               #list of IPs
    privateB           = list(string)               #list of IPs
    publicC            = list(string)             #list of IPs
    privateC           = list(string)  
  }))
}

main.tf

resource "aws_subnet" "VPC1PublicSubnetA" {
  count = var.subnets_cidrs[0].vpc_cidr != "" ? length(var.subnets_cidrs[0].publicA) : 0
  vpc_id                  = aws_vpc.VPC1.id
  cidr_block              = var.subnets_cidrs[0].publicA[count.index]
  availability_zone       = element(var.AvailabilityZonesForVPC,0)
  
}

Error:

in resource "aws_subnet" "VPC1PublicSubnetA":
  60:   cidr_block              = var.subnets_cidrs[0].publicA[count.index]



Error: "" is not a valid CIDR block: invalid CIDR address
Marcin

The length of [""] is 1. So your code will always try to run once. To make it zero, use []:

  {
    vpc_cidr = "10.150.0.0/20"
    publicA            = []               #list of IPs
    privateA           = ["10.150.0.0/23","10.150.9.0/26","10.150.7.0/24"] #list of IPs
    publicB            = []              #list of IPs
    privateB           = ["10.150.2.0/23","10.150.9.64/26","10.150.8.0/24"] #list of IPs
    publicC            = []           #list of IPs
    privateC           = ["10.150.4.0/23","10.150.9.128/26","10.150.6.0/24"]                                #list of IPs
  }

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

Terraform Ternary Condition Working in Reverse

terraform dynamic input argument value based on condition

condition.value in Terraform dynamic block picks only value

Handling empty value in for_each and assign default value terraform

How to fill empty cell value in pandas with condition

Terraform assign variable value using for loop if condition is true

How can i replace the value of a variable dynamically in terraform based on a condition

Terraform Interpolation function "join" errors out on empty value

Changing row value according to a condition not working in pandas

If condition working differently for same value in python

Trigger to output value based on condition not working

Cakephp 3 condition with a float value number not working

Why is the value of variable is empty in for loop not working?

wordpress file field not working getting empty value

Validation not working - param is missing or the value is empty carrierwave

TypeORM, add condition in `where` if value is presented and not empty string

Validate filter when empty value or some other condition is met

What will be the value of strlen(str)- 1 in a 'for' loop condition when str is empty?

SQL: How to fill empty cells with previous row value on basis of condition?

How to select data with set condition $_POST is empty and has value

Quit condition on Terraform blueprint

condition on terraform module

Terraform deploy module with a condition

Terraform metadata condition

if condition in terraform in count

Making Both Value to be Condition for django_filters in DRF and Showing Customized Error if the condition is empty

how to check condition php file input image array value is empty or not empty

Mysql 'between' condition not working if value is greater than 9999 with varchar field

React inline styling of component with props value and condition check not working

TOP Ranking

  1. 1

    Failed to listen on localhost:8000 (reason: Cannot assign requested address)

  2. 2

    Loopback Error: connect ECONNREFUSED 127.0.0.1:3306 (MAMP)

  3. 3

    How to import an asset in swift using Bundle.main.path() in a react-native native module

  4. 4

    pump.io port in URL

  5. 5

    Compiler error CS0246 (type or namespace not found) on using Ninject in ASP.NET vNext

  6. 6

    BigQuery - concatenate ignoring NULL

  7. 7

    ngClass error (Can't bind ngClass since it isn't a known property of div) in Angular 11.0.3

  8. 8

    ggplotly no applicable method for 'plotly_build' applied to an object of class "NULL" if statements

  9. 9

    Spring Boot JPA PostgreSQL Web App - Internal Authentication Error

  10. 10

    How to remove the extra space from right in a webview?

  11. 11

    java.lang.NullPointerException: Cannot read the array length because "<local3>" is null

  12. 12

    Jquery different data trapped from direct mousedown event and simulation via $(this).trigger('mousedown');

  13. 13

    flutter: dropdown item programmatically unselect problem

  14. 14

    How to use merge windows unallocated space into Ubuntu using GParted?

  15. 15

    Change dd-mm-yyyy date format of dataframe date column to yyyy-mm-dd

  16. 16

    Nuget add packages gives access denied errors

  17. 17

    Svchost high CPU from Microsoft.BingWeather app errors

  18. 18

    Can't pre-populate phone number and message body in SMS link on iPhones when SMS app is not running in the background

  19. 19

    12.04.3--- Dconf Editor won't show com>canonical>unity option

  20. 20

    Any way to remove trailing whitespace *FOR EDITED* lines in Eclipse [for Java]?

  21. 21

    maven-jaxb2-plugin cannot generate classes due to two declarations cause a collision in ObjectFactory class

HotTag

Archive