Есть ли способ исключить определенные теги / изображения из политики очистки?
Например. скажем, у меня есть репозиторий с изображениями и соответствующими SHA для запроса на извлечение, который инициировал их создание. Когда они утверждены для развертывания в среде, образ помечается именем этой среды, в результате получается что-то вроде этого:
+---------------------------------------------------------------------------+
| Image Tags | Image URI |
+---------------------------------------------------------------------------+
| sha923456 | 000000.dkr.ecr.eu-west-1.amazonaws.com/myrepo:sha923456 |
+-----------------+---------------------------------------------------------+
| sha823456, test | 000000.dkr.ecr.eu-west-1.amazonaws.com/myrepo:test |
+-----------------+---------------------------------------------------------+
| sha723456 | 000000.dkr.ecr.eu-west-1.amazonaws.com/myrepo:sha723456 |
+-----------------+---------------------------------------------------------+
| sha623456, prod | 000000.dkr.ecr.eu-west-1.amazonaws.com/myrepo:prod |
+-----------------+---------------------------------------------------------+
| sha523456 | 000000.dkr.ecr.eu-west-1.amazonaws.com/myrepo:sha523456 |
+-----------------+---------------------------------------------------------+
Я хочу убедиться, что то, что сейчас развернуто в любой среде, не будет удалено; так эти изображения помечены test
или prod
следует сохранить. Кроме того, следует сохранять теги SHA для изображений.
Кроме того, я хочу хранить все изображения, созданные за последние 90 дней, с помощью тега SHA.
Я рад, что все немаркированные будут удалены.
Применение приведенных ниже правил почти работает; только кажется, что потому что на sha
тег, prod
и test
изображения будут просрочены.
{
"rules": [
{
"rulePriority": 1,
"description": "Remove untagged images",
"selection": {
"tagStatus": "untagged",
"countType": "imageCountMoreThan",
"countNumber": 1
},
"action": {
"type": "expire"
}
},
{
"rulePriority": 100,
"description": "Purge non-deployed images over 90 days old",
"selection": {
"countType": "sinceImagePushed",
"countUnit": "days",
"countNumber": 90,
"tagStatus": "tagged",
"tagPrefixList": [
"sha"
]
},
"action": {
"type": "expire"
}
}
]
}
Я не могу найти никакой документации по добавлению правила «НЕ», и попытка восклицания не сработает.
{
"rulePriority": 100,
"description": "Purge non-deployed images over 90 days old",
"selection": {
"countType": "sinceImagePushed",
"countUnit": "days",
"countNumber": 90,
"tagStatus": "tagged",
"tagPrefixList": [
"!test", "!prod"
]
},
"action": {
"type": "expire"
}
}