テクトンパイプラインの環境特性とリソース
IBM Cloud® Continuous Delivery Tekton PipelineRun
のデフォルトでは、以下の情報とリソースが利用可能です。
PipelineRun
アノテーション
表 1 は、Tekton 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 |
このパイプライン実行を開始したトリガーのタイプ。 タイプは、manual 、timer 、scm 、generic のいずれかになります。 |
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
リソースは、環境プロパティ用に特定の ConfigMap
と Secret
を作成します。 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
: 2Gimedium
: 4Gi (デフォルト)large
: 8Gi
以下に例を示します。
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: task1
labels:
runtimeClassName: medium
and so on.
TriggerTemplate
の一部として、 PipelineRun
で同じ構成を指定することもできます。 PipelineRun
で runtimeClassName
を指定することにより、ユーザーはタスク定義を変更せずに、使用する 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
の内容は、グループの現在の状態(展開または折りたたみなど)を示すインジケータとともに、グループのタイトル/概要として表示されます。 サマリーをクリックすると、グループの状態が切り替わる。
ログが表示されるとき、ステップがまだ進行中でない限り、グループはデフォルトで折りたたまれた状態で表示される。 ユーザーは必要に応じてグループを展開したり折りたたんだりすることができ、その状態はユーザーが別のビューに移動するまで維持される。
group
、 endgroup
、およびログレベルコマンドは相互に排他的である。 ただし、グループ内のログは通常通りログレベルを使用できる。
グループの入れ子はサポートされていない。 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を参照してください。