Изменить политику удаления
После создания политики удаления вы можете изменить ее правила, а также статус, имя или описание.
Для обращения к политике используйте ее идентификатор. Как узнать идентификатор политики, читайте в разделе Получить информацию о политиках удаления.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
-
Посмотрите описание команды CLI для обновления параметров политики:
yc container repository lifecycle-policy update --help
-
Измените параметры политики, например, переименуйте политику:
yc container repository lifecycle-policy update crp6lg1868p3i0emkv1b --new-name new-policy
Чтобы изменить политику удаления, воспользуйтесь методом Update для ресурса LifecyclePolicyService. В свойстве lifecycle_policy_id
укажите идентификатор политики.
Получить список политик удаления можно с помощью метода List для ресурса LifecyclePolicyService.
Важно
Задать политику удаления можно только для репозитория. Политика применяется к Docker-образам, имена которых в точности совпадают с именем репозитория. Совпадение по префиксу не поддерживается. Нельзя задать политику для группы репозиториев, реестра, каталога или облака.
Примеры
Изменить правила политики удаления
-
Подготовьте новые правила политики и сохраните их в файл
new-rules.json
.Пример содержимого файла с правилами, где:
description
— описание правила политики.tag_regexp
— тег Docker-образа для фильтрации. Регулярное выражениеtest.*
дляtag_regexp
позволяет получить все образы с тегами, начинающимися на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 crp6lg1868p3i0emkv1b --new-rules ./new-rules.json
Результат:
WARN: All current lifecycle rules will be overwritten. Are you sure?[y/N] y id: crp6lg1868p3i0emkv1b name: test-policy ... expire_period: 172800s tag_regexp: test.* untagged: true
Изменить статус политики удаления
Активируйте политику удаления
Сделайте выключенную политику активной, выполнив команду с флагом --activate
:
yc container repository lifecycle-policy update crp6lg1868p3i0emkv1b --activate
Результат:
id: crp6lg1868p3i0emkv1b
name: test-policy
repository_id: crp3cpm16edqql0t30s2
...
expire_period: 172800s
tag_regexp: test.*
untagged: true
Выключите политику удаления
Выключите активную политику, выполнив команду с флагом --disable
:
yc container repository lifecycle-policy update crp6lg1868p3i0emkv1b --disable
Результат:
id: crp6lg1868p3i0emkv1b
name: test-policy
repository_id: crp3cpm16edqql0t30s2
...
expire_period: 172800s
tag_regexp: test.*
untagged: true
Изменить имя политики удаления
Измените имя политики, выполнив команду:
yc container repository lifecycle-policy update crp6lg1868p3i0emkv1b --new-name new-policy
Где new-name
— новое имя политики:
- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
Результат:
id: crp6lg1868p3i0emkv1b
name: new-policy
repository_id: crp3cpm16edqql0t30s2
...
expire_period: 172800s
tag_regexp: test.*
untagged: true
Изменить описание политики удаления
Измените описание политики, выполнив команду:
yc container repository lifecycle-policy update crp6lg1868p3i0emkv1b --new-description "new description"
Где new-description
— новое описание политики.
Результат:
id: crp6lg1868p3i0emkv1b
name: test-policy
repository_id: crp3cpm16edqql0t30s2
...
expire_period: 172800s
tag_regexp: test.*
untagged: true