• Русский
  • Очистка по времени (TTL)

    Удаление завершённых ресурсов после заданного времени с помощью ttlSecondsAfterFinished.

    Как это работает

    TTL применяется ко всем завершённым запускам (успешным и неуспешным). Таймер запускается, когда запуск завершается.

    Базовая конфигурация

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pruner:
        disabled: true  # Необходимо отключить очистку на основе job
      tektonpruner:
        disabled: false  # Включить очистку на основе событий
        global-config:
          ttlSecondsAfterFinished: 3600  # Удалять через 1 час

    Распространённые значения TTL

    ПродолжительностьСекундыСценарий использования
    5 минут300Быстрая итерация в dev/test
    1 час3600CI-пайплайны
    1 день86400Общие рабочие нагрузки
    7 дней604800Staging/release
    30 дней2592000Production/аудит/соответствие

    TTL для конкретных окружений

    spec:
      tektonpruner:
        global-config:
          enforcedConfigLevel: namespace
          ttlSecondsAfterFinished: 3600  # По умолчанию
          namespaces:
            dev:
              ttlSecondsAfterFinished: 300      # 5 мин
            staging:
              ttlSecondsAfterFinished: 86400    # 1 день
            prod:
              ttlSecondsAfterFinished: 2592000

    TTL для конкретных пайплайнов

    Используйте селекторы в ConfigMap пространства имён для TTL, специфичных для пайплайнов:

    WARNING

    ConfigMap на уровне пространства имён находятся вне жизненного цикла TektonConfig. Если потребуется резервное копирование или восстановление конфигурации Tekton, сохраните эти ConfigMap отдельно.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: tekton-pruner-namespace-spec
      namespace: my-app
      labels:
        app.kubernetes.io/part-of: tekton-pruner
        pruner.tekton.dev/config-type: namespace
    data:
      ns-config: |
        ttlSecondsAfterFinished: 3600
        pipelineRuns:
          - selector:
              matchLabels:
                pipeline-type: release
            ttlSecondsAfterFinished: 604800
          - selector:
              matchLabels:
                pipeline-type: test
            ttlSecondsAfterFinished: 300

    Совмещение TTL с ограничениями истории

    Ограничения истории переопределяют TTL для гарантии минимального хранения:

    data:
      ns-config: |
        ttlSecondsAfterFinished: 300
        successfulHistoryLimit: 5
        failedHistoryLimit: 10

    Результат: Запуски удаляются через 5 минут, ЕСЛИ они не входят в последние 5 успешных или последние 10 неуспешных.

    Рекомендации по использованию

    1. Разработка: Короткие TTL (5-60 мин) для быстрой итерации
    2. Продакшн: Длинные TTL (7-30 дней) для аудита и соответствия
    3. Критичные пайплайны: Используйте селекторы для расширенного хранения
    4. Баланс: Учитывайте стоимость хранения и требования к сохранению

    Смежные темы