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

Issues getting started: Sub-dependencies call variable errors #127

Closed thogerb closed 2 years ago

thogerb commented 2 years ago

Hi there!

Looks great with this module, looking forward to trying it out, but I am struggling to get started. It calls a few errors on me in the sub-dependencies, and help would be appreciated. Am I choking up in my versions? (my terraform-lock provided in the end)

Error 1:

│ Error: Unsupported argument
│ 
│   on .terraform/modules/redis/main.tf line 92, in resource "aws_elasticache_replication_group" "default":
│   92:   multi_az_enabled              = var.multi_az_enabled
│ 
│ An argument named "multi_az_enabled" is not expected here.

Error 2:

│ Error: Unsupported argument
│ 
│   on .terraform/modules/redis/main.tf line 105, in resource "aws_elasticache_replication_group" "default":
│  105:   final_snapshot_identifier     = var.final_snapshot_identifier
│ 
│ An argument named "final_snapshot_identifier" is not expected here.

Context:

I try to spin up the module with the example provided + adding my own vpc/subnets. See below:

module "redis" {
  source = "cloudposse/elasticache-redis/aws"
  # Cloud Posse recommends pinning every module to a specific version
  version = "0.39.0"
  availability_zones         = [var.availability_zone]
  namespace                  = var.namespace
  stage                      = var.env_name
  name                       = var.name
  vpc_id                     = data.terraform_remote_state.vpc.outputs.vpc_id
  subnets                    = data.terraform_remote_state.vpc.outputs.database_subnets_ids
  cluster_size               = var.cluster_size
  instance_type              = var.instance_type
  apply_immediately          = true
  automatic_failover_enabled = false
  engine_version             = var.engine_version
  family                     = var.family
  at_rest_encryption_enabled = var.at_rest_encryption_enabled
  transit_encryption_enabled = var.transit_encryption_enabled

  allowed_security_groups    = [data.terraform_remote_state.service.outputs.security_group_id]

  parameter = [
    {
      name  = "notify-keyspace-events"
      value = "lK"
    }
  ]
}

Versions I have in the environment:

Terraform v1.0.5
on darwin_amd64
provider "registry.terraform.io/hashicorp/aws" {
  version     = "2.70.0"
  constraints = ">= 2.0.0, ~> 2.0"
}

provider "registry.terraform.io/hashicorp/local" {
  version     = "2.1.0"
  constraints = ">= 1.2.0"

}

provider "registry.terraform.io/hashicorp/null" {
  version     = "3.1.0"
  constraints = ">= 2.0.0"
}

I am not a super-user of terraform, but not a "newbie" either – although it feels a bit like I might be making a noob mistake here. Any help would be appreciated!

Nuru commented 2 years ago

@thogerb wrote

provider "registry.terraform.io/hashicorp/aws" {
  version     = "2.70.0"
  constraints = ">= 2.0.0, ~> 2.0"
}

Sorry for the lack of documentation about it, but this module requires AWS provider version 3.26 or later.