IBM Cloud Docs
テクトンパイプラインの環境特性とリソース

テクトンパイプラインの環境特性とリソース

IBM Cloud® Continuous Delivery Tekton PipelineRun のデフォルトでは、以下の情報とリソースが利用可能です。

PipelineRun アノテーション

表 1 は、Tekton PipelineRun に含まれているアノテーションについて説明しています。

PipelineRun アノテーション
実行アノテーション 説明
devops.cloud.ibm.com/build-number パイプラインのビルド番号。 この番号は、すべてのトリガーからのパイプライン実行の累積合計です。
devops.cloud.ibm.com/listener このパイプラインの実行を開始したトリガーにマップされる Tekton eventlistener.
devops.cloud.ibm.com/pipeline-id この実行に使用されるパイプラインの固有 ID。
devops.cloud.ibm.com/trigger-name このパイプライン実行を開始したトリガーの名前。
devops.cloud.ibm.com/trigger-type このパイプライン実行を開始したトリガーのタイプ。 タイプは、manualtimerscmgeneric のいずれかになります。
devops.cloud.ibm.com/triggered-by トリガーを開始したユーザー。 この値は、 manual トリガーに対して run を押したユーザー、 timer トリガーに対して最後にトリガーを保存したユーザー、 scm トリガーに対して Git アクションを実行したユーザーのいずれかの IBMId です。 generic トリガーの場合には、この値は空になります。
devops.cloud.ibm.com/pipeline-run-url このパイプライン実行の詳細ページの URL。
devops.cloud.ibm.com/tekton-pipeline このパイプライン実行の固有 ID。

アノテーションへのアクセス

パイプライン定義 yaml ファイルのタスクからアノテーションにアクセスできます。 以下の例は、devops.cloud.ibm.com/build-number アノテーションにアクセスする方法を示しています。 このアノテーションを環境変数として提供するには、表1の実行アノテーションの1つに置き換える。 PipelineRun アノテーション。

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: simple-task
spec:
  steps:
    - name: simple-step
      image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
      env:
        - name: BUILD_NUMBER
          valueFrom:
            fieldRef:
              fieldPath: metadata.annotations['devops.cloud.ibm.com/build-number']
      command: ["bash", "-c"]
      args:
        - echo $BUILD_NUMBER;
          echo "COMPLETED"

PipelineRun ConfigMap および Secret

Continuous Delivery Tekton PipelineRun リソースは、環境プロパティ用に特定の ConfigMapSecret を作成します。 secure-properties Kubernetes Secret では、セキュアな値が含まれる選択済みフィールドに対して、Tool integration プロパティーを含むセキュア・プロパティーを利用できます。 非セキュア・プロパティは、 environment-properties Kubernetes ConfigMap で利用できる。 キーは、パイプライン・オーサリング・ユーザー・インターフェースで提供されるフィールド名である。

ConfigMap または Secret にアクセスする場合、パイプラインを正常に実行できるように適切なオブジェクト名とリファレンスの場所を把握していることを確認してください。

個別の値へのアクセス

Task の個別のキー値にアクセスできます。 下記の コ ー ド ス ニ ッペ ッ ト は、 サンプル apikey プロパティ名 (セキュアプロパティ付き) と environment プロパティ名 (テキス トプロパティ付き) を用いています。 これらのプロパティ名は、デリバリーパイプラインのプロパティページで設定します。

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: cm-echo-props
spec:
  steps:
    - name: cm-show-props
      image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
      env:
        - name: SECURE_VALUE
          valueFrom:
            secretKeyRef:
              name: secure-properties
              key: apikey
        - name: ENVIRONMENT
          valueFrom:
            configMapKeyRef:
              name: environment-properties
              key: environment
      command: ["/bin/bash", "-c"]
      args:
        - echo -e "environment from ConfigMap is >>";
          echo $ENVIRONMENT;
          echo "";
          echo -e "apikey from Secrets is >>";
          echo $SECURE_VALUE

すべての値へのアクセス

ConfigMap および Secret のすべてのキー値のペアを Task 環境に次のように追加できます。

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: cm-secrets-props
spec:
  steps:
    - name: cm-show-full-env
      image: icr.io/continuous-delivery/pipeline/pipeline-base-image:2.69
      envFrom:
        - configMapRef:
            name: environment-properties
        - secretRef:
            name: secure-properties
      command: ["/bin/bash", "-c"]
      args:
        - echo -e "The environment for this Step is ";
          env

マネージドワーカー仮想マシンのサイジング

IBM 管理対象ワーカー・プールを使用してパイプラインを実行すると、特定のデフォルト・メモリーを持つ VM が割り振られます。 ほとんどのジョブは、提供されたメモリーを使用して正常に実行できますが、特定のパイプラインでは、集中的なタスクのために追加のメモリーが必要になります。

