Skip to content

Using count to generate secrets, can take to secret deletion and recreation... #13

@marcportabellaclotet-mt

Description

Alternatively, it can be used for_each approach

resource "aws_secretsmanager_secret" "sm" {
  for_each =  var.secrets
  name                    = each.key
  name_prefix             = can(each.value.name_prefix) ? each.value.name_prefix : null
  description             = can(each.value.description) ? each.value.description : null
  kms_key_id              = can(each.value.kms_key_id) ? each.value.kms_key_id : null
  policy                  = can(each.value.policy) ? each.value.policy : null
  recovery_window_in_days = can(each.value.recovery_window_in_days) ? each.value.recovery_window_in_days : 7
  tags                    = can(var.tags) ? var.tags : null 
}

resource "aws_secretsmanager_secret_version" "sm-sv" {
  for_each      = var.secrets
  secret_id     = each.key
  secret_string = jsonencode(each.value.secrets)
  depends_on    = [aws_secretsmanager_secret.sm]
} 

And defining secrets like this:

module "configuration_data" {
  source = "../../../modules/aws/secrets"
  secrets = { 
      "mysecret1" : { 
          secrets = {
            key1 = "value1"
            key2 = "value2" 
          } 
      },
      "mysecret2" : { 
          secrets = {
            key1 = "value1"
            key2 = "value2" 
          } 
      }   
  }
  tags = {}
   
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions