From 95aad5c78faabb0563dff02dfbe6cd2d76c9b384 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Mon, 21 Jul 2025 13:35:34 +0000 Subject: [PATCH] terraform policy --- .../lambda/extractor_and_loader/docker/ecr.tf | 39 ++++++++++++------- .../lambda/lambda_example/docker/ecr.tf | 2 +- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/deployment/lambda/extractor_and_loader/docker/ecr.tf b/deployment/lambda/extractor_and_loader/docker/ecr.tf index f2b66b7..87bedd9 100644 --- a/deployment/lambda/extractor_and_loader/docker/ecr.tf +++ b/deployment/lambda/extractor_and_loader/docker/ecr.tf @@ -30,20 +30,33 @@ resource "aws_ecr_lifecycle_policy" "extractor_loader_lifecycle" { repository = aws_ecr_repository.extractor_and_loader.name policy = jsonencode({ - rules = [ - { - rulePriority = 1 - description = "Delete tagged images older than 14 days" - selection = { - tagStatus = "tagged" - countType = "sinceImagePushed" - countUnit = "days" - countNumber = 5 + "rules": [ + { + "rulePriority": 2, + "description": "Expire images older than 14 days", + "selection": { + "tagStatus": "untagged", + "countType": "sinceImagePushed", + "countUnit": "days", + "countNumber": 1 + }, + "action": { + "type": "expire" + } + }, + { + "rulePriority": 1, + "description": "Keep last 5 images", + "selection": { + "tagStatus": "tagged", + "tagPrefixList": ["feature"], + "countType": "imageCountMoreThan", + "countNumber": 5 + }, + "action": { + "type": "expire" + } } - action = { - type = "expire" - } - } ] }) } \ No newline at end of file diff --git a/deployment/lambda/lambda_example/docker/ecr.tf b/deployment/lambda/lambda_example/docker/ecr.tf index 5d71101..276697f 100644 --- a/deployment/lambda/lambda_example/docker/ecr.tf +++ b/deployment/lambda/lambda_example/docker/ecr.tf @@ -25,7 +25,7 @@ resource "aws_ecr_repository_policy" "lambda_example_ecr_access" { } # ECR lifecycle policy to delete tagged images older than 14 days -resource "aws_ecr_lifecycle_policy" "extractor_loader_lifecycle" { +resource "aws_ecr_lifecycle_policy" "lambda_example_ecr_lifecycle" { repository = aws_ecr_repository.lambda_example.name policy = jsonencode({