Исключение из политики жизненного цикла ECR
В нашем ECR мы ежедневно выдвигаем много изображений с тегом 16_XXXX. Некоторые из загруженных изображений не являются стабильной версией приложения. Когда есть стабильная версия, мы помечаем изображение тегом 16.XXXX.
Мы настроили политику жизненного цикла для очистки изображений с тегом 16_XXXX в imageCountMoreThan (500). Поскольку существуют изображения с двумя тегами (т.е. стабильная версия) (например, 16_0715 и 16.0715), будут ли они также очищены?
Мы не хотим удалять все стабильные версии изображений. Есть ли способ повторно пометить изображение и удалить старый тег, чтобы исключить его из политики жизненного цикла ECR?
Спасибо!
1 ответ
Если у вас есть только одно правило, оно действительно удалит ваши стабильные изображения.
Однако вы можете сделать это с помощью 2 правил в политике. Правило с приоритетом 10 сохранит ваши стабильные изображения (16.XXXX) в безопасности, а правило с приоритетом 20 будет "видеть" количество тегов с вашими нестабильными версиями (16_XXXX), но не сможет удалить стабильное изображение, потому что оно в более высоком приоритете. Вот пример:
{
"rules": [
{
"rulePriority": 10,
"description": "Keep Stable Images",
"selection": {
"tagStatus": "tagged",
"tagPrefixList": ["16."],
"countType": "imageCountMoreThan",
"countNumber": 9999
},
"action": {
"type": "expire"
}
},
{
"rulePriority": 20,
"description": "Delete Old Unstable Images",
"selection": {
"tagStatus": "tagged",
"tagPrefixList": ["16_"],
"countType": "imageCountMoreThan",
"countNumber": 500
},
"action": {
"type": "expire"
}
}
]
}
Источник: я написал логику оценки правил для политик жизненного цикла:) Вы также можете проверить документы, в нижней части этой страницы описаны некоторые факты о системе, которой могут воспользоваться пользователи: https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html
An image that matches the tagging requirements of a rule cannot be expired by a rule with a lower priority.