1.4. opc コマンドラインユーティリティーを使用した Tekton Results のクエリー


opc コマンドラインユーティリティーを使用して、Tekton Results に結果とレコードを問い合わせることができます。opc コマンドラインユーティリティーをインストールするには、tkn コマンドラインユーティリティーのパッケージをインストールします。このパッケージのインストール手順については、 tkn のインストール を参照してください。

レコードと結果の名前を使用して、その中に含まれるデータを取得できます。

Common Expression Language (CEL) クエリーを使用して結果とレコードを検索できます。これらの検索では、結果またはレコードの UUID が表示されます。提供された例を使用して、一般的な検索タイプのクエリーを作成できます。参照情報を使用して他のクエリーを作成することもできます。

1.4.1. Tekton Results をクエリーするための opc ユーティリティー環境の準備

Tekton Results をクエリーする前に、opc ユーティリティーの環境を準備する必要があります。

前提条件

  • Tekton Results をインストールしている。
  • opc ユーティリティーがインストールされている。

手順

  1. 次のコマンドを入力して、RESULTS_API 環境変数を Tekton Results API へのルートに設定します。

    $ export RESULTS_API=$(oc get route tekton-results-api-service -n openshift-pipelines --no-headers -o custom-columns=":spec.host"):443
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを入力して、Tekton Results API の認証トークンを作成します。

    $ oc create token <service_account>
    Copy to Clipboard Toggle word wrap

    このコマンドが出力する文字列を保存します。

  3. オプション: Tekton Results API による自動認証用に ~/.config/tkn/results.yaml ファイルを作成します。ファイルには次の内容が含まれている必要があります。

    address: <tekton_results_route> 
    1
    
    token: <authentication_token> 
    2
    
    ssl:
       roots_file_path: /home/example/cert.pem 
    3
    
       server_name_override: tekton-results-api-service.openshift-pipelines.svc.cluster.local 
    4
    
     service_account:
       namespace: service_acc_1 
    5
    
       name: service_acc_1 
    6
    Copy to Clipboard Toggle word wrap
    1
    Tekton Results API へのルート。RESULTS_API に設定したものと同じ値を使用します。
    2
    oc create token コマンドによって作成された認証トークン。このトークンを指定すると、service_account 設定がオーバーライドされ、opc はこのトークンを使用して認証します。
    3
    API エンドポイント用に設定した SSL 証明書を含むファイルの場所。
    4
    OpenShift Pipelines のカスタムターゲット namespace を設定した場合は、openshift-pipelines をこの namespace の名前に置き換えます。
    5 6
    Tekton Results API で認証するためのサービスアカウントの名前。認証トークンを指定した場合は、service_account パラメーターを指定する必要はありません。

    あるいは、~/.config/tkn/results.yaml ファイルを作成しない場合は、--authtoken オプションを使用して各 opc コマンドにトークンを渡すことができます。

1.4.2. 名前による結果とレコードのクエリー

名前を使用して、結果とレコードをリスト表示したり、クエリーを実行したりできます。

前提条件

  • Tekton Results をインストールしている。
  • opc ユーティリティーをインストールし、Tekton Results をクエリーするための環境を準備している。
  • jq パッケージをインストールしている。

