IBM Cloud Docs
シークレット、パラメーター、およびプロパティーのカスタマイズ

シークレット、パラメーター、およびプロパティーのカスタマイズ

実行時にパイプラインとの間でデータの読み取り/書き込みを行うには、pipelinectl コマンドを使用します。 pipelinectl インターフェースを使用して、シークレット、変数、リポジトリー・データ、成果物データ、エビデンスの結果の成果物 (テストの結果のファイルなど) を読み取ったり、書き込んだりすることができます。

スクリプトまたは基本イメージ用に pipelinectl ツールをインストールする必要はありません。参照パイプラインによって、スクリプトのコンテキストに対応するバイナリー・ファイルが提供されます。

パイプライン環境のシークレットとプロパティーへのアクセス

環境プロパティーおよびシークレット (パイプライン UI で定義される) には、次のように pipelinectl を使用してアクセスできます。

# if you set my_config_value on the UI, it's accessible via `get_env`
my_config_value=$(get_env my_config_value)

次のように set_env を使用して、他にも変数を設定することができます。

set_env my_config_value "some value"

# later on, even in another stage
my_config_value=$(get_env my_config_value)

これらの値は永続するものではなく、1 回のパイプラインの実行でのみ使用されます。

パイプライン UI に必要なパラメーターを追加することで、独自のビルド用の Artifactory 認証資格情報を作成することができます。

     my-artifactory-email
    my-artifactory-user
    my-artifactory-password
    my-artifactory-url

これらのパラメーターをパイプラインで使用できる場合は、ユーザー・スクリプトでこれらにアクセスして Docker 認証 JSON ファイルを作成できます。 以下に例を示します。

kubectl create secret docker-registry regcred \
  --o json \
  --dry-run=client \
  --docker-server="$(get_env my-artifactory-url)" \
  --docker-username="$(get_env my-artifactory-user)" \
  --docker-email="$(get_env my-artifactory-email)" \
  --docker-password="$(get_env my-artifactory-password)" \
   | jq -r '.data[".dockerconfigjson"]'

{"auths":{"us.icr.io":{"username":"user@ibm.com","password":"secret-password","email":"user@ibm.com","auth":"dXNlckBpYm0uY29tOnNlY3JldC1wYXNzd29yZA=="}}}

カスタム・スクリプトのパラメーター

パイプライン環境変数とシークレットに加えて、これらのパラメーター値がユーザー・スクリプト・ステージ用に提供されています。

ユーザー・スクリプトで pipelinectl コマンドを使用して、リポジトリー、成果物、ファイル、および環境変数にアクセスできます。 メソッド list_reposload_repoload_artifactlist_artifacts、および get_env を使用します。

pipelinectl

app-repo は、内部的に複製され、save_repo pipelinectl インターフェースを使用して app-repo の参照名でパイプラインに追加される、デフォルトのアプリ・リポジトリーです。 ツールチェーン・テンプレートからパイプラインをセットアップすると、デフォルトのリポジトリーが、リポジトリー・パイプライン UI のパラメーターによって提供されるか、そのツールチェーン・バインディング名で選択されます。 保存された load_repo のプロパティーにアクセスするには、app-repo コマンドを使用します。

の値 /config/

以前のバージョンとのユーザー・スクリプトの互換性をサポートするために、これらの値は /config/ にコピーされます。 これらのファイルを使用できるかどうかは、パイプラインのコンテキストに依存するため、これらのファイルの値を使用する前にファイルが使用可能であることを確認してください。

表 2. 'config' 値
パス 説明
/config/api-key 以前のバージョンとのスクリプトの互換性のためにコピーされた ibmcloud-api-key の値。
/workspace/git-token 以前のバージョンとのスクリプトの互換性のために、パイプラインの開始時点で取得される Git トークン。
/config/environment インベントリーのデプロイメント・ターゲット環境。
/config/deployment-delta-path デプロイメント・デルタを含む JSON ファイルのパス。
/config/inventory-path インベントリー・リポジトリー・コンテンツのパス。
/config/git-branch アプリ・リポジトリーの現在チェックアウトされている Git ブランチ。
/config/git-commit チェックアウトされたアプリ・リポジトリーの最新の Git コミット。
/config/repository-url アプリ・リポジトリーの URL。
/config/inventory-url インベントリー・リポジトリーの URL。
/config/image イメージのレジストリー、名前空間、名前、およびダイジェストを含む、ビルドされた Docker イメージ成果物。
/config/artifact イメージのレジストリー、名前空間、名前、およびダイジェストを含む、ビルドされた Docker イメージ成果物。
/config/signature イメージ成果物の署名。

