• Русский
  • Очистка по истории

    Сохраняет фиксированное число запусков в зависимости от их статуса, независимо от возраста.

    Принцип работы

    Ограничения по истории и TTL могут применяться одновременно. Запуск подлежит удалению, если он превышает ограничения по истории или срок его TTL истёк. Это означает, что действует наиболее короткий срок хранения.

    Параметры конфигурации

    ПараметрОписание
    successfulHistoryLimitСохранять N последних успешных запусков
    failedHistoryLimitСохранять N последних неудачных запусков
    historyLimitСохранять N запусков КАЖДОГО статуса (если не заданы отдельные ограничения)

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

    Раздельные ограничения по статусу:

    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:
          successfulHistoryLimit: 5    # Keep last 5 successful
          failedHistoryLimit: 10       # Keep last 10 failed (for debugging)

    Одинаковое ограничение для обоих:

    spec:
      tektonpruner:
        global-config:
          historyLimit: 5  # Keep last 5 successful AND last 5 failed

    Ограничения для разных сред

    spec:
      tektonpruner:
        global-config:
          enforcedConfigLevel: namespace
          namespaces:
            dev:
              successfulHistoryLimit: 3
              failedHistoryLimit: 5     # More failed runs for debugging
            staging:
              successfulHistoryLimit: 5
              failedHistoryLimit: 5
            prod:
              successfulHistoryLimit: 10
              failedHistoryLimit: 20

    Ограничения для конкретных Pipeline

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

    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: |
        successfulHistoryLimit: 3
        pipelineRuns:
          - selector:
              matchLabels:
                critical: "true"
            successfulHistoryLimit: 20
            failedHistoryLimit: 30
          - selector:
              matchLabels:
                pipeline-type: test
            successfulHistoryLimit: 3
            failedHistoryLimit: 5

    Взаимодействие с TTL

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

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

    Результат: Запуски старше 5 минут удаляются, даже если они входят в последние 5 успешных или последние 10 неудачных. Ограничения по истории по-прежнему могут удалять более старые запуски раньше, если количество запусков превышает заданные значения.

    Рекомендации

    1. Сохраняйте больше неудачных запусков, чем успешных, для отладки
    2. Критически важные Pipeline: более высокие ограничения для аудита
    3. Разработка: более низкие ограничения (3-5) для быстрой итерации
    4. Production: более высокие ограничения (10-20) для анализа
    5. Следите за объёмом хранилища: корректируйте ограничения с учётом ёмкости кластера

    Связанные разделы