Удаление происходит раз в час, первое удаление всех подходящих снимков будет через 1 час после запуска сервера.
== Обзор ==
Применять может только пользователь с доступом ServerOperations.
Удаление происходит раз в 24 часа (данное время можно задать при запуске сервера опцией <code>--snapshots-cleanup-period</code>, либо в конфигурационном файле, либо переменной окружения <code>SVACER_CLEANUP_SNAPSHOTS_PERIOD</code>), первое удаление всех подходящих снимков будет через указанное время после запуска сервера.
'''Принцип работы:''' происходит проверка всех снимков на соответствие правилам удаления и правилам на запрет удаления, после этого происходит удаление и заносится отметка в таблицу удаленных снимков.{{Note|text=Если снимок не задан в запрещенных к удалению, то он будет удаляться по минимальному времени, среди всех подходящих для него правил.}}
Применять может только пользователь с доступом '''ServerOperations'''.
=== Добавление нового правила удаления ===
'''Принцип работы:''' происходит проверка всех снимков на соответствие правилам удаления и правилам на запрет удаления, после этого происходит удаление самых старых по времени создания подходящих снимков и заносится отметка в таблицу удаленных снимков и в системный журнал. Также информация о удалении через cleanup вносится в системный журнал.
<code>svacer server cleanup add-rule --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name> --time <nowiki><time></nowiki></code>
== Добавление нового правила удаления ==
Где:
* project — проект в котором искать снимки для удаления
* branch — ветка в которой искать снимки для удаления
* snapshot — снимки которые удалять
* time — время сколько должно пройти после создания снимка, чтобы его удалить, задается в формате Go Duration (например 33h5m). По умолчанию 720 часов (30 дней)
Флаги для проекта, ветки и снимка можно задавать как имя либо как ID, также в имени может быть знак *, который равен "любому количеству любых символов". Если данные флаги не заданы, то автоматически подставляется * (любой проект, ветка, снимок).
=== Параметры ===
=== Добавление запрета на удаление ===
* <code>--project</code> — проект, в котором искать снимки для удаления ('''обязательный''', используйте <code>"*"</code> для всех проектов)
<code>svacer server cleanup add-prohibition --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name></code>
* <code>--branch</code> — ветка, в которой искать снимки для удаления ('''обязательный''', используйте <code>"*"</code> для всех веток)
* <code>--snapshot</code> — снимок, который удалять ('''обязательный''', используйте <code>"*"</code> для всех снимков)
* <code>--keep-time</code> — время, которое должно пройти после создания '''(НЕ импорта)''' снимка, чтобы его удалить. Задается в формате Go Duration (например <code>33h5m</code>, <code>720h</code>). По умолчанию '''720 часов''' (30 дней). '''Игнорируется, если <code>--max-snapshots > 0</code>'''
* <code>--min-snapshots</code> — количество снимков, которое необходимо оставлять в ветке, подходящей под паттерн project + branch. По умолчанию 0
=== Шаблоны и паттерны ===
Флаги работают аналогично с <code>svacer server cleanup add-rule</code>
Флаги <code>--project</code>, <code>--branch</code>, <code>--snapshot</code> можно задавать как:
=== Удаление правила ===
'''1. Имя или ID:'''
--project "MyProject"
--project "550e8400-e29b-41d4-a716-446655440000" # UUID проекта
'''2. <code>*</code> (любое количество любых символов):'''
--project "Dev*" # DevProject, Development
--branch "*test*" # test, my-test, testing
--snapshot "nightly-*"
'''3. Регулярные выражения (с префиксом <code>re:</code>):'''
Данное правило выбирает все ветки, кроме <code>main</code>.
<code>svacer server cleanup delete --user admin --password admin --id 878d1d1a-db1a-42a4-9557-ef568f68cd3e</code>
Revision as of 14:53, 30 June 2025
Автоматическое удаление снимков
Удаление происходит раз в час, первое удаление всех подходящих снимков будет через 1 час после запуска сервера.
Применять может только пользователь с доступом ServerOperations.
Принцип работы: происходит проверка всех снимков на соответствие правилам удаления и правилам на запрет удаления, после этого происходит удаление и заносится отметка в таблицу удаленных снимков.
Если снимок не задан в запрещенных к удалению, то он будет удаляться по минимальному времени, среди всех подходящих для него правил.
Добавление нового правила удаления
svacer server cleanup add-rule --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name> --time <time>
Где:
project — проект в котором искать снимки для удаления
branch — ветка в которой искать снимки для удаления
snapshot — снимки которые удалять
time — время сколько должно пройти после создания снимка, чтобы его удалить, задается в формате Go Duration (например 33h5m). По умолчанию 720 часов (30 дней)
Флаги для проекта, ветки и снимка можно задавать как имя либо как ID, также в имени может быть знак *, который равен "любому количеству любых символов". Если данные флаги не заданы, то автоматически подставляется * (любой проект, ветка, снимок).
Добавление запрета на удаление
svacer server cleanup add-prohibition --project <project id or name> --branch <branch id or name> --snapshot <snapshot id or name>
Флаги работают аналогично с svacer server cleanup add-rule
Удаление правила
svacer server cleanup delete --id <config id>
Где:
id — id конфигурации из разрешенных к удалению или запрещенных к удалению
Вывести таблицу
svacer server cleanup list --type <rule|prohibition|log> --format <table|json>
Где:
type — тип таблицы, которую нужно вывести
rule — таблица удаляемых снимков
prohibition — таблица запрещенных к удалению
log — таблица удаленных снимков
format — формат вывода: table — таблица (человекочитаемый вывод), json