ユーザーは、タスクにラベルを指定して、特定のタスクに必要なメモリーが多い (または少ない) かどうかを示すことができます。 この機能により、リソースの使用に必要な特定の量のリソースを特定し、最終的にコストを節約することができます。

Tekton パイプライン内の特定のタスクに適用する VM プロファイルを示すには、以下のいずれかの VM 値を使用して、 runtimeClassName ラベルをタスクに追加します。 ラベルが指定されていない場合は、デフォルトの VM プロファイルが使用されます。

  • small: 2Gi
  • medium: 4Gi (デフォルト)
  • large: 8Gi

以下に例を示します。

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: task1
  labels:
    runtimeClassName: medium
    and so on.

TriggerTemplate の一部として、 PipelineRun で同じ構成を指定することもできます。 PipelineRunruntimeClassName を指定することにより、ユーザーはタスク定義を変更せずに、使用する VM プロファイルを選択できます。

以下に例を示します。

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  generateName: pipeline-run-
spec:
  pipelineRef:
    name: pipeline
  taskRunSpecs:
    - pipelineTaskName: task1
      taskPodTemplate:
        runtimeClassName: medium

ログの形式

このセクションでは、 PipelineRun 詳細ページで提供されるログビューアの特徴と機能、およびこれらの特徴を利用するためにサポートされるログフォーマットについて説明します。

基本機能

ログビューアは、ANSIカラーコードとテキストスタイルをサポートし、ログコンテンツ内のURLを自動的に検出し、新しいウィンドウで開くクリック可能なリンクとして表示します。

ツールバー

ログビューアに表示されるツールバーには、以下のような追加機能がある:

  • 最大化:タスクリストとランヘッダーを非表示にすることで、ログビューアで使用できる領域を増やす。 これにより、ユーザーはアプリの他の部分から気が散ることをなくし、ログの内容に集中することができる。
  • ユーザー設定:ブラウザにローカルに保存され、アプリ内のすべてのログに適用されます。 詳しくは、以下のセクションを参照してください。

タイムスタンプ

IBM-マネージドワーカー、およびエージェントバージョン 0.20.5 以降のプライベートワーカーは、デフォルトでタイムスタンプを先頭に持つログ行を生成します。 ユーザーは、ログビューアの上部にあるツールバーの設定メニューでオプションを切り替えることにより、ログビューアでこれらのタイムスタンプを表示または非表示にすることができる。

表示されるタイムスタンプは、ユーザーのブラウザ設定に基づいてローカライズされ、Workerから受け取った生のタイムスタンプ値は、ホバー時にツールチップとして提供されます。

ログ・レベル

ログ・ビューワは、ログ行を解析して関連するログ・レベルを検出し、ログを消費しやすくするために、それに応じてログ行を装飾する。 対応フォーマットは以下の通り。

<timestamp> ::<level>::<message>
  • timestamp は労働者によって提供される
  • level は,,, のいずれかである、 error warning notice info debug
    • debug ログはデフォルトで非表示
    • 明示的な level のないログ行は、 info とみなされますが、ユーザがサポートされているログ形式を使用していない場合、UIで冗長性を避けるためにログレベルバッジは表示されません
  • message はその行にあるその他の内容で、書式設定などのためのANSIコードを含むことができる。

例えば、以下のスニペットは、 warning レベルのログ行を出力する:

echo '::warning::Something that may require attention but is non-blocking…'

表示されるログレベルは、ログビューアの上部にあるツールバーの設定メニューで変更できます。

ロググループ

ログレベルに加えて、ログビューアは、ログ内の折りたたみ可能なグループもサポートする。 対応フォーマットは以下の通り。

<timestamp> ::group::<message>
…
<timestamp> ::endgroup::

group 、グループの始まりを示す。 message の内容は、グループの現在の状態(展開または折りたたみなど)を示すインジケータとともに、グループのタイトル/概要として表示されます。 サマリーをクリックすると、グループの状態が切り替わる。

ログが表示されるとき、ステップがまだ進行中でない限り、グループはデフォルトで折りたたまれた状態で表示される。 ユーザーは必要に応じてグループを展開したり折りたたんだりすることができ、その状態はユーザーが別のビューに移動するまで維持される。

groupendgroup、およびログレベルコマンドは相互に排他的である。 ただし、グループ内のログは通常通りログレベルを使用できる。

グループの入れ子はサポートされていない。 group コマンドは、それ以前に終了していないグループを暗黙のうちに終了させる。

例えば、以下のスニペットは、 info レベルのメッセージを多数含む、要約「Additional config」を持つロググループを出力する:

echo '::group::Additional config'
echo 'This extends the base config'
echo '::info:: More info about the config…'
echo '::endgroup::'

Tekton デリバリー・パイプラインに関する詳細

Tekton および Continuous Deliveryについて詳しくは、 Tekton: A Modern Approach to Continuous Deliveryを参照してください。