手順

  1. namespace で作成されたパイプライン実行およびタスク実行に対応するすべての結果の名前をリストします。以下のコマンドを入力します。

    $ opc results list --addr ${RESULTS_API} <namespace_name>
    Copy to Clipboard Toggle word wrap

    コマンドの例

    $ opc results list --addr ${RESULTS_API} results-testing
    Copy to Clipboard Toggle word wrap

    出力例

    Name                                                          Start                                   Update
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed  2023-06-29 02:49:53 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/ad7eb937-90cc-4510-8380-defe51ad793f  2023-06-29 02:49:38 +0530 IST           2023-06-29 02:50:06 +0530 IST
    results-testing/results/d064ce6e-d851-4b4e-8db4-7605a23671e4  2023-06-29 02:49:45 +0530 IST           2023-06-29 02:49:56 +0530 IST
    Copy to Clipboard Toggle word wrap

  2. 次のコマンドを入力して、結果内のすべてのレコードの名前をリスト表示します。

    $ opc results records list --addr ${RESULTS_API} <result_name>
    Copy to Clipboard Toggle word wrap

    コマンドの例

    $ opc results records list --addr ${RESULTS_API} results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed
    Copy to Clipboard Toggle word wrap

    出力例

    Name                                                                                                   Type                                    Start                                   Update
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9c736db-5665-441f-922f-7c1d65c9d621  tekton.dev/v1.TaskRun              2023-06-29 02:49:53 +0530 IST           2023-06-29 02:49:57 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/5de23a76-a12b-3a72-8a6a-4f15a3110a3e  results.tekton.dev/v1alpha2.Log         2023-06-29 02:49:57 +0530 IST           2023-06-29 02:49:57 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/57ce92f9-9bf8-3a0a-aefb-dc20c3e2862d  results.tekton.dev/v1alpha2.Log         2023-06-29 02:50:05 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9a0c21a-f826-42ab-a9d7-a03bcefed4fd  tekton.dev/v1.TaskRun              2023-06-29 02:49:57 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/04e2fbf2-8653-405f-bc42-a262bcf02bed  tekton.dev/v1.PipelineRun          2023-06-29 02:49:53 +0530 IST           2023-06-29 02:50:05 +0530 IST
    results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e6eea2f9-ec80-388c-9982-74a018a548e4  results.tekton.dev/v1alpha2.Log         2023-06-29 02:50:05 +0530 IST           2023-06-29 02:50:05 +0530 IST
    Copy to Clipboard Toggle word wrap

  3. 次のコマンドを入力して、レコードからパイプライン実行またはタスク実行の YAML マニフェストを取得します。

    $ opc results records get --addr ${RESULTS_API} <record_name> \
      | jq -r .data.value | base64 -d | \
      xargs -0 python3 -c 'import sys, yaml, json; j=json.loads(sys.argv[1]); print(yaml.safe_dump(j))'
    Copy to Clipboard Toggle word wrap

    コマンドの例

    $ opc results records get --addr ${RESULTS_API} \
      results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9c736db-5665-441f-922f-7c1d65c9d621 | \
      jq -r .data.value | base64 -d | \
      xargs -0 python3 -c 'import sys, yaml, json; j=json.loads(sys.argv[1]); print(yaml.safe_dump(j))'
    Copy to Clipboard Toggle word wrap

  4. オプション: ログレコード名を使用して、レコードから実行されたタスクのログ情報を取得します。ログレコード名を取得するには、レコード名の records は、logs に置き換えます。以下のコマンドを入力します。

    $ opc results logs get --addr ${RESULTS_API} <log_record_name> | jq -r .data | base64 -d
    Copy to Clipboard Toggle word wrap

    コマンドの例

    $ opc results logs get --addr ${RESULTS_API} \
      results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/logs/e9c736db-5665-441f-922f-7c1d65c9d621 | \
      jq -r .data | base64 -d
    Copy to Clipboard Toggle word wrap

1.4.3. 結果の検索

Common Expression Language (CEL) クエリーを使用して結果を検索できます。たとえば、成功しなかったパイプライン実行の結果を見つけることができます。ただし、関連情報のほとんどは結果オブジェクトには含まれていません。名前、完了時間、その他のデータで検索するには、レコードを検索します。

前提条件

  • Tekton Results をインストールしている。
  • opc ユーティリティーをインストールし、Tekton Results をクエリーするための環境を準備している。

手順

  • 次のコマンドを入力して、CEL クエリーを使用して結果を検索します。

    $ opc results list --addr ${RESULTS_API} --filter="<cel_query>" <namespace-name>
    Copy to Clipboard Toggle word wrap

<namespace_name> は、パイプラインの実行またはタスクの実行が作成された namespace に置き換えます。

Expand
表1.1 結果の CEL クエリーの例
目的CEL クエリー

失敗したすべての実行の結果

!(summary.status == SUCCESS)

アノテーション ann1 および ann2 を含むすべてのパイプライン実行の結果

summary.annotations.contains('ann1') && summary.annotations.contains('ann2') && summary.type=='PIPELINE_RUN'

1.4.4. レコードの検索

Common Expression Language (CEL) クエリーを使用してレコードを検索できます。各レコードにはパイプライン実行またはタスク実行に関する完全な YAML 情報が含まれるため、さまざまな基準でレコードを検索できます。

前提条件

  • Tekton Results をインストールしている。
  • opc ユーティリティーをインストールし、Tekton Results をクエリーするための環境を準備している。

