OpenShift Pipeline の可観測性
OpenShift Pipeline の可観測性機能
概要
第1章 OpenShift Pipelines の可観測性のために Tekton 結果を使用する リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results は、すべてのパイプライン実行とタスク実行の完全な情報をアーカイブするサービスです。必要に応じて PipelineRun リソースと TaskRun リソースをプルーニングし、Tekton Results API または opc コマンドラインユーティリティーを使用して、それらの YAML マニフェストとログ情報にアクセスできます。
1.1. Tekton Results の概念 リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results は、パイプラインの実行とタスクの実行を結果とレコードの形式でアーカイブします。
実行が完了した PipelineRun および TaskRun カスタムリソース (CR) ごとに、Tekton Results は レコード を作成します。
結果 には、1 つまたは複数のレコードを含めることができます。レコードは、常に 1 つの結果に含まれています。
結果はパイプライン実行に対応し、PipelineRun CR 自体のレコードと、パイプライン実行の一部として開始されたすべての TaskRun CR のレコードが含まれます。
タスク実行がパイプライン実行を使用せずに直接開始された場合、このタスク実行の結果が作成されます。この結果には、同じタスク実行のレコードが含まれます。
各結果には、PipelineRun または TaskRun CR が作成された namespace と CR の UUID が含まれる名前が付けられます。結果名の形式は <namespace_name>/results/<parent_run_uuid> です。この形式では、<parent_run_uuid> はパイプライン実行の UUUD、または直接開始されたタスク実行の UUUD です。
結果名の例
results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed
各レコードには、レコードを含む結果の名前と、レコードが対応する PipelineRun または TaskRun CR の UUID を含む名前が付いています。結果名の形式は <namespace_name>/results/<parent_run_uuid>/results/<run_uuid> です。
レコード名の例
results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed/records/e9c736db-5665-441f-922f-7c1d65c9d621
レコードには、実行完了後に存在していた TaskRun または PipelineRun CR の完全な YAML マニフェストが含まれます。このマニフェストには、実行の仕様、実行に指定されたアノテーションのほか、完了時刻や実行が成功したかどうかなど、実行の結果に関する特定の情報が含まれます。
TaskRun または PipelineRun CR が存在している間は、次のコマンドを使用して YAML マニフェストを表示できます。
$ oc get pipelinerun <cr_name> -o yaml
Tekton Results は、TaskRun または PipelineRun CR が削除された後もこのマニフェストを保存し、表示および検索できるようにします。
完了後に実行されるパイプラインの YAML マニフェストの例
kind: PipelineRun
spec:
params:
- name: message
value: five
timeouts:
pipeline: 1h0m0s
pipelineRef:
name: echo-pipeline
taskRunTemplate:
serviceAccountName: pipeline
status:
startTime: "2023-08-07T11:41:40Z"
conditions:
- type: Succeeded
reason: Succeeded
status: "True"
message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0'
lastTransitionTime: "2023-08-07T11:41:49Z"
pipelineSpec:
tasks:
- name: echo-task
params:
- name: message
value: five
taskRef:
kind: Task
name: echo-task-pipeline
params:
- name: message
type: string
completionTime: "2023-08-07T11:41:49Z"
childReferences:
- kind: TaskRun
name: echo-pipeline-run-gmzrx-echo-task
apiVersion: tekton.dev/v1
pipelineTaskName: echo-task
metadata:
uid: 62c3b02e-f12b-416c-9771-c02af518f6d4
name: echo-pipeline-run-gmzrx
labels:
tekton.dev/pipeline: echo-pipeline
namespace: releasetest-js5tt
finalizers:
- chains.tekton.dev/pipelinerun
generation: 2
annotations:
results.tekton.dev/log: releasetest-js5tt/results/62c3b02e-f12b-416c-9771-c02af518f6d4/logs/c1e49dd8-d641-383e-b708-e3a02b6a4378
chains.tekton.dev/signed: "true"
results.tekton.dev/record: releasetest-js5tt/results/62c3b02e-f12b-416c-9771-c02af518f6d4/records/62c3b02e-f12b-416c-9771-c02af518f6d4
results.tekton.dev/result: releasetest-js5tt/results/62c3b02e-f12b-416c-9771-c02af518f6d4
generateName: echo-pipeline-run-
managedFields:
- time: "2023-08-07T11:41:39Z"
manager: kubectl-create
fieldsV1:
f:spec:
.: {}
f:params: {}
f:pipelineRef:
.: {}
f:name: {}
f:metadata:
f:generateName: {}
operation: Update
apiVersion: tekton.dev/v1
fieldsType: FieldsV1
- time: "2023-08-07T11:41:40Z"
manager: openshift-pipelines-controller
fieldsV1:
f:metadata:
f:labels:
.: {}
f:tekton.dev/pipeline: {}
operation: Update
apiVersion: tekton.dev/v1
fieldsType: FieldsV1
- time: "2023-08-07T11:41:49Z"
manager: openshift-pipelines-chains-controller
fieldsV1:
f:metadata:
f:finalizers:
.: {}
v:"chains.tekton.dev/pipelinerun": {}
f:annotations:
.: {}
f:chains.tekton.dev/signed: {}
operation: Update
apiVersion: tekton.dev/v1
fieldsType: FieldsV1
- time: "2023-08-07T11:41:49Z"
manager: openshift-pipelines-controller
fieldsV1:
f:status:
f:startTime: {}
f:conditions: {}
f:pipelineSpec:
.: {}
f:tasks: {}
f:params: {}
f:completionTime: {}
f:childReferences: {}
operation: Update
apiVersion: tekton.dev/v1
fieldsType: FieldsV1
subresource: status
- time: "2023-08-07T11:42:15Z"
manager: openshift-pipelines-results-watcher
fieldsV1:
f:metadata:
f:annotations:
f:results.tekton.dev/log: {}
f:results.tekton.dev/record: {}
f:results.tekton.dev/result: {}
operation: Update
apiVersion: tekton.dev/v1
fieldsType: FieldsV1
resourceVersion: "126429"
creationTimestamp: "2023-08-07T11:41:39Z"
deletionTimestamp: "2023-08-07T11:42:23Z"
deletionGracePeriodSeconds: 0
apiVersion: tekton.dev/v1
すべての結果とレコードにその名前でアクセスできます。Common Expression Language (CEL) クエリーを使用して、YAML マニフェストなど、そのクエリーに含まれる情報によって結果とレコードを検索することもできます。
Tekton Results を設定すると、パイプラインまたはタスクの一部として実行されたすべてのツールのログ情報を LokiStack に転送しやすくなります。その後、Tekton Results を照会して、Tekton Results レコードに関連付けられたタスク実行のログ情報を取得できます。
パイプライン実行やタスク実行の名前で結果とログのクエリーを実行することもできます。
1.2. Tekton の結果の設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Pipelines をインストールすると、Tekton Results がデフォルトで有効になります。
ただし、パイプライン実行とタスク実行のログ情報を保存してアクセスする場合は、この情報を LokiStack に転送するように設定する必要があります。
オプションで、Tekton Results の追加設定を完了できます。
1.2.1. ログ情報の LokiStack 転送の設定 リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results を使用してタスク実行のログ情報を照会する場合は、OpenShift Container Platform クラスターに LokiStack と OpenShift ロギングをインストールし、ログ情報を LokiStack に転送するように設定する必要があります。
ログ情報の LokiStack 転送が設定されていない場合、Tekton Results でこの情報は保存されず、コマンドラインインターフェイスまたは API からも提供されません。
前提条件
-
OpenShift CLI (
oc) ユーティリティーがインストールされている。 - クラスター管理者ユーザーとして OpenShift Container Platform クラスターにログインした。
手順
LokiStack 転送を設定するには、次の手順を実行します。
- OpenShift Container Platform クラスターで、Loki Operator を使用して LokiStack をインストールし、さらに OpenShift Logging Operator もインストールします。
OpenShift Logging バージョン 6 またはバージョン 5 のどちらをインストールしたかに応じて、次のいずれかの YAML マニフェストを使用して、
ClusterLogForwarderカスタムリソース (CR) のClusterLogForwarder.yamlマニフェストファイルを作成します。OpenShift Logging バージョン 6 をインストールしている場合の
ClusterLogForwarderCR の YAML マニフェストapiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging spec: inputs: - application: selector: matchExpressions: - key: app.kubernetes.io/managed-by operator: In values: ["tekton-pipelines", "pipelinesascode.tekton.dev"] name: only-tekton type: application managementState: Managed outputs: - lokiStack: labelKeys: application: ignoreGlobal: true labelKeys: - log_type - kubernetes.namespace_name - openshift_cluster_id authentication: token: from: serviceAccount target: name: logging-loki namespace: openshift-logging name: default-lokistack tls: ca: configMapName: openshift-service-ca.crt key: service-ca.crt type: lokiStack pipelines: - inputRefs: - only-tekton name: default-logstore outputRefs: - default-lokistack serviceAccount: name: collectorOpenShift Logging バージョン 5 をインストールしている場合の
ClusterLogForwarderCR の YAML マニフェストapiVersion: "logging.openshift.io/v1" kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging spec: inputs: - name: only-tekton application: selector: matchLabels: app.kubernetes.io/managed-by: tekton-pipelines pipelines: - name: enable-default-log-store inputRefs: [ only-tekton ] outputRefs: [ default ]次のコマンドを入力して、
openshift-loggingnamespace にClusterLogForwarderCR を作成します。$ oc apply -n openshift-logging ClusterLogForwarder.yaml次のコマンドを使用して、
TektonConfigカスタムリソース (CR) を編集します。$ oc edit TektonConfig configresult仕様に次の変更を加えます。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: loki_stack_name: logging-loki1 loki_stack_namespace: openshift-logging2
1.2.2. 外部データベースサーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results は、PostgreSQL データベースを使用してデータを保存します。デフォルトでは、インストールには内部 PostgreSQL インスタンスが含まれます。デプロイメント内にすでに存在する外部 PostgreSQL サーバーを使用するようにインストールを設定できます。
手順
次のコマンドを入力して、PostgreSQL サーバーに接続するための認証情報を含むシークレットを作成します。
$ oc create secret generic tekton-results-postgres \ --namespace=openshift-pipelines \ --from-literal=POSTGRES_USER=<user> \ --from-literal=POSTGRES_PASSWORD=<password>次のコマンドを使用して、
TektonConfigカスタムリソース (CR) を編集します。$ oc edit TektonConfig configresult仕様に次の変更を加えます。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: is_external_db: true db_host: database.example.com1 db_port: 53422
1.2.3. Tekton Results の保持ポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Tekton Results はパイプラインの実行、タスクの実行、イベント、およびログを無期限に保存します。これにより、ストレージリソースが不必要に使用され、データベースのパフォーマンスに影響する可能性があります。
クラスターレベルで Tekton Results の保持ポリシーを設定して、古い結果とそれに関連するレコードおよびログを削除できます。
手順
次のコマンドを使用して、
TektonConfigカスタムリソース (CR) を編集します。$ oc edit TektonConfig configresult仕様に次の変更を加えます。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: options: configMaps: config-results-retention-policy: data: runAt: "3 5 * * 0"1 maxRetention: "30"2
1.3. Tekton Results に結果とレコードのクエリーを実行する リンクのコピーリンクがクリップボードにコピーされました!
opc コマンドラインユーティリティーを使用して、Tekton Results に結果とレコードのクエリーを実行できます。opc コマンドラインユーティリティーをインストールするには、tkn コマンドラインユーティリティーのパッケージをインストールします。このパッケージのインストール手順は、tkn のインストール を参照してください。
レコードと結果の名前を使用して、その中に含まれるデータを取得できます。
Common Expression Language (CEL) クエリーを使用して結果とレコードを検索できます。これらの検索では、結果またはレコードの UUID が表示されます。提供された例を使用して、一般的な検索タイプのクエリーを作成できます。参照情報を使用して他のクエリーを作成することもできます。
1.3.1. Tekton Results をクエリーするための opc ユーティリティー環境の準備 リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results をクエリーする前に、opc ユーティリティーの環境を準備する必要があります。
前提条件
-
opcユーティリティーがインストールされている。 -
OpenShift CLI (
oc) を使用して OpenShift Container Platform クラスターにログオンした。
手順
次のコマンドを入力して、
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次のコマンドを入力して、Tekton Results API の認証トークンを作成します。
$ oc create token <service_account><service_account>は、OpenShift Pipelines がパイプライン実行とタスク実行を実行した namespace に対する読み取り権限を持つ OpenShift Container Platform サービスアカウントの名前に置き換えます。このコマンドが出力する文字列を保存します。
オプション: Tekton Results API による自動認証用に
~/.config/tkn/results.yamlファイルを作成します。ファイルには次の内容が含まれている必要があります。address: <tekton_results_route>1 token: <authentication_token>2 ssl: roots_file_path: /home/example/cert.pem3 server_name_override: tekton-results-api-service.openshift-pipelines.svc.cluster.local4 service_account: namespace: service_acc_15 name: service_acc_16 - 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.3.2. 名前による結果とレコードのクエリー リンクのコピーリンクがクリップボードにコピーされました!
名前を使用して、結果とレコードをリスト表示したり、クエリーを実行したりできます。
前提条件
-
opcユーティリティーをインストールし、Tekton Results をクエリーするための環境を準備している。 -
jqパッケージがインストールされている。 - (ログ情報を照会する場合) LokiStack へのログ転送が設定されている。
手順
namespace で作成されたパイプライン実行およびタスク実行に対応するすべての結果の名前をリストします。以下のコマンドを実行します。
$ opc results result list --addr ${RESULTS_API} <namespace_name>コマンドの例
$ opc results result list --addr ${RESULTS_API} results-testing出力例
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次のコマンドを入力して、結果内のすべてのレコードの名前をリスト表示します。
$ opc results records list --addr ${RESULTS_API} <result_name>コマンドの例
$ opc results records list --addr ${RESULTS_API} results-testing/results/04e2fbf2-8653-405f-bc42-a262bcf02bed出力例
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次のコマンドを入力して、レコードからパイプライン実行またはタスク実行の 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} \ 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))'オプション: ログレコード名を使用して、レコードから実行されたタスクのログ情報を取得します。ログレコード名を取得するには、レコード名の
recordsは、logsに置き換えます。以下のコマンドを実行します。$ opc results logs get --addr ${RESULTS_API} <log_record_name> | 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 -d
1.3.3. 結果の検索 リンクのコピーリンクがクリップボードにコピーされました!
Common Expression Language (CEL) クエリーを使用して結果を検索できます。たとえば、成功しなかったパイプライン実行の結果を見つけることができます。ただし、関連情報のほとんどは結果オブジェクトには含まれていません。名前、完了時間、その他のデータで検索するには、レコードを検索します。
前提条件
-
opcユーティリティーをインストールし、Tekton Results をクエリーするための環境を準備している。
手順
次のコマンドを入力して、CEL クエリーを使用して結果を検索します。
$ opc results result list --addr ${RESULTS_API} --filter="<cel_query>" <namespace-name>
<namespace_name> は、パイプラインの実行またはタスクの実行が作成された namespace に置き換えます。
| 目的 | CEL クエリー |
|---|---|
| 失敗したすべての実行の結果 |
|
|
アノテーション |
|
1.3.4. レコードの検索 リンクのコピーリンクがクリップボードにコピーされました!
Common Expression Language (CEL) クエリーを使用してレコードを検索できます。各レコードにはパイプライン実行またはタスク実行に関する完全な YAML 情報が含まれるため、さまざまな基準でレコードを検索できます。
前提条件
-
opcユーティリティーをインストールし、Tekton Results をクエリーするための環境を準備している。
手順
次のコマンドを入力して、CEL クエリーを使用してレコードを検索します。
$ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <namespace_name>/result/-<namespace_name>は、パイプラインの実行またはタスクの実行が作成された namespace に置き換えます。または、次のコマンドを入力して、単一の結果内のレコードを検索します。$ opc results records list --addr ${RESULTS_API} --filter="<cel_query>" <result_name><result_name>は、結果の完全名に置き換えます。
| 目的 | CEL クエリー |
|---|---|
| 失敗したすべてのタスク実行またはパイプライン実行のレコード |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 完了までに 5 分以上かかったすべてのパイプライン実行のレコード |
|
| 2023 年 10 月 7 日に完了したすべてのパイプライン実行とタスク実行のレコード |
|
| 3 つ以上のタスクを含むすべてのパイプライン実行のレコード |
|
|
|
|
|
|
|
1.3.5. 検索結果の参考情報 リンクのコピーリンクがクリップボードにコピーされました!
結果の共通表現言語 (CEL) クエリーでは次のフィールドを使用できます。
| CEL フィールド | 説明 |
|---|---|
|
|
|
|
| 結果の一意識別子。 |
|
|
|
|
| 結果の概要。 |
|
| 結果の作成時間。 |
|
| 結果の最終更新時刻。 |
summary.status フィールドを使用して、パイプラインの実行が成功したかどうかを判断できます。このフィールドには次の値を指定できます。
-
UNKNOWN -
SUCCESS -
FAILURE -
TIMEOUT -
CANCELLED
このフィールドの値を指定する場合は、" や ' などの引用符を使用しないでください。
1.3.6. レコード検索の参考情報 リンクのコピーリンクがクリップボードにコピーされました!
レコードの Common Expression Language (CEL) クエリーでは次のフィールドを使用できます。
| CEL フィールド | 説明 | 値 |
|---|---|---|
|
| レコード名 | |
|
| レコードタイプ識別子 |
|
|
| タスク実行またはパイプライン実行の YAML データ。ログレコードでは、このフィールドにはログ出力が含まれます。 |
data フィールドにはタスク実行またはパイプライン実行の YAML データ全体が含まれるため、このデータのすべての要素を CEL クエリーで使用できます。たとえば、data.status.completionTime には、タスク実行またはパイプライン実行の完了時間が含まれます。
1.4. パイプライン実行とタスク実行の名前で結果とログのクエリーを実行する リンクのコピーリンクがクリップボードにコピーされました!
opc コマンドラインユーティリティーを使用して、Tekton Results に対してパイプライン実行とタスク実行のリストのクエリーを実行し、その後、パイプライン実行とタスク実行の名前を使用してマニフェストとログ情報を取得できます。
このアプローチでは、結果とレコードのクエリーとは異なる opc コマンドラインユーティリティー設定が必要です。
パイプライン実行およびタスク実行の名前による結果とログのクエリーは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
1.4.1. パイプライン実行とタスク実行の名前で結果のクエリーを実行するための opc ユーティリティー設定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行とタスク実行の名前で Tekton Results から結果のクエリーを実行する前に、opc ユーティリティーを設定する必要があります。
前提条件
-
opcユーティリティーがインストールされている。 -
OpenShift CLI (
oc) を使用して OpenShift Container Platform クラスターにログオンした。
手順
次のコマンドを入力して、Tekton Results API の認証トークンを作成します。
$ oc create token <service_account><service_account>は、OpenShift Pipelines がパイプライン実行とタスク実行を実行した namespace に対する読み取り権限を持つ OpenShift Container Platform サービスアカウントの名前に置き換えます。このコマンドが出力する文字列を保存します。
次のいずれかの手順を実行します。
次のコマンドを入力して、
opcユーティリティーを対話的に設定します。$ opc results config setユーティリティーが表示するプロンプトに応答します。
Tokenには、作成した認証トークンを入力します。次のコマンドを入力して、コマンドから
opcユーティリティーを設定します。$ opc results config set --host="https://tekton-results.example.com" --token="<token>"ホスト名は、Tekton Results ルートの完全修飾ドメイン名に置き換えます。
<token>は、生成した認証トークンに置き換えます。
検証
次のコマンドを入力して、
opcユーティリティーに設定した設定を表示できます。$ opc results config view出力例
api-path: "" apiVersion: results.tekton.dev/v1alpha2 host: https://tekton-results.openshiftapps.com insecure-skip-tls-verify: "true" kind: Client token: sha256~xyz
1.4.2. パイプライン実行名と識別子のリストを表示する リンクのコピーリンクがクリップボードにコピーされました!
opc ユーティリティーを使用して、namespace 内のパイプライン実行の名前と識別子のリストを表示できます。
前提条件
-
opcユーティリティーがインストールされている。 -
パイプライン実行とタスク実行の名前で Tekton Results に結果のクエリーを実行するように
opcユーティリティーを設定した。
手順
次のいずれかのコマンドを使用して、パイプライン実行を表示します。
指定された namespace 内のすべてのパイプライン実行を表示するには、次のコマンドを入力します。
$ opc results pipelinerun list -n <namespace_name>必要に応じて、
--limitコマンドラインオプション (例:--limit=10) を指定します。この設定では、opcコマンドは指定された行数 (パイプライン実行名を含む) を表示し、終了します。--single-page=falseコマンドラインオプションを追加すると、コマンドは指定された行数を表示し、続行するか終了するかを尋ねるプロンプトが表示されます。必要に応じて、
--labelsコマンドラインオプション (例:--labels="app.kubernetes.io/name=test-app, app.kubernetes.io/component=database) を指定します。この設定では、リストには指定されたラベルまたはアノテーションを持つパイプライン実行のみが含まれます。opc results pipelinerun listコマンドの出力例NAME UID STARTED DURATION STATUS openshift-pipelines-main-release-tests-zscq8 78515e3a-8e20-43e8-a064-d2442c2ae845 1 week ago 5s Failed(CouldntGetPipeline) openshift-pipelines-main-release-tests-zrgv6 14226144-2d08-440d-a600-d602ca46cdf6 1 week ago 26m13s Failed openshift-pipelines-main-release-tests-jdc24 e34daea2-66fb-4c7d-9d4b-d9d82a07b6cd 1 week ago 5s Failed(CouldntGetPipeline) openshift-pipelines-main-release-tests-6zj7f 9b3e5d68-70ab-4c23-8872-e7ad7121e60b 1 week ago 5s Failed(CouldntGetPipeline) openshift-pipelines-main-release-tests-kkk9t 2fd28c48-388b-4e6a-9ec3-2bcd9dedebc3 1 week ago 5s Failed(CouldntGetPipeline)指定された名前付きパイプラインに関連するパイプライン実行を表示するには、次のコマンドを入力します。
$ opc results pipelinerun list <pipeline_name> -n <namespace_name>このコマンドを実行すると、名前に
<pipeline_name>が含まれるパイプラインのすべてのパイプライン実行がリスト表示されます。たとえば、buildを指定すると、コマンドはbuild、build_123、またはenhancedbuildという名前のパイプラインに関連するすべてのパイプライン実行を表示します。必要に応じて、
--limitコマンドラインオプション (例:--limit=10) を指定します。この設定では、opcコマンドは指定された行数 (パイプライン実行名を含む) を表示し、終了します。--single-page=falseコマンドラインオプションを追加すると、コマンドは指定された行数を表示し、続行するか終了するかを尋ねるプロンプトが表示されます。
1.4.3. タスク実行の名前と識別子のリストを表示する リンクのコピーリンクがクリップボードにコピーされました!
opc ユーティリティーを使用して、namespace 内のタスク実行の名前と識別子のリスト、またはパイプライン実行に関連付けられたタスク実行の名前と識別子のリストを表示できます。
前提条件
-
opcユーティリティーがインストールされている。 -
パイプライン実行とタスク実行の名前で Tekton Results に結果のクエリーを実行するように
opcユーティリティーを設定した。
手順
namespace 内のすべてのタスク実行のリストを表示するには、次のコマンドを入力します。
$ opc results taskrun list -n <namespace_name>必要に応じて、
--limitコマンドラインオプション (例:--limit=10) を指定します。この設定では、opcコマンドは指定された行数 (パイプライン実行名を含む) を表示し、終了します。--single-page=falseコマンドラインオプションを追加すると、コマンドは指定された行数を表示し、続行するか終了するかを尋ねるプロンプトが表示されます。必要に応じて、
--labelsパラメーター (例:--labels="app.kubernetes.io/name=test-app, app.kubernetes.io/component=database) を指定します。この設定では、リストには指定されたラベルまたはアノテーションを持つタスク実行のみが含まれます。namespace の
opc results pipelinerun listコマンドの出力例NAME UID STARTED DURATION STATUS openshift-pipelines-main-release-tests-zrgv6-e2e-test 10d6952f-b926-4e4b-a976-519867969ce7 16d ago 12m41s Failed openshift-pipelines-main-release-tests-zrgv6-deploy-operator ab41b63b-16ec-4a32-8b95-f2678eb5c945 16d ago 22s Succeeded openshift-pipelines-main-release-tests-zrgv6-provision-cluster b374df00-5132-4633-91df-3259670756b3 16d ago 12m30s Succeeded operator-main-index-4-18-on-pull-request-ml4ww-show-sbom c5b77784-cd87-4be8-bc12-28957762f382 16d ago 16s Succeeded openshift-c4ae3a5a28e19ffc930e7c2aa758d85c-provision-eaas-space 22535d8e-d360-4143-9c0c-4bd0414a22b0 16d ago 17s Succeededパイプライン実行に関連付けられたタスク実行のリストを表示するには、次のコマンドを入力します。
$ opc results taskrun list --pipelinerun <pipelinerun_name> -n <namespace_name>必要に応じて、
--limitコマンドラインオプション (例:--limit=10) を指定します。この設定では、opcコマンドは指定された行数 (パイプライン実行名を含む) を表示し、終了します。--single-page=falseコマンドラインオプションを追加すると、コマンドは指定された行数を表示し、続行するか終了するかを尋ねるプロンプトが表示されます。
パイプライン実行の opc results taskrun list コマンドの出力例
+
NAME UID STARTED DURATION STATUS
operator-main-index-4-18-on-pull-request-g95fk-show-sbom 5b405941-0d3e-4f8c-a68a-9ffcc481abf1 16d ago 13s Succeeded
operator-main-index-4-18-on-pul2b222db723593a186d12f1b82f1a1fd9 89588ae7-aa36-4b62-97d1-5634ee201850 16d ago 36s Succeeded
operator-fb80434867bc15d89fea82506058f664-fbc-fips-check-oci-ta 7598d44a-4370-459b-8ef0-ae4165c58ba5 16d ago 5m52s Succeeded
operator-main-index-4-18-on-pull-request-g95fk-validate-fbc fb80d962-807b-4b63-80cb-6a57d383755a 16d ago 1m26s Succeeded
operator-main-index-4-18-on-pull-request-g95fk-apply-tags 8a34b46d-74a9-4f20-9e99-a285f7b258d6 16d ago 13s Succeeded
1.4.4. パイプライン実行の結果情報を表示する リンクのコピーリンクがクリップボードにコピーされました!
opc ユーティリティーを使用して、パイプライン実行がいつどのように完了したかの説明、パイプライン実行の完全なマニフェスト、パイプライン実行が生成したログを表示できます。
前提条件
-
opcユーティリティーがインストールされている。 -
パイプライン実行とタスク実行の名前で Tekton Results に結果のクエリーを実行するように
opcユーティリティーを設定した。 -
パイプライン実行の名前または UUID を持っている。
ocp results list pipelinerunsコマンドを使用して、結果が利用可能なパイプライン実行の名前と UUID を表示できます。
手順
次のいずれかのコマンドを使用して、パイプライン実行の結果情報を表示します。
パイプラインの実行がいつ、どのように完了したかの説明を表示するには、次のコマンドを入力します。
$ opc results pipelinerun describe -n <namespace_name> <pipelinerun_name>または、名前の代わりにパイプライン実行の UUID を使用することもできます。
$ opc results pipelinerun describe -n <namespace_name> --uid <pipelinerun_uuid>opc results pipelinerun describeコマンドの出力例Name: operator-main-index-4-18-on-pull-request-7kssl Namespace: tekton-ecosystem-tenant Service Account: appstudio-pipeline Labels: app.kubernetes.io/managed-by=pipelinesascode.tekton.dev app.kubernetes.io/version=v0.33.0 Annotations: appstudio.openshift.io/snapshot=openshift-pipelines-main-b7jj6 build.appstudio.openshift.io/repo=https://github.com/openshift-pipelines/operator?rev=ba5e62e51af0c88bc6c3fd4201e789bdfc093daa 📌 Status STARTED DURATION STATUS 27d ago 9m54s Succeeded ⏱ Timeouts Pipeline: 2h0m0s ⚓ Params NAME VALUE • git-url https://github.com/pramodbindal/operator • revision ba5e62e51af0c88bc6c3fd4201e789bdfc093daa 🗂 Workspaces NAME SUB PATH WORKSPACE BINDING • workspace --- VolumeClaimTemplate • git-auth --- Secret (secret=pac-gitauth-ceqzjt) 📦 Taskruns NAME TASK NAME • operator-main-index-4-18-on-pull-request-7kssl-init init • operator-main-index-4-18-on-pull-request-7kssl-clone-repository clone-repository
パイプライン実行の完全な YAML マニフェストを表示するには、次のコマンドを入力します。
$ opc results pipelinerun describe -n <namespace_name> --output yaml <pipelinerun_name>または、名前の代わりにパイプライン実行の UUID を使用することもできます。
$ opc results pipelinerun describe -n <namespace_name> --output yaml --uid <pipelinerun_uuid>パイプラインの実行に関連付けられたログを表示するには、次のコマンドを入力します。
$ opc results pipelinerun logs -n <namespace_name> <pipelinerun_name>または、名前の代わりにパイプライン実行の UUID を使用することもできます。
$ opc results pipelinerun logs -n <namespace_name> --uid <pipelinerun_uuid>
opc results pipelinerun logs で表示されるログには、このパイプライン実行内で完了したタスク実行のログは含まれません。これらのログを表示するには、opc results taskrun list --pipelinerun コマンドを使用してこのパイプライン実行内のタスク実行の名前を見つけ、パイプライン実行の名前を指定します。次に、opc results taskrun log コマンドを使用してタスク実行のログを表示します。
1.4.5. タスク実行の結果情報を表示する リンクのコピーリンクがクリップボードにコピーされました!
opc ユーティリティーを使用して、タスク実行がいつどのように完了したかの説明、タスク実行の完全なマニフェスト、タスク実行が生成したログを表示できます。
前提条件
-
opcユーティリティーがインストールされている。 -
パイプライン実行とタスク実行の名前で Tekton Results に結果のクエリーを実行するように
opcユーティリティーを設定した。 -
タスク実行の名前または UUID を持っている。
opc results taskrun listコマンドを使用すると、結果が利用可能なタスク実行の名前または UUID を表示できます。 - ログを LokiStack に転送するように設定した (ログを取得する場合)。
手順
次のいずれかのコマンドを使用して、タスク実行の結果情報を表示します。
タスク実行がいつ、どのように完了したかの説明を表示するには、次のコマンドを入力します。
$ opc results taskrun describe -n <namespace_name> <taskrun_name>または、名前の代わりにタスク実行の UUID を使用することもできます。
$ opc results taskrun describe -n <namespace_name> --uid <taskrun_uuid>opc results taskrun describeコマンドの出力例Name: operator-main-index-4-18-on-push-gc699-build-images-0 Namespace: tekton-ecosystem-tenant Service Account: appstudio-pipeline Labels: tekton.dev/pipelineTask=build-images tekton.dev/task=buildah-remote-oci-ta Annotations: pipelinesascode.tekton.dev/branch=main pipelinesascode.tekton.dev/check-run-id=40080193061 📌 Status STARTED DURATION STATUS 28d ago 3m22s Failed ⚓ Params NAME VALUE • PLATFORM linux-m2xlarge/arm64 • IMAGE quay.io/redhat-user-workloads/tekton-ecosystem
タスク実行の完全な YAML マニフェストを表示するには、次のコマンドを入力します。
$ opc results taskrun describe -n <namespace_name> --output yaml <taskrun_name>または、名前の代わりにタスク実行の UUID を使用することもできます。
$ opc results taskrun describe -n <namespace_name> --output yaml --uid <taskrun_uuid>タスク実行に関連付けられたログを表示するには、次のコマンドを入力します。
$ opc results taskrun logs -n <namespace_name> <taskrun_name>または、名前の代わりにタスク実行の UUID を使用することもできます。
$ opc results taskrun logs -n <namespace_name> --uid <taskrun_uuid>
1.4.6. コマンドライン引数の短縮名 リンクのコピーリンクがクリップボードにコピーされました!
opc ユーティリティーを使用して、パイプライン実行とタスク実行の名前で Tekton Results に結果のクエリーを実行する場合、長いコマンドライン引数をその名前の短縮バージョンに置き換えることができます。
| 完全なパラメーター名 | パラメーターの短縮名 |
|---|---|
|
|
|
|
|
|
|
|
|