Регулярная очистка ресурсов TaskRun и PipelineRun
Обзор
Автоматическая очистка ресурсов TaskRun и PipelineRun в Tekton с использованием функции Pruner. Pruner работает в фоновом режиме, выполняя команду tkn для очистки ресурсов.
Сценарии использования
- Регулярная очистка ресурсов TaskRun
- Регулярная очистка ресурсов PipelineRun
- Настройка различных стратегий очистки в зависимости от пространств имен
Предварительные требования
- Компонент Tekton Operator должен быть установлен
- Ресурс TektonConfig должен быть автоматически создан в среде
Шаги
Шаг 1
Отредактируйте ресурс TektonConfig
Шаг 2
Измените конфигурацию spec.pruner, как показано ниже:
Краткие описания ключевых конфигураций:
disabled: Устанавливая вtrue, отключает функциональность pruner (значение по умолчанию:false)schedule: График выполнения задачи очистки, использующий формат cron-выраженияstartingDeadlineSeconds: Необязательная конфигурация для крайнего срока начала задачи (в секундах). Если задача пропускает запланированное время и превышает эту продолжительность, она считается неудачнойresources: Поддерживаемые типы ресурсов для очистки, включаяtaskrunиpipelinerunkeep: Максимальное количество ресурсов, которые можно задержать во время очисткиkeep-since: Удерживать ресурсы в течение определенного времени (в минутах)prune-per-resource: Устанавливая вtrue(значение по умолчанию -false), применяет конфигурациюkeepотдельно для каждого ресурса- Например: Если в пространстве имен
ns-1есть два Pipeline с именамиpipeline-1иpipeline-2, будут выполнены следующие команды: - Примечание: При использовании
keep-sinceвключениеprune-per-resource=trueне имеет практического смысла, так какkeep-sinceосновывается на временных ограничениях для ресурсов, не связанных с их количеством.
- Например: Если в пространстве имен
Если disabled: false и schedule пустое, глобальная задача очистки будет отключена.
Однако, если в пространстве имен присутствует аннотация operator.tekton.dev/prune.schedule с заданным значением, будет создана задача очистки для этого пространства имен.
Шаг 3
Настройте стратегии очистки через аннотации пространства имен (опционально)
По умолчанию задача pruner будет использовать глобальную конфигурацию (spec.pruner), однако пользователи могут настроить конфигурацию pruner для конкретных пространств имен с помощью следующих аннотаций. Если некоторые аннотации отсутствуют или имеют недопустимые значения, будут использованы значения глобальной конфигурации, или пространство имен будет пропущено.
Поддерживаемые аннотации:
operator.tekton.dev/prune.skip: Установив вtrue, пропустит задачу очистки для этого пространства именoperator.tekton.dev/prune.schedule: Устанавливает график очистки для этого пространства именoperator.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 в соответствии с установленным графиком.