手順

  • 次のコマンドを入力して、CEL クエリーを使用してレコードを検索します。

    $ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <namespace_name>/result/-
    Copy to Clipboard Toggle word wrap

    <namespace_name> は、パイプラインの実行またはタスクの実行が作成された namespace に置き換えます。または、次のコマンドを入力して、単一の結果内のレコードを検索します。

    $ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <result_name>
    Copy to Clipboard Toggle word wrap

    <result_name> は、結果の完全名に置き換えます。

Expand
表1.2 レコードの CEL クエリーの例
目的CEL クエリー

失敗したすべてのタスク実行またはパイプライン実行のレコード

!(data.status.conditions[0].status == 'True')

TaskRun または PipelineRun カスタムリソース (CR) の名前が run1 であったレコード

data.metadata.name == 'run1'

run1 という名前の PipelineRun CR で開始されたタスク実行すべてのレコード

data_type == 'TASK_RUN' && data.metadata.labels['tekton.dev/pipelineRun'] == 'run1'

Pipeline1 という名前の パイプライン CR から作成されたすべてのパイプライン実行とタスク実行のレコード

data.metadata.labels['tekton.dev/pipeline'] == 'pipeline1'

Pipeline1 という名前の パイプライン CR から作成されたすべてのパイプライン実行のレコード

data.metadata.labels['tekton.dev/pipeline'] == 'pipeline1' && data_type == 'PIPELINE_RUN'

TaskRun CR 名が hello で始まるすべてのタスク実行のレコード

data.metadata.name.startsWith('hello') && data_type=='TASK_RUN'

完了までに 5 分以上かかったすべてのパイプライン実行のレコード

data.status.completionTime - data.status.startTime > duration('5m') && data_type == 'PIPELINE_RUN'

2023 年 10 月 7 日に完了したすべてのパイプライン実行とタスク実行のレコード

data.status.completionTime.getDate() == 7 && data.status.completionTime.getMonth() == 10 && data.status.completionTime.getFullYear() == 2023

3 つ以上のタスクを含むすべてのパイプライン実行のレコード

size(data.status.pipelineSpec.tasks) >= 3 && data_type == 'PIPELINE_RUN'

ann1 を含むアノテーションが付いたすべてのパイプライン実行のレコード

data.metadata.annotations.contains('ann1') && data_type == 'PIPELINE_RUN'

ann1 を含むアノテーションと hello で始まる PipelineRun CR の名前が付いたすべてのパイプライン実行のレコード

data.metadata.annotations.contains('ann1') && data.metadata.name.startsWith('hello') && data_type == 'PIPELINE_RUN'

1.4.5. 検索結果の参考情報

結果の共通表現言語 (CEL) クエリーでは次のフィールドを使用できます。

Expand
表1.3 結果の CEL クエリーで使用できるフィールド
CEL フィールド説明

parent

PipelineRun または TaskRun カスタムリソース (CR) が作成された namespace。

uid

結果の一意識別子。

annotations

PipelineRun または TaskRun CR に追加されたアノテーション。

summary

結果の概要。

create_time

結果の作成時間。

update_time

結果の最終更新時刻。

summary.status フィールドを使用して、パイプラインの実行が成功したかどうかを判断できます。このフィールドには次の値を指定できます。

  • UNKNOWN
  • SUCCESS
  • FAILURE
  • TIMEOUT
  • CANCELLED
注記

このフィールドの値を指定する場合は、"' などの引用符を使用しないでください。

1.4.6. レコード検索の参考情報

レコードの Common Expression Language (CEL) クエリーでは次のフィールドを使用できます。

Expand
表1.4 レコードの CEL クエリーで使用できるフィールド
CEL フィールド説明

name

レコード名

 

data_type

レコードタイプ識別子

tekton.dev/v1.TaskRun または TASK_RUNtekton.dev/v1.PipelineRun または PIPELINE_RUNresults.tekton.dev/v1alpha2.Log

data

タスク実行またはパイプライン実行の YAML データ。ログレコードでは、このフィールドにはログ出力が含まれます。

 

data フィールドにはタスク実行またはパイプライン実行の YAML データ全体が含まれるため、このデータのすべての要素を CEL クエリーで使用できます。たとえば、data.status.completionTime には、タスク実行またはパイプライン実行の完了時間が含まれます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る