Конфигурация Pruner
Обзор
Tekton Pruner управляет жизненным циклом ресурсов Tekton, автоматически очищая завершенные PipelineRuns и TaskRuns на основе настраиваемых политик, зависящих от времени (TTL) и истории.
Конфигурация
Конфигурация Pruner хранится в ConfigMap с метками app.kubernetes.io/part-of: tekton-pruner и pruner.tekton.dev/config-type: <global|namespace>. Вы можете изменить этот ConfigMap, чтобы изменить поведение Pruner.
По умолчанию Tekton Pruner отключен ресурсом TektonConfig. Вы можете изменить ресурс TektonConfig, чтобы настроить Pruner.
По сути, Tekton Operator синхронизирует конфигурацию Pruner из ресурса TektonConfig в ресурс TektonPruner, а затем отражает ее в ConfigMap.
Если вы развертываете Pruner через TektonConfig, вы должны настраивать Pruner через TektonConfig.
Если вы изменяете только конфигурацию в ConfigMap, и она не синхронизируется с ресурсом TektonPruner, конфигурация может быть потеряна.
Когда конфигурация в TektonConfig изменяется или по какой-либо другой причине запускается reconciliation, конфигурация в ConfigMap будет перезаписана.
Ниже приведена простая демонстрация различных способов настройки Pruner.
Конфигурация в ConfigMap
CRITICAL: Все pruner ConfigMap ДОЛЖНЫ иметь следующие метки:
Эти метки позволяют webhook pruner проверять ConfigMap, а контроллерам — корректно обрабатывать их.
Ниже приведен пример ConfigMap Tekton Pruner:
Пояснение полей YAML:
enforcedConfigLevel определяет иерархию конфигурации:
global: применяются кластерные значения по умолчанию для всех namespaces (переопределения на уровне namespace не допускаются)namespace: разрешает переопределения на уровне namespace через ConfigMap в отдельных namespaces
Конфигурация в TektonConfig
В ресурсе TektonConfig конфигурация Pruner выглядит примерно так:
Важно: Tekton Pruner — это event-based pruner, и по умолчанию он отключен. Чтобы включить event-based pruner, существующий job-based pruner ДОЛЖЕН быть отключен.
- Нельзя одновременно включить оба pruner (
job-basedиevent-based) event-basedpruner реагирует на события ресурсов в реальном времени, обеспечивая более эффективную очистку
Если вы хотите использовать job-based pruner, см. Регулярная очистка ресурсов TaskRun и PipelineRun.
Пояснение полей YAML:
spec.pruner: Этот раздел содержит конфигурацию дляjob-basedpruner.disabled: Указывает, следует ли отключитьjob-basedpruner.
spec.tektonpruner: Этот раздел содержит конфигурацию дляevent-basedpruner.disabled: Указывает, следует ли отключитьevent-basedpruner.enforcedConfigLevel: определяет иерархию конфигурации. Подробнее см. в Конфигурация Namespace.global: применяются кластерные значения по умолчанию для всех namespaces (переопределения на уровне namespace не допускаются).namespace: разрешает переопределения на уровне namespace через ConfigMap в отдельных namespaces.
ttlSecondsAfterFinished: Время в секундах, в течение которого завершенные runs сохраняются перед очисткой. Подробнее см. в Очистка на основе времени (TTL).historyLimit: Максимальное число runs, которое следует сохранять для каждого статуса (применяется независимо к успешным и неудачным runs). Подробнее см. в Очистка на основе истории.successfulHistoryLimit: Максимальное число успешных runs, которые следует сохранять. Подробнее см. в Очистка на основе истории.failedHistoryLimit: Максимальное число неудачных runs, которые следует сохранять. Подробнее см. в Очистка на основе истории.namespaces: Настройка различных политик очистки по умолчанию для определенных namespaces. Подробнее см. в Конфигурация Namespace.options: Параметры контроллера Tekton Pruner. Более подробная информация доступна в Дополнительные поля как параметры.