Регулярная очистка ресурсов TaskRun и PipelineRun
Обзор
Автоматически очищайте ресурсы TaskRun и PipelineRun в Tekton с помощью функции Pruner. Pruner работает в фоновом режиме, выполняя команду tkn для очистки ресурсов.
Сценарии использования
- Регулярная очистка ресурсов TaskRun
- Регулярная очистка ресурсов PipelineRun
- Настройка разных стратегий очистки для разных namespace
Предварительные требования
- Должен быть установлен компонент Tekton Operator
- В среде должен быть автоматически создан ресурс TektonConfig
Шаги
Шаг 1
Отредактируйте ресурс TektonConfig
Шаг 2
Измените конфигурацию spec.pruner, как показано ниже:
Описание ключевых параметров конфигурации:
disabled: Если задано значениеtrue, отключает функцию pruner (значение по умолчанию:false)schedule: Расписание выполнения задачи очистки в формате cron expressionstartingDeadlineSeconds: Необязательный параметр срока начала задачи (в секундах). Если задача пропустит запланированное время и превысит этот интервал, она будет считаться неуспешнойresources: Поддерживаемые типы ресурсов для очистки, включаяtaskrunиpipelinerunkeep: Максимальное количество ресурсов, которое следует сохранить во время очисткиkeep-since: Сохранять ресурсы в течение заданного времени (в минутах)prune-per-resource: Если задано значениеtrue(значение по умолчанию:false), параметрkeepприменяется отдельно к каждому ресурсу- Например: если в namespace
ns-1есть два Pipeline с именамиpipeline-1иpipeline-2, будут выполнены следующие команды: - Примечание: при использовании
keep-sinceвключениеprune-per-resource=trueне имеет практического смысла, так какkeep-sinceоснован на ограничении по времени для ресурсов и не связан с их количеством.
- Например: если в namespace
Если disabled: false, а schedule пуст, глобальная задача pruner будет отключена.
Однако если в namespace есть аннотация operator.tekton.dev/prune.schedule со значением, для этого namespace будет создана задача pruner.
Шаг 3
Настройте стратегии очистки с помощью аннотаций namespace (необязательно)
По умолчанию задача pruner будет использовать глобальную конфигурацию (spec.pruner), но пользователи могут настраивать конфигурацию pruner для определённых namespace с помощью следующих аннотаций. Если некоторые аннотации отсутствуют или имеют недопустимые значения, будут использованы значения глобальной конфигурации, либо namespace будет пропущен.
Поддерживаемые аннотации:
operator.tekton.dev/prune.skip: Если задано значениеtrue, пропускает задачу pruner для этого namespaceoperator.tekton.dev/prune.schedule: Задает расписание очистки для этого namespaceoperator.tekton.dev/prune.keep: Задает максимальное количество ресурсов, которое следует сохранитьoperator.tekton.dev/prune.keep-since: Задает период хранения ресурсов в течение определённого времени (в минутах)operator.tekton.dev/prune.prune-per-resource: Задает, следует ли применять стратегию очистки отдельно для каждого ресурсаoperator.tekton.dev/prune.resources: Задает типы ресурсов для очистки, это могут бытьtaskrunи/илиpipelinerun, при этом несколько значений разделяются запятымиoperator.tekton.dev/prune.strategy: Задает стратегию очистки, возможные значения:keepилиkeep-since
Пример:
::: note Если глобальная конфигурация не задана, будут использоваться следующие значения по умолчанию:
resources: pipelinerunkeep: 100:::
Результат
После завершения настройки система будет автоматически очищать устаревшие ресурсы TaskRun и PipelineRun в соответствии с заданным расписанием.