Skip to content

Latest commit

 

History

History
87 lines (59 loc) · 2.35 KB

README.md

File metadata and controls

87 lines (59 loc) · 2.35 KB

ECR lifecycle (Alpha)

Delete old images inside ECR repository using python and boto3

python-logo

Pylint

Table of Contents generated with DocToc

Requirements

  • python3
  • pip3

Credentials

Credentials will be taken from your AWS_PROFILE in your terminal when you execute this python script.

$ aws configure
$ export AWS_PROFILE="myprofile" # will be set in the terminal where you'll execute the python script

Installation

This tool is available in pypip package, so you can install it using your command line:

$ pip3 install ecr-lifecycle

Usage

Dry run

$ ecr-lifecycle -a 90 -r eu-west-1 -n repository/test/repo_name -l INFO

Delete images

$ ecr-lifecycle -a 90 -r eu-west-1 -n repository/test/repo_name -l INFO -d

Parameters

  • -a: max age of the image(default: 30 days)
  • -r: aws region
  • -n: ECR repository name
  • -l: level info (default: INFO)
  • -d: (delete) execute the operation and delete images. Is destructive! Execute the cli first without '-d' in dry_run mode

Example

example

TO DO

You can store about 10mil images in a single ECR repository. Imagine, you have 2000mil images older than 90 days and you want to delete it. When you execute the program, the client of boto3 only returns a max of 1000 values, so you need to launch the program two times.

client = boto3.client('ecr', region_name=args.aws_region)
images = client.describe_images(
    repositoryName=args.repository_name,
    maxResults=1000, # here, limit of max results 1000
)

License

LICENSE