• Русский
  • Удаление по времени (TTL)

    Удаляйте завершенные ресурсы по истечении указанного периода с помощью ttlSecondsAfterFinished.

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

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

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

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pruner:
        disabled: true  # Must disable job-based pruner
      tektonpruner:
        disabled: false  # Enable event-based pruner
        global-config:
          ttlSecondsAfterFinished: 3600  # Delete after 1 hour

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

    ДлительностьСекундыСценарий использования
    5 минут300Dev/test, быстрая итерация
    1 час3600CI pipelines
    1 день86400Общие рабочие нагрузки
    7 дней604800Staging/release
    30 дней2592000Production/audit/compliance

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

    spec:
      tektonpruner:
        global-config:
          enforcedConfigLevel: namespace
          ttlSecondsAfterFinished: 3600  # Default
          namespaces:
            dev:
              ttlSecondsAfterFinished: 300      # 5 min
            staging:
              ttlSecondsAfterFinished: 86400    # 1 day
            prod:
              ttlSecondsAfterFinished: 2592000

    TTL для конкретных Pipeline

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

    WARNING

    ConfigMap уровня namespace не входят в жизненный цикл 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. Production: длинные TTL (7–30 дней) для audit/compliance
    3. Критические Pipeline: используйте селекторы для увеличенного срока хранения
    4. Баланс: учитывайте затраты на хранение и требования к сроку хранения

    См. также