Skip to content

Commit 89f736e

Browse files
committed
Allow to use version_stages on secret versions
1 parent c4be9eb commit 89f736e

File tree

2 files changed

+30
-20
lines changed

2 files changed

+30
-20
lines changed

main.tf

+24-20
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ resource "aws_secretsmanager_secret" "sm" {
1818
}
1919

2020
resource "aws_secretsmanager_secret_version" "sm-sv" {
21-
for_each = { for k, v in var.secrets : k => v if !var.unmanaged }
22-
secret_id = aws_secretsmanager_secret.sm[each.key].arn
23-
secret_string = lookup(each.value, "secret_string", null) != null ? lookup(each.value, "secret_string", null) : (lookup(each.value, "secret_key_value", null) != null ? jsonencode(lookup(each.value, "secret_key_value", {})) : null)
24-
secret_binary = lookup(each.value, "secret_binary", null) != null ? base64encode(lookup(each.value, "secret_binary")) : null
25-
depends_on = [aws_secretsmanager_secret.sm]
21+
for_each = { for k, v in var.secrets : k => v if !var.unmanaged }
22+
secret_id = aws_secretsmanager_secret.sm[each.key].arn
23+
secret_string = lookup(each.value, "secret_string", null) != null ? lookup(each.value, "secret_string", null) : (lookup(each.value, "secret_key_value", null) != null ? jsonencode(lookup(each.value, "secret_key_value", {})) : null)
24+
secret_binary = lookup(each.value, "secret_binary", null) != null ? base64encode(lookup(each.value, "secret_binary")) : null
25+
version_stages = var.version_stages
26+
depends_on = [aws_secretsmanager_secret.sm]
2627
lifecycle {
2728
ignore_changes = [
2829
secret_id,
@@ -31,11 +32,12 @@ resource "aws_secretsmanager_secret_version" "sm-sv" {
3132
}
3233

3334
resource "aws_secretsmanager_secret_version" "sm-svu" {
34-
for_each = { for k, v in var.secrets : k => v if var.unmanaged }
35-
secret_id = aws_secretsmanager_secret.sm[each.key].arn
36-
secret_string = lookup(each.value, "secret_string", null) != null ? lookup(each.value, "secret_string") : (lookup(each.value, "secret_key_value", null) != null ? jsonencode(lookup(each.value, "secret_key_value", {})) : null)
37-
secret_binary = lookup(each.value, "secret_binary", null) != null ? base64encode(lookup(each.value, "secret_binary")) : null
38-
depends_on = [aws_secretsmanager_secret.sm]
35+
for_each = { for k, v in var.secrets : k => v if var.unmanaged }
36+
secret_id = aws_secretsmanager_secret.sm[each.key].arn
37+
secret_string = lookup(each.value, "secret_string", null) != null ? lookup(each.value, "secret_string") : (lookup(each.value, "secret_key_value", null) != null ? jsonencode(lookup(each.value, "secret_key_value", {})) : null)
38+
secret_binary = lookup(each.value, "secret_binary", null) != null ? base64encode(lookup(each.value, "secret_binary")) : null
39+
version_stages = var.version_stages
40+
depends_on = [aws_secretsmanager_secret.sm]
3941

4042
lifecycle {
4143
ignore_changes = [
@@ -60,11 +62,12 @@ resource "aws_secretsmanager_secret" "rsm" {
6062
}
6163

6264
resource "aws_secretsmanager_secret_version" "rsm-sv" {
63-
for_each = { for k, v in var.rotate_secrets : k => v if !var.unmanaged }
64-
secret_id = aws_secretsmanager_secret.rsm[each.key].arn
65-
secret_string = lookup(each.value, "secret_string", null) != null ? lookup(each.value, "secret_string") : (lookup(each.value, "secret_key_value", null) != null ? jsonencode(lookup(each.value, "secret_key_value", {})) : null)
66-
secret_binary = lookup(each.value, "secret_binary", null) != null ? base64encode(lookup(each.value, "secret_binary")) : null
67-
depends_on = [aws_secretsmanager_secret.rsm]
65+
for_each = { for k, v in var.rotate_secrets : k => v if !var.unmanaged }
66+
secret_id = aws_secretsmanager_secret.rsm[each.key].arn
67+
secret_string = lookup(each.value, "secret_string", null) != null ? lookup(each.value, "secret_string") : (lookup(each.value, "secret_key_value", null) != null ? jsonencode(lookup(each.value, "secret_key_value", {})) : null)
68+
secret_binary = lookup(each.value, "secret_binary", null) != null ? base64encode(lookup(each.value, "secret_binary")) : null
69+
version_stages = var.version_stages
70+
depends_on = [aws_secretsmanager_secret.rsm]
6871
lifecycle {
6972
ignore_changes = [
7073
secret_id,
@@ -73,11 +76,12 @@ resource "aws_secretsmanager_secret_version" "rsm-sv" {
7376
}
7477

7578
resource "aws_secretsmanager_secret_version" "rsm-svu" {
76-
for_each = { for k, v in var.rotate_secrets : k => v if var.unmanaged }
77-
secret_id = aws_secretsmanager_secret.rsm[each.key].arn
78-
secret_string = lookup(each.value, "secret_string", null) != null ? lookup(each.value, "secret_string") : (lookup(each.value, "secret_key_value", null) != null ? jsonencode(lookup(each.value, "secret_key_value", {})) : null)
79-
secret_binary = lookup(each.value, "secret_binary", null) != null ? base64encode(lookup(each.value, "secret_binary")) : null
80-
depends_on = [aws_secretsmanager_secret.rsm]
79+
for_each = { for k, v in var.rotate_secrets : k => v if var.unmanaged }
80+
secret_id = aws_secretsmanager_secret.rsm[each.key].arn
81+
secret_string = lookup(each.value, "secret_string", null) != null ? lookup(each.value, "secret_string") : (lookup(each.value, "secret_key_value", null) != null ? jsonencode(lookup(each.value, "secret_key_value", {})) : null)
82+
secret_binary = lookup(each.value, "secret_binary", null) != null ? base64encode(lookup(each.value, "secret_binary")) : null
83+
version_stages = var.version_stages
84+
depends_on = [aws_secretsmanager_secret.rsm]
8185

8286
lifecycle {
8387
ignore_changes = [

variables.tf

+6
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ variable "automatically_after_days" {
3030
default = 30
3131
}
3232

33+
variable "version_stages" {
34+
description = "List of version stages to be handled. Kept as null for backwards compatibility."
35+
type = list(string)
36+
default = null
37+
}
38+
3339
# Tags
3440
variable "tags" {
3541
description = "Specifies a key-value map of user-defined tags that are attached to the secret."

0 commit comments

Comments
 (0)