Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

316
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda