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ユーティリティーがインストールされている。
手順
次のコマンドを入力して、
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
$ export RESULTS_API=$(oc get route tekton-results-api-service -n openshift-pipelines --no-headers -o custom-columns=":spec.host"):443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、Tekton Results API の認証トークンを作成します。
oc create token <service_account>
$ oc create token <service_account>Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドが出力する文字列を保存します。
オプション: Tekton Results API による自動認証用に
~/.config/tkn/results.yamlファイルを作成します。ファイルには次の内容が含まれている必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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パッケージをインストールしている。
手順
namespace で作成されたパイプライン実行およびタスク実行に対応するすべての結果の名前をリストします。以下のコマンドを入力します。
opc results list --addr ${RESULTS_API} <namespace_name>$ opc results list --addr ${RESULTS_API} <namespace_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
opc results list --addr ${RESULTS_API} results-testing$ opc results list --addr ${RESULTS_API} results-testingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
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
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 ISTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、結果内のすべてのレコードの名前をリスト表示します。
opc results records list --addr ${RESULTS_API} <result_name>$ opc results records list --addr ${RESULTS_API} <result_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
opc results records list --addr ${RESULTS_API} results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed$ opc results records list --addr ${RESULTS_API} results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、レコードからパイプライン実行またはタスク実行の 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))'$ 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 Copied! Toggle word wrap Toggle overflow コマンドの例
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))'$ 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 Copied! Toggle word wrap Toggle overflow オプション: ログレコード名を使用して、レコードから実行されたタスクのログ情報を取得します。ログレコード名を取得するには、レコード名の
recordsは、logsに置き換えます。以下のコマンドを入力します。opc results logs get --addr ${RESULTS_API} <log_record_name> | jq -r .data | base64 -d$ opc results logs get --addr ${RESULTS_API} <log_record_name> | jq -r .data | base64 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
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$ 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 -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4.3. 結果の検索 リンクのコピーリンクがクリップボードにコピーされました!
Common Expression Language (CEL) クエリーを使用して結果を検索できます。たとえば、成功しなかったパイプライン実行の結果を見つけることができます。ただし、関連情報のほとんどは結果オブジェクトには含まれていません。名前、完了時間、その他のデータで検索するには、レコードを検索します。
前提条件
- Tekton Results をインストールしている。
-
opcユーティリティーをインストールし、Tekton Results をクエリーするための環境を準備している。
手順
次のコマンドを入力して、CEL クエリーを使用して結果を検索します。
opc results list --addr ${RESULTS_API} --filter="<cel_query>" <namespace-name>$ opc results list --addr ${RESULTS_API} --filter="<cel_query>" <namespace-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
<namespace_name> は、パイプラインの実行またはタスクの実行が作成された namespace に置き換えます。
| 目的 | CEL クエリー |
|---|---|
| 失敗したすべての実行の結果 |
|
|
アノテーション |
|
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/-$ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <namespace_name>/result/-Copy to Clipboard Copied! Toggle word wrap Toggle overflow <namespace_name>は、パイプラインの実行またはタスクの実行が作成された namespace に置き換えます。または、次のコマンドを入力して、単一の結果内のレコードを検索します。opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <result_name>$ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <result_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <result_name>は、結果の完全名に置き換えます。
| 目的 | CEL クエリー |
|---|---|
| 失敗したすべてのタスク実行またはパイプライン実行のレコード |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 完了までに 5 分以上かかったすべてのパイプライン実行のレコード |
|
| 2023 年 10 月 7 日に完了したすべてのパイプライン実行とタスク実行のレコード |
|
| 3 つ以上のタスクを含むすべてのパイプライン実行のレコード |
|
|
|
|
|
|
|
1.4.5. 検索結果の参考情報 リンクのコピーリンクがクリップボードにコピーされました!
結果の共通表現言語 (CEL) クエリーでは次のフィールドを使用できます。
| CEL フィールド | 説明 |
|---|---|
|
|
|
|
| 結果の一意識別子。 |
|
|
|
|
| 結果の概要。 |
|
| 結果の作成時間。 |
|
| 結果の最終更新時刻。 |
summary.status フィールドを使用して、パイプラインの実行が成功したかどうかを判断できます。このフィールドには次の値を指定できます。
-
UNKNOWN -
SUCCESS -
FAILURE -
TIMEOUT -
CANCELLED
このフィールドの値を指定する場合は、" や ' などの引用符を使用しないでください。
1.4.6. レコード検索の参考情報 リンクのコピーリンクがクリップボードにコピーされました!
レコードの Common Expression Language (CEL) クエリーでは次のフィールドを使用できます。
| CEL フィールド | 説明 | 値 |
|---|---|---|
|
| レコード名 | |
|
| レコードタイプ識別子 |
|
|
| タスク実行またはパイプライン実行の YAML データ。ログレコードでは、このフィールドにはログ出力が含まれます。 |
data フィールドにはタスク実行またはパイプライン実行の YAML データ全体が含まれるため、このデータのすべての要素を CEL クエリーで使用できます。たとえば、data.status.completionTime には、タスク実行またはパイプライン実行の完了時間が含まれます。