lgallard / terraform-aws-secrets-manager

Terraform module to create Amazon Secrets Manager resources.
Apache License 2.0
63 stars 50 forks source link

Output: Secret arns map give empty output. #15

Closed useownyxis closed 3 years ago

useownyxis commented 3 years ago

Hello, I try to use your module in my project. I try to create 3 secrets and it works fine. But I cannot retrieve arns of my secrets. Then I try to get arns from demo code on this github project and I can't retrieve this output too. It's always empty. My terraform project:

main.tf

module "secrets-manager-2" {

  source = "lgallard/secrets-manager/aws"

  secrets = {
    secret-kv-1 = {
      description = "This is a key/value secret"
      secret_key_value = {
        key1 = "value1"
        key2 = "value2"
      }
      recovery_window_in_days = 7
    },
    secret-kv-2 = {
      description = "Another key/value secret"
      secret_key_value = {
        username = "user"
        password = "topsecret"
      }
      tags = {
        app = "web"
      }
      recovery_window_in_days = 7
    },
  }

  tags = {
    Owner       = "DevOps team"
    Environment = "dev"
    Terraform   = true
  }
}

outputs.tf

output "secret_manager_secret_arns" {
  value     = module.secrets-manager-2.secret_arns
  description = "Secrets arns map"
}

Then I type in terminal terraform init and terraform apply and get this:

Apply complete! Resources: 4 added, 0 changed, 0 destroyed.

Outputs:

secret_manager_secret_arns = {
  "rotate_secret_arns" = {}
  "rotate_secret_ids" = {}
  "secret_arns" = {}
  "secret_ids" = {}
}

This resources was created fine and I can find it arns in my terraform.tfstate file(I hide or replace some values):

"module": "module.secrets-manager",
      "mode": "managed",
      "type": "aws_secretsmanager_secret",
      "name": "sm",
      "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
      "instances": [
        {
          "index_key": "my-key",
          "schema_version": 0,
          "attributes": {
            "arn": "arn:aws:secretsmanager:eu-west-1:1111111111:secret:credentials-bla-bla",
            "description": "My description",
            "force_overwrite_replica_secret": false,
            "id": "arn:aws:secretsmanager:eu-west-1:1111111111:secret:credentials-bla-bla",
            "kms_key_id": "",
            "name": "my-name",
            "name_prefix": null,
            "policy": null,
            "recovery_window_in_days": 0,
            "replica": [],
            "rotation_enabled": false,
            "rotation_lambda_arn": "",
            "rotation_rules": [],
            "tags": {
              "env": "my-env"
            },
            "tags_all": {
              "env": "my-env"
            }
          }
        }

But output for module.secrets_arn is

"secret_manager_secret_arns": {
      "value": {},
      "type": [
        "object",
        {}
      ]
    }
exoemay commented 3 years ago

I have the same problem. Unfortunately I can't see why this is happening either, as rotate_secret_arns contains content and looks nearly identical in code.

lgallard commented 3 years ago

@exoemay @useownyxis release 0.5.1 fixes the issue!