terraform { required_version = ">= 1.5.0" required_providers { aws = { source = "hashicorp/aws" version = ">= 5.0" } } } resource "aws_ecr_repository" "this" { for_each = toset(var.repository_names) name = each.key image_tag_mutability = "MUTABLE" force_delete = var.force_delete image_scanning_configuration { scan_on_push = true } encryption_configuration { encryption_type = "AES256" } tags = var.tags } resource "aws_ecr_lifecycle_policy" "keep_last_20" { for_each = aws_ecr_repository.this repository = each.value.name policy = jsonencode({ rules = [ { rulePriority = 1 description = "Keep only the last 20 images" selection = { tagStatus = "any" countType = "imageCountMoreThan" countNumber = 20 } action = { type = "expire" } } ] }) }