Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

312
Views
Establecer una política de ciclo de vida para todos los repositorios en ECR

Tengo curiosidad por saber si hay una manera de establecer una política de ciclo de vida común, que se aplicará a todos los repositorios en ECR.

Actualmente, según tengo entendido, no hay forma de hacerlo.

Un enfoque en el que estoy pensando es usar la definición JSON de políticas de ciclo de vida y aplicarla a todos los repositorios con AWS CLI (puede ser un poco automatizado). Pero esto debe ejecutarse cada vez que se crea un nuevo repositorio que agrega complejidad.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Todavía no hay una plantilla de política de ciclo de vida de ECR predeterminada o algo así. Entonces, como mencionó, puede usar aws cli way y asignarlo para que se ejecute desde algún lugar, como Lambda o trabajo k8s:

  1. Obtenga todos los nombres de los repositorios:

     repositories=($(aws ecr describe-repositories --profile=$profile --output text --query "repositories[*].repositoryName"))
  2. Aplicar la política a cada repositorio:

     for repository in "${repositories[@]}"; do aws ecr put-lifecycle-policy --profile=$profile --repository-name $repository --lifecycle-policy-text "file://policy.json" done;
over 4 years ago · Santiago Trujillo Report

0

puedes usar Terraform para eso

 resource "aws_ecr_lifecycle_policy" "untagged_removal_policy" { count = "${length(split(",",local.registries))}" depends_on = [ "aws_ecr_repository.ecr_repositories" ] repository = "${aws_ecr_repository.ecr_repositories.*.name[count.index]}" policy = <<EOF { "rules": [ { "rulePriority": 1, "description": "Expire Docker images older than 7 days", "selection": { "tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 7 }, "action": { "type": "expire" } } ] } EOF

}

over 4 years ago · Santiago Trujillo Report

0

Estoy usando el mapeo de CloudFormation para definir una política y luego aplicarla en todos los repositorios con una línea:

 Mappings: ECRPolicy: DevPolicy: RemoveUntagged: | { "rules": [ { "rulePriority": 1, "description": "Expire images older than 3 days", "selection": { "tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 3 }, "action": { "type": "expire" } } ] }

Y para los repositorios es solo:

 ECRRepository: Type: AWS::ECR::Repository Properties: RepositoryName: !Sub ${ECRRepositoryName}-dev RepositoryPolicyText: Version: "2012-10-17" Statement: - Effect: Allow Action: - ecr:GetAuthorizationToken - ecr:BatchCheckLayerAvailability - ecr:GetDownloadUrlForLayer - ecr:GetRepositoryPolicy - ecr:DescribeRepositories - ecr:ListImages - ecr:DescribeImages - ecr:BatchGetImage Principal: AWS: - !Sub arn:aws:iam::${DevAccount}:root Sid: AllowCrossAccountPull LifecyclePolicy: LifecyclePolicyText: !FindInMap [ECRPolicy, DevPolicy, RemoveUntagged]
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!