Изменить политику удаления
После создания политики удаления вы можете изменить ее правила, а также статус, имя или описание.
- В консоли управления
выберите каталог, в котором создан реестр. - В списке сервисов выберите Container Registry.
- Выберите реестр и нажмите на строку с его именем.
- Выберите репозиторий и нажмите на строку с его именем.
- На панели слева нажмите
Жизненный цикл. - В строке с нужной политикой удаления нажмите кнопку
и выберите Редактировать. - Измените параметры политики удаления:
-
Имя.
-
Описание.
-
Статус.
-
В блоке Правила политики удаления измените параметры правил:
- Тег — тег Docker-образа для фильтрации. Поддерживаются регулярные выражения языка Java. Например, выражение
test.*
позволяет получить все образы с тегами, начинающимися наtest
. - Образов без тегов — флаг для применения правила к Docker-образам без тегов.
- Время от создания образа, в сутках — время, через которое Docker-образ может попадать под политику удаления.
- Образов оставить — количество Docker-образов, которые не будут удалены, даже если подходят по правилу.
- Описание.
- Тег — тег Docker-образа для фильтрации. Поддерживаются регулярные выражения языка Java. Например, выражение
-
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
-
Посмотрите описание команды CLI для обновления параметров политики:
yc container repository lifecycle-policy update --help
-
Измените параметры политики, например, переименуйте политику:
yc container repository lifecycle-policy update <идентификатор_политики> \ --new-name=new-policy
Чтобы узнать идентификатор политики, получите список политик удаления в репозитории или в реестре.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте конфигурационный файл и отредактируйте фрагмент с описанием политики:
resource "yandex_container_repository_lifecycle_policy" "my_lifecycle_policy" { name = "best-policy" status = "active" repository_id = "crpfvi6o4ra7********" rule { description = "rule for applying policy" untagged = true tag_regexp = ".*" retained_top = 1 expire_period = "48h" } }
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
После этого в указанном репозитории будет изменена политика удаления. Проверить изменение политики можно в консоли управления
yc container repository lifecycle-policy list --registry-id <идентификатор_реестра>
Чтобы изменить политику удаления, воспользуйтесь методом Update для ресурса LifecyclePolicyService. В свойстве lifecycle_policy_id
укажите идентификатор политики.
Получить список политик удаления можно с помощью метода List для ресурса LifecyclePolicyService.
Примеры
Изменить правила политики удаления
-
Подготовьте новые правила политики и сохраните их в файл
new-rules.json
.Пример содержимого файла с правилами, где:
description
— описание правила политики.tag_regexp
— тег Docker-образа для фильтрации. Поддерживаются регулярные выражения языка Java. Например, выражениеtest.*
позволяет получить все образы с тегами, начинающимися наtest
.untagged
— флаг для применения правила к Docker-образам без тегов.expire_period
— время, через которое Docker-образ может попадать под политику удаления. Формат параметра — число и единица измеренияs
,m
,h
илиd
(секунды, минуты, часы или дни).expire_period
должен быть кратен 24 часам.retained_top
— количество Docker-образов, которые не будут удалены, даже если подходят по правилу.
[ { "description": "delete prod Docker images older than 60 days but retain 20 last ones", "tag_regexp": "prod", "expire_period": "60d", "retained_top": 20 }, { "description": "delete all test Docker images except 10 last ones", "tag_regexp": "test.*", "retained_top": 10 }, { "description": "delete all untagged Docker images older than 48 hours", "untagged": true, "expire_period": "48h" } ]
-
Измените правила политики, выполнив команду со следующим параметром:
new-rules
— путь к файлу с новым описанием политик.
Внимание
Обновление политики полностью перезаписывает все текущие правила — они будут удалены.
yc container repository lifecycle-policy update crp6lg1868p3******** --new-rules ./new-rules.json
Результат:
WARN: All current lifecycle rules will be overwritten. Are you sure?[y/N] y id: crp6lg1868p3******** name: test-policy ... expire_period: 172800s tag_regexp: test.* untagged: true
Изменить статус политики удаления
Активируйте политику удаления
Сделайте выключенную политику активной, выполнив команду с флагом --activate
:
yc container repository lifecycle-policy update crp6lg1868p3******** --activate
Результат:
id: crp6lg1868p3********
name: test-policy
repository_id: crp3cpm16edq********
...
expire_period: 172800s
tag_regexp: test.*
untagged: true
Выключите политику удаления
Выключите активную политику, выполнив команду с флагом --disable
:
yc container repository lifecycle-policy update crp6lg1868p3******** --disable
Результат:
id: crp6lg1868p3********
name: test-policy
repository_id: crp3cpm16edq********
...
expire_period: 172800s
tag_regexp: test.*
untagged: true
Изменить имя политики удаления
Измените имя политики, выполнив команду:
yc container repository lifecycle-policy update crp6lg1868p3******** --new-name new-policy
Где --new-name
— новое имя политики. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
Результат:
id: crp6lg1868p3********
name: new-policy
repository_id: crp3cpm16edq********
...
expire_period: 172800s
tag_regexp: test.*
untagged: true
Изменить описание политики удаления
Измените описание политики, выполнив команду:
yc container repository lifecycle-policy update crp6lg1868p3******** --new-description "new description"
Где --new-description
— новое описание политики.
Результат:
id: crp6lg1868p3********
name: test-policy
repository_id: crp3cpm16edq********
...
expire_period: 172800s
tag_regexp: test.*
untagged: true