resource "aws_ecr_repository" "control" {
  count                = var.create_ecr_repos ? 1 : 0
  name                 = "${local.name_prefix}-control"
  image_tag_mutability = "MUTABLE"

  image_scanning_configuration {
    scan_on_push = true
  }

  encryption_configuration {
    encryption_type = "AES256"
  }
}

resource "aws_ecr_repository" "plane" {
  count                = var.create_ecr_repos ? 1 : 0
  name                 = "${local.name_prefix}-plane"
  image_tag_mutability = "MUTABLE"

  image_scanning_configuration {
    scan_on_push = true
  }

  encryption_configuration {
    encryption_type = "AES256"
  }
}

resource "aws_ecr_lifecycle_policy" "control" {
  count      = var.create_ecr_repos ? 1 : 0
  repository = aws_ecr_repository.control[0].name

  policy = jsonencode({
    rules = [{
      rulePriority = 1
      description  = "Keep last 20 images"
      selection = {
        tagStatus   = "any"
        countType   = "imageCountMoreThan"
        countNumber = 20
      }
      action = { type = "expire" }
    }]
  })
}

resource "aws_ecr_lifecycle_policy" "plane" {
  count      = var.create_ecr_repos ? 1 : 0
  repository = aws_ecr_repository.plane[0].name

  policy = jsonencode({
    rules = [{
      rulePriority = 1
      description  = "Keep last 20 images"
      selection = {
        tagStatus   = "any"
        countType   = "imageCountMoreThan"
        countNumber = 20
      }
      action = { type = "expire" }
    }]
  })
}
