Регулярная очистка ресурсов 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 в соответствии с заданным расписанием.