OpenShift Pipeline の可観測性


Red Hat OpenShift Pipelines 1.18

OpenShift Pipeline の可観測性機能

Red Hat OpenShift Documentation Team

概要

このドキュメントでは、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 転送を設定するには、次の手順を実行します。

  1. OpenShift Container Platform クラスターで、Loki Operator を使用して LokiStack をインストールし、さらに OpenShift Logging Operator もインストールします。
  2. OpenShift Logging バージョン 6 またはバージョン 5 のどちらをインストールしたかに応じて、次のいずれかの YAML マニフェストを使用して、ClusterLogForwarder カスタムリソース (CR) の ClusterLogForwarder.yaml マニフェストファイルを作成します。

    OpenShift Logging バージョン 6 をインストールしている場合の ClusterLogForwarder CR の 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: collector

    OpenShift Logging バージョン 5 をインストールしている場合の ClusterLogForwarder CR の 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 ]

  3. 次のコマンドを入力して、openshift-logging namespace に ClusterLogForwarder CR を作成します。

    $ oc apply -n openshift-logging ClusterLogForwarder.yaml
  4. 次のコマンドを使用して、TektonConfig カスタムリソース (CR) を編集します。

    $ oc edit TektonConfig config

    result 仕様に次の変更を加えます。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      result:
        loki_stack_name: logging-loki 1
        loki_stack_namespace: openshift-logging 2
    1
    LokiStack CR の名前。通常は logging-loki です。
    2
    LokiStack がデプロイされている namespace の名前。通常は openshift-logging です。

1.2.2. 外部データベースサーバーの設定

Tekton Results は、PostgreSQL データベースを使用してデータを保存します。デフォルトでは、インストールには内部 PostgreSQL インスタンスが含まれます。デプロイメント内にすでに存在する外部 PostgreSQL サーバーを使用するようにインストールを設定できます。

手順

  1. 次のコマンドを入力して、PostgreSQL サーバーに接続するための認証情報を含むシークレットを作成します。

    $ oc create secret generic tekton-results-postgres \
      --namespace=openshift-pipelines \
      --from-literal=POSTGRES_USER=<user> \
      --from-literal=POSTGRES_PASSWORD=<password>
  2. 次のコマンドを使用して、TektonConfig カスタムリソース (CR) を編集します。

    $ oc edit TektonConfig config

    result 仕様に次の変更を加えます。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      result:
        is_external_db: true
        db_host: database.example.com 1
        db_port: 5342 2
    1
    PostgreSQL サーバーのホスト名を入力します。
    2
    PostgreSQL サーバーのポート番号を指定します。

1.2.3. Tekton Results の保持ポリシーの設定

デフォルトでは、Tekton Results はパイプラインの実行、タスクの実行、イベント、およびログを無期限に保存します。これにより、ストレージリソースが不必要に使用され、データベースのパフォーマンスに影響する可能性があります。

クラスターレベルで Tekton Results の保持ポリシーを設定して、古い結果とそれに関連するレコードおよびログを削除できます。

手順

  • 次のコマンドを使用して、TektonConfig カスタムリソース (CR) を編集します。

    $ oc edit TektonConfig config

    result 仕様に次の変更を加えます。

    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
    データベースでプルーニングジョブを実行するタイミングを cron 形式で指定します。この例では、毎週日曜日の午前 5 時 3 分にジョブを実行します。
    2
    データベースにデータを保持する日数を指定します。この例では、データを 30 日間保持します。

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

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

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

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

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

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

前提条件

  • 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
  2. 次のコマンドを入力して、Tekton Results API の認証トークンを作成します。

    $ oc create token <service_account>

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

  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
    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 へのログ転送が設定されている。

手順

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

    $ opc results list --addr ${RESULTS_API} <namespace_name>

    コマンドの例

    $ opc results 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

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

    $ 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

  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))'

    コマンドの例

    $ 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))'

  4. オプション: ログレコード名を使用して、レコードから実行されたタスクのログ情報を取得します。ログレコード名を取得するには、レコード名の 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 list --addr ${RESULTS_API} --filter="<cel_query>" <namespace-name>

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

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

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

!(summary.status == SUCCESS)

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

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

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> は、結果の完全名に置き換えます。

表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.3.5. 検索結果の参考情報

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

表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.3.6. レコード検索の参考情報

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

表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 には、タスク実行またはパイプライン実行の完了時間が含まれます。

1.4. 関連情報

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.