Menu Close

4.11. タスク実行とパイプライン実行の自動プルーニング

古い TaskRunオブジェクトとPipelineRunオブジェクト、およびそれらの実行されたインスタンスは、アクティブな実行に使用できる物理リソースを占有します。この無駄を防ぐために、Red Hat OpenShift Pipelines は、クラスター管理者がさまざまな namespace で未使用のオブジェクトとそのインスタンスを自動的にプルーニングするために使用できるアノテーションを提供します。

注記
  • Red Hat OpenShift Pipelines 1.6 以降、自動プルーニングはデフォルトで有効になっています。
  • アノテーションを指定して自動プルーニングを設定すると、namespace 全体に影響します。namespace で個々のタスク実行とパイプライン実行を選択的に自動プルーニングすることはできません。

4.11.1. タスク実行とパイプライン実行を自動的にプルーニングするためのアノテーション

namespace でタスク実行とパイプライン実行を自動的にプルーニングするには、次のアノテーションを設定できます。

  • operator.tekton.dev/prune.schedule: このアノテーションの値が TektonConfig カスタムリソース定義で指定された値と異なる場合には、その namespace に新規の cron ジョブが作成されます。
  • operator.tekton.dev/prune.skip: trueに設定されている場合、それが設定されている namespace はプルーニングされません。
  • operator.tekton.dev/prune.resources: このアノテーションではリソースのコンマ区切りの一覧を使用できます。パイプライン実行などの単一リソースをプルーニングするには、このアノテーションを 「pipelinerun」 に設定します。task run や pipeline run などの複数のリソースをプルーニングするには、このアノテーションを "taskrun, pipelinerun" に設定します。
  • operator.tekton.dev/prune.keep: このアノテーションを使用して、プルーニングなしでリソースを保持します。
  • operator.tekton.dev/prune.keep-since: このアノテーションを使用して、経過時間をもとにリソースを保持します。このアノテーションの値は、リソースの経過時間(分単位)と等しくなければなりません。たとえば、6 日以上前に作成されたリソースを保持するには、keep-since7200 に設定します。

    注記

    keep および keep-since アノテーションは同時に使用できません。リソースには、どちらか 1 つだけを使用する必要があります。

  • operator.tekton.dev/prune.strategy: このアノテーションの値を keep または keep-since のいずれかに設定します。

たとえば、過去 5 日間に作成されたすべてのタスク実行とパイプライン実行を保持し、古いリソースを削除する次のアノテーションについて考えてみます。

自動プルーニングアノテーションの例

...
  annotations:
    operator.tekton.dev/prune.skip: false
    operator.tekton.dev/prune.resources: "taskrun, pipelinerun"
    operator.tekton.dev/prune.keep-since: 7200
...