これらの値は段階的に廃止され、pipelinectl によるステージ入出力インターフェースに置き換えられます。

環境変数

以下の表に、パイプラインによって提供されるカスタム・スクリプト・ステージのコンテキストのデフォルト ENV 変数を示します。

表 3. 環境変数
パス 説明
BUILD_NUMBER Tekton パイプラインのビルド番号。
PIPELINE_CONFIG_PATH パイプライン・スクリプト・ライブラリーのルートのパス。
PIPELINE_CONFIG_REPO_PATH パイプラインの config-repo が複製されるディレクトリー。
PIPELINE_RUN_NAME Tekton パイプラインの実行名。
PIPELINE_RUN_ID Tekton パイプラインの実行 ID。
PIPELINE_RUN_URL Tekton パイプラインの実行 URL。
PIPELINE_ID Tekton パイプライン ID。
STAGE ユーザー・スクリプトのステージ。
TOOLCHAIN_DATA_PATH ツールチェーン・データ・パス /toolchain/toolchain.json ファイル。
TRIGGER_TYPE パイプラインのトリガー・タイプ。
TRIGGER_NAME パイプラインのトリガー名。
TRIGGERED_BY パイプラインをトリガーしたユーザーに関する情報。 この値は、E メール・アドレスか、時間によりトリガーされるパイプライン実行になります。
WORKSPACE 共有ワークスペースのパス。
PIPELINE_STATUS パイプラインの実行の状況。 「成功」、「失敗」、またはブランクにすることができます。 PIPELINE_STATUS は、終了ステージでのみ使用可能です。
INVENTORY_URL インベントリー・リポジトリーの URL。
EVIDENCE_LOCKER_URL エビデンス・リポジトリー URL。
INCIDENT_ISSUES_URL 問題のリポジトリー URL。

これらの環境変数には、任意のスクリプト ( ${PIPELINE_ID} など) でアクセスできます。

カスタム・スクリプトからのツールチェーン・データへのアクセス

toolchain.json file 環境変数に格納されたパスの位置にパイプラインによって提供された TOOLCHAIN_DATA_PATHから、ツールチェーン・データを読み取ることができます。 また、ツールチェーン統合と jsonpath を使用し、/config にあるそれらに、他の変数と同様の方法でアクセスすることもできます。 あるいは、get_env を使用することによってもアクセスできます。

使用例

TOOLCHAIN_CONFIG_JSON="$(get_env TOOLCHAIN_CONFIG_JSON)"
toolchain_id=$(jq -r '.toolchain_guid' "$TOOLCHAIN_CONFIG_JSON")

共有ワークスペース

これらのカスタム・スクリプトは同じワークスペースで動作するため、これらのスクリプトの間では、データをファイルに書き込み、それをもう一方のタスクで読み込むことで、データを受け渡すことができます。 このワークスペースは、$WORKSPACE 変数で指定されたパスにマウントされます。

使用例

書き込み中:

echo -n "$DIGEST" > "${WORKSPACE}"/image-digest

読み取り中:

image_digest=$(cat "${WORKSPACE}"/image-digest)

カスタム終了ステージ

終了ステージには、以下の 3 つのステップがあります。

表 4。 終了ステージのステップ
手順 説明
evaluate ログ・ファイル、成果物、および証拠を証拠ロッカーに収集およびアップロードすることに関連するタスクを実行する、カスタマイズ不可のステップ。
prepare カスタム終了ステージを実行するために必要なツールをセットアップするカスタマイズ不能なステップ。
finish .one-pipeline-config.yaml で提供されているカスタム・スクリプトを実行します。

このパイプラインの状況は、以下の 2 つの方法で判別できます。

  1. パイプライン実行の全体的な状況は、環境変数 PIPELINE_STATUS から取得できます。 値は、「Succeeded」、「Failed」、または「"」(大/小文字の区別あり) のいずれかです。 PIPELINE_STATUS は、基礎となる Tekton フレームワークから提供されます。
  2. evaluate ステップはエビデンスの観点からパイプライン実行を評価するため、この評価は PIPELINE_STATUS で設定された値とは異なる場合があります。 エビデンス評価に基づいてパイプラインの状況を表示するには、環境変数 finish_evaluate_exit_code を使用します。