ECR Repository with Terraform by *modules

Alex Duncan
2 min readJun 6, 2023
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.0"
}
}
}
terraform {
backend "s3" {
bucket = "bucketmnamewillbeupdated-terraform-dev-backend"
encrypt = true
key = "dev/terraform-adu-service-dev-ecr.tfstate"
}
}
variable "region" {
description = "Region name"
type = string
default = "us-east-1"
}

variable "profile" {
description = "Profile name"
type = string
default = "default"
}
variable "backend_bucket" {
description = "S3 bucket name to store the state file in backend"
type = string
default = "bucketmnamewillbeupdated-terraform-dev-backend"
}
variable "tags" {
description = "tags are defined for ecr"
type = map(string)
default = {
env = "dev"
created-by = "terraform"
}
}
variable "repository_name" {
description = "Name of the repository"
type = string
default = "adu-service-dev"
backend_bucket   = "adu-terraform-dev-backend"

tags = {
env = "development"
created-by = "terraform"
service = "adu-test-service"
}
repository_name="adu-service-dev"
data "aws_caller_identity" "current" {}

################################################################################
# ECR Repository
################################################################################

module "adu-service-ecr" {
source = "terraform-aws-modules/ecr/aws"
version = "1.5.1"

repository_name = var.repository_name

repository_read_write_access_arns = [data.aws_caller_identity.current.arn]
create_lifecycle_policy = true
repository_lifecycle_policy = jsonencode({
rules = [
{
rulePriority = 1,
description = "Keep last 30 images",
selection = {
tagStatus = "tagged",
tagPrefixList = ["v"],
countType = "imageCountMoreThan",
countNumber = 30
},
action = {
type = "expire"
}
}
]
})

repository_force_delete = true

tags = var.tags
}

IT Training Discount Coupon (https://clarusway.referral-factory.com/sW5XCt/join?j=10826&sfmc_sub=2678253&l=1485_HTML&u=106547&mid=546000854&jb=1)

--

--

Alex Duncan

Human, AWS/DevOps Expert, Writer, Reader, Researcher, Traveler