cloudposse / terraform-aws-elasticache-redis

Terraform module to provision an ElastiCache Redis Cluster
https://cloudposse.com/accelerate
Apache License 2.0
141 stars 244 forks source link

Count depends on resource to be created when zone_id is used #82

Closed kuczko closed 2 years ago

kuczko commented 4 years ago

Describe the Bug

When i am using this module with zone_id (while zone is not created yet) it results with using terraform-aws-route53-cluster-hostname module, which fails to run as it is using count value which is actually output of another resource to be created.

It results with error:

Error: Invalid count argument

on .terraform/modules/redis.dns/main.tf line 2, in resource "aws_route53_record" "default": 2: count = module.this.enabled ? 1 : 0

The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predict how many instances will be created.

Expected Behavior

The resource should be able to be created from scratch without count value being unknown at the plan time - it should be possible to create the whole infrastructure at the single run, without using --target to resolve dependencies.

Steps to Reproduce

I believe that using any configuration with this module on version 0.24.0 with zone_id, where zone is to be created will trigger an error.

Environment (please complete the following information):

Nuru commented 3 years ago

This is a general and pervasive problem with Terraform. Resolving it would require breaking changes to the module inputs (in this case changing the type of zone_id from string to list and then validating that the list contains no more than 1 item). Considering that DNS Zones are generally very long lived, this does not seem like the kind of change worth breaking backward compatibility for.