Open
Description
Describe the Bug
Similar to #103. When access_logs_s3_bucket_id = "bucketname"
is set on this module, it produces the following error:
Error: Invalid count argument
on .terraform/modules/alb.access_logs.s3_bucket/main.tf line 163, in resource "aws_s3_bucket_policy" "default":
163: count = module.this.enabled && (var.allow_ssl_requests_only || var.allow_encrypted_uploads_only || var.policy != "") ? 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.
To work around this, use the -target argument to first apply only the
resources that the count depends on.
Expected Behavior
It should produce a valid plan.
Steps to Reproduce
Steps to reproduce the behavior:
- Run init and apply on the .tf file below
- The first time this runs, it says there are no changes, but each subsequent apply, will yield the error above
- Run apply again
- See error
Environment (please complete the following information):
$ terraform version
Terraform v0.13.7
+ provider registry.terraform.io/hashicorp/aws v3.74.2
Additional Context
Here's a simple .tf file to reproduce the issue
variable "vpc_id" {
type = string
description = "The VPC ID"
}
variable "subnet_ids" {
type = list(string)
description = "The Subnet IDs"
default = []
}
variable "bucket_id" {
type = string
description = "The S3 Bucket ID"
}
variable "security_group_ids" {
type = list(string)
description = "The Security Group IDs"
}
module "label" {
source = "cloudposse/label/null"
version = "0.25.0"
namespace = "my"
name = "alb"
stage = "test"
}
module "alb" {
source = "cloudposse/alb/aws"
version = "1.0.0"
context = module.label.context
subnet_ids = var.subnet_ids
vpc_id = var.vpc_id
access_logs_s3_bucket_id = var.bucket_id
access_logs_prefix = "${module.label.namespace}"
alb_access_logs_s3_bucket_force_destroy = true
deletion_protection_enabled = true
target_group_port = 8080
internal = true
health_check_path = "/health"
target_group_name = module.label.id # Needed as our default name is too long.
drop_invalid_header_fields = true
security_group_enabled = false
security_group_ids = var.security_group_ids
}