diff --git a/ecr-lifecycle.tf b/ecr-lifecycle.tf index 888a136..c430b1f 100644 --- a/ecr-lifecycle.tf +++ b/ecr-lifecycle.tf @@ -2,10 +2,10 @@ locals { default_count = 5 lifecycle_policy_specific_repos = compact(distinct(concat( - try(var.lifecycle_policies_default.values, []), - try(var.lifecycle_policies_prefixes.values, []), - try(var.lifecycle_policies_patterns.values, []), - try(var.lifecycle_policies_explicit.values, []), + try(var.lifecycle_policy_default.values, []), + try(var.lifecycle_policy_prefixes.values, []), + try(var.lifecycle_policy_patterns.values, []), + try(var.lifecycle_policy_explicit.values, []), ))) } @@ -26,11 +26,11 @@ data "aws_ecr_lifecycle_policy_document" "default" { count = length(var.lifecycle_policy_default.values) > 0 ? 1 : 0 rule { priority = 1 - description = format("keep %v images", try(var.lifecycle_policies_default.count, local.default_count)) + description = format("keep %v images", try(var.lifecycle_policy_default.count, local.default_count)) selection { tag_status = "any" count_type = "imageCountMoreThan" - count_number = try(var.lifecycle_policies_default.count, local.default_count) + count_number = try(var.lifecycle_policy_default.count, local.default_count) } } } @@ -39,24 +39,24 @@ data "aws_ecr_lifecycle_policy_document" "prefixes" { count = length(var.lifecycle_policy_prefixes.values) > 0 ? 1 : 0 rule { priority = 1 - description = format("keep %v images %v", try(var.lifecycle_policies_prefixes.count, local.default_count), "untagged") + description = format("keep %v images %v", try(var.lifecycle_policy_prefixes.count, local.default_count), "untagged") selection { tag_status = "untagged" count_type = "imageCountMoreThan" - count_number = try(var.lifecycle_policies_prefixes.count, local.default_count) + count_number = try(var.lifecycle_policy_prefixes.count, local.default_count) } } dynamic "rule" { - for_each = toset(local.lifecycle_policies["prefixes"].values) + for_each = toset(try(var.lifecycle_policy_prefixes.values, [])) iterator = i content { - priority = 2 + index(try(var.lifecycle_policies_prefixes.values, []), i.key) - description = format("keep %v images %v", try(var.lifecycle_policies_prefixes.count, local.default_count), i.key) + priority = 2 + index(try(var.lifecycle_policy_prefixes.values, []), i.key) + description = format("keep %v images %v", try(var.lifecycle_policy_prefixes.count, local.default_count), i.key) selection { tag_status = "tagged" tag_prefix_list = [i.key] count_type = "imageCountMoreThan" - count_number = try(var.lifecycle_policies_prefixes.count, local.default_count) + count_number = try(var.lifecycle_policy_prefixes.count, local.default_count) } } } @@ -66,24 +66,24 @@ data "aws_ecr_lifecycle_policy_document" "patterns" { count = length(var.lifecycle_policy_patterns.values) > 0 ? 1 : 0 rule { priority = 1 - description = format("keep %v images %v", try(var.lifecycle_policies_patterns.count, local.default_count), "untagged") + description = format("keep %v images %v", try(var.lifecycle_policy_patterns.count, local.default_count), "untagged") selection { tag_status = "untagged" count_type = "imageCountMoreThan" - count_number = try(var.lifecycle_policies_patterns.count, local.default_count) + count_number = try(var.lifecycle_policy_patterns.count, local.default_count) } } dynamic "rule" { for_each = toset(local.lifecycle_policies["patterns"].values) iterator = i content { - priority = 2 + index(try(var.lifecycle_policies_patterns.values, []), i.key) - description = format("keep %v images %v", try(var.lifecycle_policies_patterns.count, local.default_count), i.key) + priority = 2 + index(try(var.lifecycle_policy_patterns.values, []), i.key) + description = format("keep %v images %v", try(var.lifecycle_policy_patterns.count, local.default_count), i.key) selection { tag_status = "tagged" tag_prefix_list = [i.key] count_type = "imageCountMoreThan" - count_number = try(var.lifecycle_policies_patterns.count, local.default_count) + count_number = try(var.lifecycle_policy_patterns.count, local.default_count) } } } @@ -98,25 +98,25 @@ resource "aws_ecr_lifecycle_policy" "all" { } resource "aws_ecr_lifecycle_policy" "default" { - for_each = toset(try(var.lifecycle_policies_default.repos, [])) + for_each = toset(try(var.lifecycle_policy_default.repos, [])) repository = aws_ecr_repository.apps_repos[each.key].name policy = try(data.aws_ecr_lifecycle_policy_document.default[0].json, null) } resource "aws_ecr_lifecycle_policy" "prefixes" { - for_each = toset(try(var.lifecycle_policies_prefixes.repos, [])) + for_each = toset(try(var.lifecycle_policy_prefixes.repos, [])) repository = aws_ecr_repository.apps_repos[each.key].name policy = try(data.aws_ecr_lifecycle_policy_document.prefixes[0].json, null) } resource "aws_ecr_lifecycle_policy" "patterns" { - for_each = toset(try(var.lifecycle_policies_patterns.repos, [])) + for_each = toset(try(var.lifecycle_policy_patterns.repos, [])) repository = aws_ecr_repository.apps_repos[each.key].name policy = try(data.aws_ecr_lifecycle_policy_document.patterns[0].json, null) } resource "aws_ecr_lifecycle_policy" "explicit" { - for_each = toset(try(var.lifecycle_policies_explicit.repos, [])) + for_each = toset(try(var.lifecycle_policy_explicit.repos, [])) repository = aws_ecr_repository.apps_repos[each.key].name - policy = var.lifecycle_policies_explicit.policy != null ? var.lifecycle_policies_explicit.policy : data.aws_ecr_lifecycle_policy_document.any.json + policy = var.lifecycle_policy_explicit.policy != null ? var.lifecycle_policy_explicit.policy : data.aws_ecr_lifecycle_policy_document.any.json }