This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.10. TektonConfig カスタムリソース設定のカスタマイズ
Red Hat OpenShift Pipelines では、TektonConfig カスタムリソース (CR) を使用して以下の設定をカスタマイズできます。
- Red Hat OpenShift Pipelines コントロールプレーンの設定
- デフォルトサービスアカウントの変更
- サービスモニターの無効化
- クラスタータスクとパイプラインテンプレートの無効化
- Tekton Hub 統合の無効化
- RBAC リソースの自動作成の無効化
- タスク実行とパイプライン実行のプルーニング
4.10.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat OpenShift Pipelines Operator がインストールされている。
4.10.2. Red Hat OpenShift Pipelines コントロールプレーンの設定 リンクのコピーリンクがクリップボードにコピーされました!
TektonConfig カスタムリソース (CR) の設定フィールドを編集して、Pipelines コントロールプレーンをカスタマイズできます。Red Hat OpenShift Pipelines Operator は設定フィールドにデフォルト値を自動的に追加し、Pipelines コントロールプレーンを使用可能な状態にします。
手順
-
Web コンソールの Administrator パースペクティブで、Administration
CustomResourceDefinitions に移動します。 -
Search by name ボックスを使用して、
tektonconfigs.operator.tekton.devカスタムリソース定義 (CRD) を検索します。TektonConfig をクリックし、CRD の詳細ページを表示します。 - Instances タブをクリックします。
-
config インスタンスをクリックして、
TektonConfigCR の詳細を表示します。 - YAML タブをクリックします。
要件に応じて
TektonConfigYAML ファイルを編集します。デフォルト値が適用された
TektonConfigCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.10.2.1. デフォルト値が適用された変更可能フィールド リンクのコピーリンクがクリップボードにコピーされました!
次のリストには、デフォルト値が適用された TektonConfig CR の変更可能フィールドがすべて含まれています。
running-in-environment-with-injected-sidecars(デフォルト:true): Istio などの注入済みサイドカーを使用しないクラスターでパイプラインを実行する場合は、このフィールドをfalseに設定します。falseに設定すると、パイプラインがタスク実行を開始するまでにかかる時間が短縮されます。注記注入されたサイドカーを使用するクラスターの場合、このフィールドを
falseに設定すると、予期しない動作が発生する可能性があります。-
await-sidecar-readiness(デフォルト:true):TaskRunサイドカーコンテナーの実行を待たずに Pipelines が動作を開始するようにするには、このフィールドをfalseに設定します。これにより、downwardAPIボリュームタイプをサポートしない環境でのタスク実行が可能になります。 -
default-service-account(デフォルト:Pipeline): 特に指定されていない場合、このフィールドにはTaskRunおよびPipelineRunリソースに使用するデフォルトのサービスアカウント名が設定されます。 require-git-ssh-secret-known-hosts(デフォルト:false): このフィールドをtrueに設定するには、Git SSH シークレットにknown_hostsフィールドが含まれている必要があります。- Git SSH シークレットの設定について、詳しくは 関連情報 セクションの Git の SSH 認証の設定 を参照してください。
-
Enable-tekton-oci-bundles(デフォルト:false): このフィールドをtrueに設定すると、Tekton OCI バンドルという名前の実験的アルファ機能の使用が可能になります。 embedded-status(デフォルト:Both): このフィールドには、次の 3 つの値を使用できます。-
full:PipelineRunステータスにRunステータスとTaskRunステータスを完全に埋め込めます。 -
minimal:ChildReferencesフィールドに、ステータスが PipelineRun` の実行とタスク実行の情報 (名前、種類、API バージョンなど) を追加します。 both:fullとminimalの両方の値が適用されます。注記embedded-statusフィールドは非推奨となり、将来のリリースで削除される予定です。さらに、パイプラインにデフォルトで埋め込まれるステータスは、minimalに変更されます。
-
Enable-api-fields(デフォルト:stable): このフィールドを設定すると、どの機能が有効になるかが決まります。使用できる値ははstable、beta、またはalphaです。注記Red Hat OpenShift Pipelines で
alpha値はサポートされていません。-
Enable-provenance-in-status(デフォルト:false): このフィールドをtrueに設定すると、TaskRunステータスおよびPipelineRunステータスのprovenanceフィールドへの入力が可能になります。provenanceフィールドには、リモートタスクまたはパイプライン定義の取得元などの、タスク実行およびパイプライン実行で使用されるリソースのメタデータが含まれます。 -
Enable-custom-tasks(デフォルト:true): このフィールドをfalseに設定すると、パイプラインでのカスタムタスクの使用が無効になります。 -
disable-creds-init(デフォルト:false): Pipelines が接続されたサービスアカウントをスキャンしてステップに認証情報を挿入しないようにするには、このフィールドをtrueに設定します。 -
disable-affinity-assistant(デフォルト:true): 永続ボリューム要求ワークスペースを共有する各TaskRunリソースに対してアフィニティーアシスタントを有効にするには、このフィールドをfalseに設定します。
メトリクスオプション
TektonConfig CR の次のメトリクスフィールドのデフォルト値を変更できます。
-
metrics.taskrun.duration-typeとmetrics.pipelinerun.duration-type(デフォルト:histogram): これらのフィールドを設定すると、タスクまたはパイプライン実行の期間のタイプが決まります。使用できる値は、gaugeまたはhistogramです。 -
metrics.taskrun.level(デフォルト:task): このフィールドにより、タスク実行メトリクスのレベルが決まります。使用できる値は、taskrun、task、またはnamespaceです。 -
metrics.pipelinerun.level(デフォルト:Pipeline): このフィールドにより、パイプライン実行メトリクスのレベルが決まります。使用できる値は、pipelinerun、pipeline、またはnamespaceです。
4.10.2.2. 任意の設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次のフィールドにはデフォルト値がなく、設定した場合にのみ考慮されます。デフォルトでは、Operator はこれらのフィールドを TektonConfig カスタムリソース (CR) に追加も設定もしません。
-
default-timeout-minutes:TaskRunおよびPipelineRunリソースの作成時に指定していない場合、このフィールドがデフォルトのタイムアウトを設定します。タスク実行またはパイプライン実行にかかる時間が設定された分数より長いと、タスク実行またはパイプライン実行はタイムアウトになり、キャンセルされます。たとえば、default-timeout-minutes: 60はデフォルトを 60 分に設定します。 -
default-managed-by-label-value: このフィールドには、app.kubernetes.io/managed-byラベルに指定されたデフォルト値が含まれます。このデフォルト値は、何も指定されていない場合にすべてのTaskRunPod に適用されます。たとえば、default-managed-by-label-value: tekton-pipelinesです。 -
default-pod-template: このフィールドは、指定されていない場合にデフォルトのTaskRunおよびPipelineRunPod テンプレートを設定します。 -
default-cloud-events-sink: このフィールドは、何も指定されていない場合に、TaskRunおよびPipelineRunリソースに使用されるデフォルトのCloudEventsシンクを設定します。 -
default-task-run-workspace-binding: このフィールドには、Taskリソースが宣言するワークスペースのデフォルトワークスペース設定が含まれますが、TaskRunリソースは明示的に宣言されません。 -
default-affinity-assistant-pod-template: このフィールドは、何も指定されていない場合にアフィニティーアシスタント Pod が使用するデフォルトのPipelineRunPod テンプレートを設定します。 -
default-max-matrix-combinations-count: このフィールドには、何も指定されていない場合の、マトリクスから生成される組み合わせの最大数のデフォルト値が含まれます。
4.10.3. Pipelines のデフォルトサービスアカウントの変更 リンクのコピーリンクがクリップボードにコピーされました!
Pipeline のデフォルトサービスアカウントは、.spec.pipeline および .spec.trigger 仕様の default-service-account フィールドを編集して変更できます。デフォルトのサービスアカウントの名前は pipeline です。
例
4.10.4. サービスモニターの無効化 リンクのコピーリンクがクリップボードにコピーされました!
Pipeline の一部であるサービスモニターを無効にして、Telemetry データを公開できます。サービスモニターを無効にするには、TektonConfig カスタムリソース (CR) の .spec.pipeline 仕様で enableMetrics パラメーターを false に設定します。
例
4.10.5. クラスタータスクとパイプラインテンプレートの無効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、TektonAddon カスタムリソース (CR) は、クラスター上の Pipeline と併せて clusterTasks および pipelineTemplates リソースをインストールします。
clusterTasks および pipelineTemplates リソースのインストールを無効にするには、.spec.addon 仕様でパラメーターの値を false に設定します。さらに、communityClusterTasks パラメーターも無効にできます。
例
4.10.6. Tekton Hub 統合の無効化 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの Developer パースペクティブで Tekton Hub の統合を無効にするには、TektonConfig カスタムリソース (CR) の enable-devconsole-integration パラメーターを false に設定します。
Tekton Hub 無効化の例
4.10.7. RBAC リソースの自動作成の無効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Pipelines Operator のデフォルトインストールは、^(openshift|kube)-* 正規表現パターンに一致する namespace を除き、クラスター内のすべての namespace について複数のロールベースアクセス制御 (RBAC) リソースを作成します。これらの RBAC リソースの中で、pipelines-scc-rolebinding SCC (security context constraint) のロールバインディングリソースは、関連する pipelines-scc SCC に RunAsAny 権限があるため、セキュリティー上の問題となる可能性があります。
Red Hat OpenShift Pipelines Operator のインストール後にクラスター全体の RBAC リソースの自動作成を無効にするには、クラスター管理者は、クラスターレベルの TektonConfig カスタムリソース (CR) で createRbacResource パラメーターを false に設定します。
TektonConfig CR の例
クラスター管理者または適切な権限を持つユーザーとして、すべての namespace の RBAC リソースの自動作成を無効にすると、デフォルトの ClusterTask リソースは機能しません。ClusterTask リソースを機能させるには、それぞれの意図された namespace について RBAC リソースを手動で作成する必要があります。
4.10.8. タスク実行とパイプライン実行の自動プルーニング リンクのコピーリンクがクリップボードにコピーされました!
古い TaskRun オブジェクトと PipelineRun オブジェクト、およびそれらの実行されたインスタンスは、アクティブな実行に使用できる物理リソースを占有します。リソースの使用を最適化するために、Red Hat OpenShift Pipelines は、クラスター管理者がさまざまな namespace で未使用のオブジェクトとそのインスタンスを自動的にプルーニングするために使用できるアノテーションを提供します。
アノテーションを指定して自動プルーニングを設定すると、namespace 全体に影響します。namespace で個々のタスク実行とパイプライン実行を選択的に自動プルーニングすることはできません。
4.10.8.1. タスク実行とパイプライン実行を自動的にプルーニングするためのアノテーション リンクのコピーリンクがクリップボードにコピーされました!
namespace でタスク実行とパイプライン実行を自動的にプルーニングするには、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-sinceを7200に設定します。注記keepおよびkeep-sinceアノテーションは同時に使用できません。リソースには、どちらか 1 つだけを使用する必要があります。-
operator.tekton.dev/prune.strategy: このアノテーションの値をkeepまたはkeep-sinceのいずれかに設定します。
たとえば、過去 5 日間に作成されたすべてのタスク実行とパイプライン実行を保持し、古いリソースを削除する次のアノテーションについて考えてみます。
自動プルーニングアノテーションの例
...
annotations:
operator.tekton.dev/prune.resources: "taskrun, pipelinerun"
operator.tekton.dev/prune.keep-since: 7200
...
...
annotations:
operator.tekton.dev/prune.resources: "taskrun, pipelinerun"
operator.tekton.dev/prune.keep-since: 7200
...