CI/CD パイプラインの作成
OpenShift Pipelines でのタスクとパイプラインの作成と実行の開始
概要
第1章 OpenShift Pipelines を使用したアプリケーションの CI/CD ソリューションの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Pipelines を使用すると、カスタマイズされた CI/CD ソリューションを作成して、アプリケーションをビルドし、テストし、デプロイできます。
アプリケーション向けの本格的なセルフサービス型の CI/CD パイプラインを作成するには、以下のタスクを実行する必要があります。
- カスタムタスクを作成するか、既存の再利用可能なタスクをインストールします。
- アプリケーションの配信パイプラインを作成し、定義します。
以下の方法のいずれかを使用して、パイプライン実行のためにワークスペースに接続されているストレージボリュームまたはファイルシステムを提供します。
- 永続ボリューム要求を作成するボリューム要求テンプレートを指定します。
- 永続ボリューム要求を指定します。
-
PipelineRunオブジェクトを作成し、Pipeline をインスタンス化し、これを起動します。 - トリガーを追加し、ソースリポジトリーのイベントを取得します。
このセクションでは、pipelines-tutorial の例を使用して前述のタスクを説明します。この例では、以下で構成される単純なアプリケーションを使用します。
-
pipelines-vote-uiGit リポジトリーにソースコードがあるフロントエンドインターフェイス(pipelines-vote-ui)。 -
pipelines-vote-apiGit リポジトリーにソースコードがあるバックエンドインターフェイス(pipelines-vote-api)。 -
pipelines-tutorialGit リポジトリーにあるapply-manifestsおよびupdate-deploymentタスク。
1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform クラスターにアクセスできる。
- OpenShift OperatorHub に一覧表示されている Red Hat OpenShift Pipelines Operator を使用して OpenShift Pipelines をインストールしている。インストールの完了後にクラスター全体に適用できる。
- OpenShift Pipelines CLI をインストールしている。
-
GitHub ID を使用してフロントエンドの
pipelines-vote-uiおよびバックエンドのpipelines-vote-apiGit リポジトリーをフォークしており、これらのリポジトリーに管理者権限でアクセスできる。 -
オプション:
pipelines-tutorialGit リポジトリーのクローンを作成している。
1.2. プロジェクトの作成およびパイプラインのサービスアカウントの確認 リンクのコピーリンクがクリップボードにコピーされました!
手順
OpenShift Container Platform クラスターにログインします。
oc login -u <login> -p <password> https://openshift.example.com:6443
$ oc login -u <login> -p <password> https://openshift.example.com:6443Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプルアプリケーションのプロジェクトを作成します。このサンプルワークフローでは、
pipelines-tutorialプロジェクトを作成します。oc new-project pipelines-tutorial
$ oc new-project pipelines-tutorialCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記別の名前でプロジェクトを作成する場合は、サンプルで使用されているリソース URL をプロジェクト名で更新してください。
pipelineサービスアカウントを表示します。Red Hat OpenShift Pipelines Operator は、イメージのビルドおよびプッシュを実行するのに十分なパーミッションを持つ
pipelineという名前のサービスアカウントを追加し、設定します。このサービスアカウントはPipelineRunオブジェクトによって使用されます。oc get serviceaccount pipeline
$ oc get serviceaccount pipelineCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.3. パイプラインタスクの作成 リンクのコピーリンクがクリップボードにコピーされました!
手順
pipelines-tutorialリポジトリーからapply-manifestsおよびupdate-deploymentタスクリソースをインストールします。これには、パイプラインの再利用可能なタスクのリストが含まれます。oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/01_pipeline/01_apply_manifest_task.yaml oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/01_pipeline/02_update_deployment_task.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/01_pipeline/01_apply_manifest_task.yaml $ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/01_pipeline/02_update_deployment_task.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow tkn task listコマンドを使用して、作成したタスクをリスト表示します。tkn task list
$ tkn task listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力では、
apply-manifestsおよびupdate-deploymentタスクリソースが作成されていることを検証します。NAME DESCRIPTION AGE apply-manifests 1 minute ago update-deployment 48 seconds ago
NAME DESCRIPTION AGE apply-manifests 1 minute ago update-deployment 48 seconds agoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. パイプラインのアセンブル リンクのコピーリンクがクリップボードにコピーされました!
パイプラインは CI/CD フローを表し、実行するタスクによって定義されます。これは、複数のアプリケーションや環境で汎用的かつ再利用可能になるように設計されています。
パイプラインは、from および runAfter パラメーターを使用してタスクが相互に対話する方法および実行順序を指定します。これは workspaces フィールドを使用して、パイプラインの各タスクの実行中に必要な 1 つ以上のボリュームを指定します。
このセクションでは、GitHub からアプリケーションのソースコードを取り、これを OpenShift Container Platform にビルドし、デプロイするパイプラインを作成します。
パイプラインは、バックエンドアプリケーションの vote-api およびフロントエンドアプリケーション vote-ui に対して以下のタスクを実行します。
-
git-urlおよびgit-revisionパラメーターを参照して、Git リポジトリーからアプリケーションのソースコードのクローンを作成します。 -
openshift-pipelinesnamespace で提供されるbuildahタスクを使用してコンテナーイメージをビルドします。 -
imageパラメーターを参照して、イメージを OpenShift イメージレジストリーにプッシュします。 -
apply-manifestsおよびupdate-deploymentタスクを使用して新規イメージを OpenShift Container Platform にデプロイします。
手順
以下のサンプルのパイプライン YAML ファイルの内容をコピーし、保存します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パイプライン定義は、Git ソースリポジトリーおよびイメージレジストリーの詳細を抽象化します。その詳細は、パイプラインのトリガーおよび実行時に
paramsとして追加されます。パイプラインを作成します。
oc create -f <pipeline-yaml-file-name.yaml>
$ oc create -f <pipeline-yaml-file-name.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、Git リポジトリーから YAML ファイルを直接実行することもできます。
oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/01_pipeline/04_pipeline.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/01_pipeline/04_pipeline.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow tkn pipeline listコマンドを使用して、パイプラインがアプリケーションに追加されていることを確認します。tkn pipeline list
$ tkn pipeline listCopy to Clipboard Copied! Toggle word wrap Toggle overflow この出力では、
build-and-deployパイプラインが作成されていることを検証します。NAME AGE LAST RUN STARTED DURATION STATUS build-and-deploy 1 minute ago --- --- --- ---
NAME AGE LAST RUN STARTED DURATION STATUS build-and-deploy 1 minute ago --- --- --- ---Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. 制限された環境でパイプラインを実行するためのイメージのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Pipelines を非接続のクラスターまたは制限された環境でプロビジョニングされたクラスターで実行するには、制限されたネットワークに Samples Operator が設定されているか、クラスター管理者がミラーリングされたレジストリーでクラスターを作成しているかを確認する必要があります。
以下の手順では、pipelines-tutorial の例を使用して、ミラーリングされたレジストリーを持つクラスターを使用して、制限された環境でアプリケーションのパイプラインを作成します。pipelines-tutorial の例が制限された環境で機能することを確認するには、フロントエンドインターフェイス (pipelines-vote-ui)、バックエンドインターフェイス (pipelines-vote-api) および cli のミラーレジストリーからそれぞれのビルダーイメージをミラーリングする必要があります。
手順
フロントエンドインターフェイス (
pipelines-vote-ui) のミラーレジストリーからビルダーイメージをミラーリングします。必要なイメージタグがインポートされていないことを確認します。
oc describe imagestream python -n openshift
$ oc describe imagestream python -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サポートされるイメージタグをプライベートレジストリーに対してミラーリングします。
oc image mirror registry.redhat.io/ubi9/python-39:latest <mirror-registry>:<port>/ubi9/python-39
$ oc image mirror registry.redhat.io/ubi9/python-39:latest <mirror-registry>:<port>/ubi9/python-39Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをインポートします。
oc tag <mirror-registry>:<port>/ubi9/python-39 python:latest --scheduled -n openshift
$ oc tag <mirror-registry>:<port>/ubi9/python-39 python:latest --scheduled -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージを定期的に再インポートする必要があります。
--scheduledフラグは、イメージの自動再インポートを有効にします。指定されたタグを持つイメージがインポートされていることを確認します。
oc describe imagestream python -n openshift
$ oc describe imagestream python -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
バックエンドインターフェイス (
pipelines-vote-api) のミラーレジストリーからビルダーイメージをミラーリングします。必要なイメージタグがインポートされていないことを確認します。
oc describe imagestream golang -n openshift
$ oc describe imagestream golang -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サポートされるイメージタグをプライベートレジストリーに対してミラーリングします。
oc image mirror registry.redhat.io/ubi9/go-toolset:latest <mirror-registry>:<port>/ubi9/go-toolset
$ oc image mirror registry.redhat.io/ubi9/go-toolset:latest <mirror-registry>:<port>/ubi9/go-toolsetCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをインポートします。
oc tag <mirror-registry>:<port>/ubi9/go-toolset golang:latest --scheduled -n openshift
$ oc tag <mirror-registry>:<port>/ubi9/go-toolset golang:latest --scheduled -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージを定期的に再インポートする必要があります。
--scheduledフラグは、イメージの自動再インポートを有効にします。指定されたタグを持つイメージがインポートされていることを確認します。
oc describe imagestream golang -n openshift
$ oc describe imagestream golang -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
cliのミラーレジストリーからビルダーイメージをミラーリングします。必要なイメージタグがインポートされていないことを確認します。
oc describe imagestream cli -n openshift
$ oc describe imagestream cli -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サポートされるイメージタグをプライベートレジストリーに対してミラーリングします。
oc image mirror quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:65c68e8c22487375c4c6ce6f18ed5485915f2bf612e41fef6d41cbfcdb143551 <mirror-registry>:<port>/openshift-release-dev/ocp-v4.0-art-dev:latest
$ oc image mirror quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:65c68e8c22487375c4c6ce6f18ed5485915f2bf612e41fef6d41cbfcdb143551 <mirror-registry>:<port>/openshift-release-dev/ocp-v4.0-art-dev:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをインポートします。
oc tag <mirror-registry>:<port>/openshift-release-dev/ocp-v4.0-art-dev cli:latest --scheduled -n openshift
$ oc tag <mirror-registry>:<port>/openshift-release-dev/ocp-v4.0-art-dev cli:latest --scheduled -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージを定期的に再インポートする必要があります。
--scheduledフラグは、イメージの自動再インポートを有効にします。指定されたタグを持つイメージがインポートされていることを確認します。
oc describe imagestream cli -n openshift
$ oc describe imagestream cli -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6. パイプラインの実行 リンクのコピーリンクがクリップボードにコピーされました!
PipelineRun リソースはパイプラインを開始し、これを特定の呼び出しに使用する必要のある Git およびイメージリソースに関連付けます。これは、パイプラインの各タスクに対して TaskRun を自動的に作成し、開始します。
手順
バックエンドアプリケーションのパイプラインを起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直前のコマンドは、パイプライン実行の永続ボリューム要求を作成するボリューム要求テンプレートを使用します。
パイプライン実行の進捗を追跡するには、以下のコマンドを入力します。
$ tkn pipelinerun logs <pipelinerun_id> -f
$ tkn pipelinerun logs <pipelinerun_id> -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドの <pipelinerun_id> は、直前のコマンドの出力で返された
PipelineRunの ID です。フロントエンドアプリケーションのパイプラインを起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パイプライン実行の進捗を追跡するには、以下のコマンドを入力します。
$ tkn pipelinerun logs <pipelinerun_id> -f
$ tkn pipelinerun logs <pipelinerun_id> -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドの <pipelinerun_id> は、直前のコマンドの出力で返された
PipelineRunの ID です。数分後に、
tkn pipelinerun listコマンドを使用して、すべてのパイプライン実行をリスト表示してパイプラインが正常に実行されたことを確認します。$ tkn pipelinerun list
$ tkn pipelinerun listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、パイプライン実行がリスト表示されます。
NAME STARTED DURATION STATUS build-and-deploy-run-xy7rw 1 hour ago 2 minutes Succeeded build-and-deploy-run-z2rz8 1 hour ago 19 minutes Succeeded
NAME STARTED DURATION STATUS build-and-deploy-run-xy7rw 1 hour ago 2 minutes Succeeded build-and-deploy-run-z2rz8 1 hour ago 19 minutes SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションルートを取得します。
$ oc get route pipelines-vote-ui --template='http://{{.spec.host}}'$ oc get route pipelines-vote-ui --template='http://{{.spec.host}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記のコマンドの出力に留意してください。このルートを使用してアプリケーションにアクセスできます。
直前のパイプラインのパイプラインリソースおよびサービスアカウントを使用して最後のパイプライン実行を再実行するには、以下を実行します。
$ tkn pipeline start build-and-deploy --last
$ tkn pipeline start build-and-deploy --lastCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7. トリガーのパイプラインへの追加 リンクのコピーリンクがクリップボードにコピーされました!
トリガーは、パイプラインがプッシュイベントやプル要求などの外部の GitHub イベントに応答できるようにします。アプリケーションのパイプラインをアセンブルし、起動した後に、TriggerBinding、TriggerTemplate、Trigger、および EventListener リソースを追加して GitHub イベントを取得します。
手順
以下のサンプル
TriggerBindingYAML ファイルの内容をコピーし、これを保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow TriggerBindingリソースを作成します。oc create -f <triggerbinding-yaml-file-name.yaml>
$ oc create -f <triggerbinding-yaml-file-name.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、
TriggerBindingリソースをpipelines-tutorialGit リポジトリーから直接作成できます。oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/03_triggers/01_binding.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/03_triggers/01_binding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のサンプル
TriggerTemplateYAML ファイルの内容をコピーし、これを保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow テンプレートは、ワークスペースのストレージボリュームを定義するための永続ボリューム要求を作成するためのボリューム要求テンプレートを指定します。そのため、データストレージを提供するために永続ボリューム要求を作成する必要はありません。
TriggerTemplateリソースを作成します。oc create -f <triggertemplate-yaml-file-name.yaml>
$ oc create -f <triggertemplate-yaml-file-name.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、
TriggerTemplateリソースをpipelines-tutorialGit リポジトリーから直接作成できます。oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/03_triggers/02_template.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/03_triggers/02_template.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のサンプルの
TriggerYAML ファイルの内容をコピーし、保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Triggerリソースを作成します。oc create -f <trigger-yaml-file-name.yaml>
$ oc create -f <trigger-yaml-file-name.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、
Triggerリソースをpipelines-tutorialGit リポジトリーから直接作成できます。oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/03_triggers/03_trigger.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/03_triggers/03_trigger.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のサンプル
EventListenerYAML ファイルの内容をコピーし、これを保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、トリガーカスタムリソースを定義していない場合は、トリガーの名前を参照する代わりに、バインディングおよびテンプレート仕様を
EventListenerYAML ファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
EventListenerリソースを作成します。セキュアな HTTPS 接続を使用して
EventListenerリソースを作成するには、以下を実行します。ラベルを追加して、
Eventlistenerリソースへのセキュアな HTTPS 接続を有効にします。oc label namespace <ns-name> operator.tekton.dev/enable-annotation=enabled
$ oc label namespace <ns-name> operator.tekton.dev/enable-annotation=enabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow EventListenerリソースを作成します。oc create -f <eventlistener-yaml-file-name.yaml>
$ oc create -f <eventlistener-yaml-file-name.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、
EvenListenerリソースをpipelines-tutorialGit リポジトリーから直接作成できます。oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/03_triggers/04_event_listener.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.19/03_triggers/04_event_listener.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow re-encrypt TLS 終端でルートを作成します。
oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>
$ oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、re-encrypt TLS 終端 YAML ファイルを作成して、セキュアなルートを作成できます。
セキュアなルートの re-encrypt TLS 終端 YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 他のオプションは、
oc create route reencrypt --helpを参照してください。
非セキュアな HTTP 接続を使用して
EventListenerリソースを作成するには、以下を実行します。-
EventListenerリソースを作成します。 EventListenerサービスを OpenShift Container Platform ルートとして公開し、これをアクセス可能にします。oc expose svc el-vote-app
$ oc expose svc el-vote-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
1.8. 複数の namespace を提供するようにイベントリスナーを設定する リンクのコピーリンクがクリップボードにコピーされました!
基本的な CI/CD パイプラインを作成する必要がある場合は、このセクションをスキップできます。ただし、デプロイメント戦略に複数の namespace が含まれる場合は、複数の namespace を提供するようにイベントリスナーを設定できます。
EvenListener オブジェクトの再利用性を高めるために、クラスター管理者は、複数の namespace にサービスを提供するマルチテナントイベントリスナーとして、これらのオブジェクトを設定およびデプロイできます。
手順
イベントリスナーのクラスター全体のフェッチ権限を設定します。
ClusterRoleBindingオブジェクトおよびEventListenerオブジェクトで使用するサービスアカウント名を設定します。たとえば、el-saです。ServiceAccount.yamlの例apiVersion: v1 kind: ServiceAccount metadata: name: el-sa ---
apiVersion: v1 kind: ServiceAccount metadata: name: el-sa ---Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterRole.yamlファイルのrulesセクションで、クラスター全体で機能するように、すべてのイベントリスナーデプロイメントに適切な権限を設定します。ClusterRole.yamlの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 適切なサービスアカウント名とクラスターロール名を使用して、クラスターロールバインディングを設定します。
ClusterRoleBinding.yamlの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
イベントリスナーの
specパラメーターに、サービスアカウント名 (el-saなど) を追加します。namespaceSelectorパラメーターに、イベントリスナーがサービスを提供する namespace の名前を入力します。EventListener.yamlの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な権限を持つサービスアカウントを作成します (例:
foo-trigger-sa)。トリガーをロールバインドするために使用します。ServiceAccount.yamlの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow RoleBinding.yamlの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 適切なトリガーテンプレート、トリガーバインディング、およびサービスアカウント名を使用してトリガーを作成します。
Trigger.yamlの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.9. Webhook の作成 リンクのコピーリンクがクリップボードにコピーされました!
Webhook は、設定されたイベントがリポジトリーで発生するたびにイベントリスナーが受信する HTTP POST メッセージです。その後、イベントペイロードはトリガーバインディングにマップされ、トリガーテンプレートによって処理されます。トリガーテンプレートは最終的に 1 つ以上のパイプライン実行を開始し、Kubernetes リソースの作成およびデプロイメントを実行します。
このセクションでは、フォークされた Git リポジトリー pipelines-vote-ui および pipelines-vote-api で Webhook URL を設定します。この URL は、一般に公開されている EventListener サービスルートを参照します。
Webhook を追加するには、リポジトリーへの管理者権限が必要です。リポジトリーへの管理者アクセスがない場合は、Webhook を追加できるようにシステム管理者に問い合わせてください。
手順
Webhook URL を取得します。
セキュアな HTTPS 接続の場合:
echo "URL: $(oc get route el-vote-app --template='https://{{.spec.host}}')"$ echo "URL: $(oc get route el-vote-app --template='https://{{.spec.host}}')"Copy to Clipboard Copied! Toggle word wrap Toggle overflow HTTP (非セキュアな) 接続の場合:
echo "URL: $(oc get route el-vote-app --template='http://{{.spec.host}}')"$ echo "URL: $(oc get route el-vote-app --template='http://{{.spec.host}}')"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力で取得した URL をメモします。
フロントエンドリポジトリーで Webhook を手動で設定します。
-
フロントエンド Git リポジトリー
pipelines-vote-uiをブラウザーで開きます。 - Settings → Webhooks → Add Webhook をクリックします。
Webhooks/Add Webhook ページで以下を実行します。
- 手順 1 の Webhook URL を Payload URL フィールドに入力します。
- Content type は application/json を選択します。
- シークレットを Secret フィールドに指定します。
- Just the push event が選択されていることを確認します。
- Active を選択します。
- Add Webhook をクリックします。
-
フロントエンド Git リポジトリー
-
バックエンドリポジトリー
pipelines-vote-apiに対して手順 2 を繰り返します。
1.10. パイプライン実行のトリガー リンクのコピーリンクがクリップボードにコピーされました!
push イベントが Git リポジトリーで実行されるたびに、設定された Webhook は、公開される EventListener サービスルートにイベントペイロードを送信します。アプリケーションの EventListener サービスはペイロードを処理し、これを関連する TriggerBinding および TriggerTemplate リソースのペアに渡します。TriggerBinding リソースはパラメーターを抽出し、TriggerTemplate リソースはこれらのパラメーターを使用して、リソースの作成方法を指定します。これにより、アプリケーションが再ビルドされ、再デプロイされる可能性があります。
このセクションでは、空のコミットをフロントエンドの pipelines-vote-ui リポジトリーにプッシュし、パイプライン実行をトリガーします。
手順
ターミナルから、フォークした Git リポジトリー
pipelines-vote-uiのクローンを作成します。git clone git@github.com:<your GitHub ID>/pipelines-vote-ui.git -b pipelines-1.19
$ git clone git@github.com:<your GitHub ID>/pipelines-vote-ui.git -b pipelines-1.19Copy to Clipboard Copied! Toggle word wrap Toggle overflow 空のコミットをプッシュします。
git commit -m "empty-commit" --allow-empty && git push origin pipelines-1.19
$ git commit -m "empty-commit" --allow-empty && git push origin pipelines-1.19Copy to Clipboard Copied! Toggle word wrap Toggle overflow パイプライン実行がトリガーされたかどうかを確認します。
tkn pipelinerun list
$ tkn pipelinerun listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規のパイプライン実行が開始されたことに注意してください。
1.11. ユーザー定義プロジェクトでの Triggers のイベントリスナーのモニタリングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、イベントリスナーごとにサービスモニターを作成し、ユーザー定義のプロジェクトで Triggers サービスのイベントリスナーメトリクスを収集し、OpenShift Container Platform Web コンソールでそれらを表示することができます。HTTP リクエストを受信すると、Triggers サービスのイベントリスナーは 3 つのメトリクス (eventlistener_http_duration_seconds、eventlistener_event_count、および eventlistener_triggered_resources) を返します。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
- Red Hat OpenShift Pipelines Operator がインストールされている。
- ユーザー定義プロジェクトのモニタリングを有効にしている。
手順
イベントリスナーごとに、サービスモニターを作成します。たとえば、
testnamespace のgithub-listenerイベントリスナーのメトリクスを表示するには、以下のサービスモニターを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow リクエストをイベントリスナーに送信して、サービスモニターをテストします。たとえば、空のコミットをプッシュします。
git commit -m "empty-commit" --allow-empty && git push origin main
$ git commit -m "empty-commit" --allow-empty && git push origin mainCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenShift Container Platform Web コンソールで、Administrator → Observe → Metrics の順に移動します。
-
メトリクスを表示するには、名前で検索します。たとえば、
github-listenerイベントリスナーのeventlistener_http_resourcesメトリクスの詳細を表示するには、eventlistener_http_resourcesのキーワードを使用して検索します。
1.12. GitHub Interceptor でのプルリクエスト機能の設定 リンクのコピーリンクがクリップボードにコピーされました!
GitHub Interceptor を使用すると、GitHub Webhook を検証およびフィルタリングするロジックを作成できます。たとえば、Webhook の発信元を検証し、指定された基準に基づいて着信イベントをフィルター処理できます。GitHub Interceptor を使用してイベントデータをフィルタリングする場合は、Interceptor がフィールドで受け入れることができるイベントタイプを指定できます。Red Hat OpenShift Pipelines では、GitHub Interceptor の以下の機能を使用できます。
- 変更されたファイルに基づいてプルリクエストイベントをフィルタリングする
- 設定された GitHub 所有者に基づいてプルリクエストを検証する
1.12.1. GitHub Interceptor を使用したプルリクエストのフィルタリング リンクのコピーリンクがクリップボードにコピーされました!
プッシュおよびプルイベント用に変更されたファイルに基づいて、GitHub イベントをフィルター処理できます。これは、Git リポジトリー内の関連する変更のみに対してパイプラインを実行するのに役立ちます。GitHub Interceptor は、変更されたすべてのファイルのコンマ区切りリストを追加し、CEL Interceptor を使用して、変更されたファイルに基づいて着信イベントをフィルタリングします。変更されたファイルのリストは、最上位の extensions フィールドのイベントペイロードの changed_files がプロパティーに追加されます。
前提条件
- Red Hat OpenShift Pipelines Operator がインストールされている。
手順
以下のいずれかの手順を実行します。
パブリック GitHub リポジトリーの場合は、以下に示す YAML 設定ファイルで
addChangedFilesパラメーターの値をtrueに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow プライベート GitHub リポジトリーの場合は、
addChangedFilesパラメーターの値をtrueに設定し、以下に示す YAML 設定ファイルでアクセストークンの詳細、secretName、およびsecretKeyを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 設定ファイルを作成します。
1.12.2. GitHub Interceptors を使用したプルリクエストの検証 リンクのコピーリンクがクリップボードにコピーされました!
GitHub Interceptor を使用して、リポジトリー用に設定された GitHub 所有者に基づいてプルリクエストの処理を検証できます。この検証は、PipelineRun または TaskRun オブジェクトの不要な実行を防ぐのに役立ちます。GitHub Interceptor は、ユーザー名が所有者としてリストされている場合、または設定可能なコメントがリポジトリーの所有者によって発行された場合にのみ、プルリクエストを処理します。たとえば、所有者としてプルリクエストで /ok-to-test にコメントすると、PipelineRun または TaskRun がトリガーされます。
所有者は、リポジトリーのルートにある OWNERS ファイルで設定されます。
前提条件
- Red Hat OpenShift Pipelines Operator がインストールされている。
手順
- シークレットの文字列値を作成します。
- その値で GitHub webhook を設定します。
-
シークレット値を含む
secretRefという名前の Kubernetes シークレットを作成します。 - Kubernetes シークレットを GitHub Interceptor への参照として渡します。
-
ownersファイルを作成し、承認者のリストをapproversセクションに追加します。 以下のいずれかの手順を実行します。
パブリック GitHub リポジトリーの場合は、以下に示す YAML 設定ファイルで
githubOwnersパラメーターの値をtrueに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow プライベート GitHub リポジトリーの場合は、
githubOwnersパラメーターの値をtrueに設定し、以下に示す YAML 設定ファイルでアクセストークンの詳細、secretName、およびsecretKeyを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記checkTypeパラメーターは、認証が必要な GitHub 所有者を指定するために使用されます。その値をorgMembers、repoMembers、またはallに設定できます。
- 設定ファイルを作成します。
第2章 Web コンソールでの Red Hat OpenShift Pipelines の使用 リンクのコピーリンクがクリップボードにコピーされました!
Administrator または Developer パースペクティブを使用して、OpenShift Container Platform Web コンソールの Pipelines ページから Pipeline、PipelineRun、Repository オブジェクトを作成および変更できます。Web コンソールの Developer パースペクティブの +Add ページを使用して、ソフトウェアデリバリープロセスの CI/CD パイプラインを作成することもできます。
2.1. Developer パースペクティブで Red Hat OpenShift Pipelines を使用する リンクのコピーリンクがクリップボードにコピーされました!
Developer パースペクティブでは、+Add ページからパイプラインを作成するための以下のオプションにアクセスできます。
- Add → Pipeline → Pipeline builder オプションを使用して、アプリケーションのカスタマイズされたパイプラインを作成します。
- +Add → From Git オプションを使用して、アプリケーション作成時にパイプラインテンプレートおよびリソースを使用してパイプラインを作成します。
アプリケーションのパイプラインの作成後に、Pipelines ビューでデプロイされたパイプラインを表示し、これらと視覚的に対話できます。Topology ビューを使用して、From Git オプションを使用して作成されたパイプラインと対話することもできます。パイプライン ビルダーを使用して作成されたパイプラインを トポロジー ビューで表示するには、カスタムラベルを適用する必要があります。
前提条件
- OpenShift Container Platform クラスターにアクセスでき、開発者 パースペクティブ に切り替えている。
- クラスターに OpenShift Pipelines Operator がインストールされ ています。
- クラスター管理者か、create および edit パーミッションを持つユーザーである。
- プロジェクトを作成している。
2.1.1. Pipeline Builder を使用した Pipeline の構築 リンクのコピーリンクがクリップボードにコピーされました!
コンソールの Developer パースペクティブで、+Add → Pipeline → Pipeline Builder オプションを使用して以下を実行できます。
- Pipeline ビルダー または YAML ビュー のいずれかを使用してパイプラインを設定します。
- 既存のタスクを使用してパイプラインフローを構築します。OpenShift Pipelines Operator をインストールする際に、再利用可能なパイプラインタスクがクラスターリゾルバーで使用できるクラスターに追加されます。
- パイプライン実行に必要なリソースタイプを指定し、必要な場合は追加のパラメーターをパイプラインに追加します。
- パイプラインの各タスクのこれらのパイプラインリソースを入力および出力リソースとして参照します。
- 必要な場合は、タスクのパイプラインに追加されるパラメーターを参照します。タスクのパラメーターは、Task の仕様に基づいて事前に設定されます。
- Operator によってインストールされた、再利用可能なスニペットおよびサンプルを使用して、詳細なパイプラインを作成します。
- 設定済みのローカル Tekton Hub インスタンスからタスクを検索して追加します。
開発者の観点では、キュレートされた独自のタスクセットを使用して、カスタマイズされたパイプラインを作成できます。タスクを開発者コンソールから直接検索、インストール、およびアップグレードするには、クラスター管理者がローカルの Tekton Hub インスタンスをインストールしてデプロイし、そのハブを OpenShift Container Platform クラスターにリンクする必要があります。詳細は、関連情報 セクションの OpenShift Pipeline での Tekton Hub の使用 セクションを参照してください。ローカルの Tekton Hub インスタンスをデプロイしない場合、デフォルトでは、namespace タスクとパブリック Tekton Hub タスクにのみアクセスできます。
手順
- Developer パースペクティブの +Add ビューで、Pipeline タイルをクリックし、Pipeline Builder ページを表示します。
Pipeline ビルダー ビューまたは YAML ビュー のいずれかを使用して、パイプラインを設定します。
注記Pipeline ビルダー ビューは、限られた数のフィールドをサポートしますが、YAML ビュー は利用可能なすべてのフィールドをサポートします。オプションで、Operator によってインストールされた、再利用可能なスニペットおよびサンプルを使用して、詳細な Pipeline を作成することもできます。
図2.1 YAML ビュー
Pipeline builder を使用してパイプラインを設定します。
- Name フィールドにパイプラインの一意の名前を入力します。
Tasks セクションで、以下を実行します。
- Add task をクリックします。
- クイック検索フィールドを使用してタスクを検索し、表示されたリストから必要なタスクを選択します。
Add または Install and add をクリックします。この例では、s2i-nodejs タスクを使用します。
注記検索のリストには、Tekton Hub タスクおよび、クラスターで利用可能なタスクがすべて含まれます。また、タスクがすでにインストールされている場合は、タスク追加用の Add が表示され、それ以外の場合は、タスクのインストールおよび追加用の Install and add が表示されます。更新されたバージョンで同じタスクを追加する場合は、Update and add が表示されます。
連続するタスクをパイプラインに追加するには、以下を実行します。
- タスクの右側にあるプラスアイコンをクリックし、Add task をクリックします。
- クイック検索フィールドを使用してタスクを検索し、表示されたリストから必要なタスクを選択します。
Add または Install and add をクリックします。
図2.2 Pipeline Builder
最終タスクを追加するには、以下を実行します。
- Add finally task → Add task の順にクリックします。
- クイック検索フィールドを使用してタスクを検索し、表示されたリストから必要なタスクを選択します。
- Add または Install and add をクリックします。
Resources セクションで、Add Resources をクリックし、パイプライン実行用のリソースの名前およびタイプを指定します。これらのリソースは、パイプラインのタスクによって入力および出力として使用されます。この例では、以下のようになります。
-
入力リソースを追加します。Name フィールドに
Sourceを入力してから、Resource Type ドロップダウンリストから Git を選択します。 出力リソースを追加します。Name フィールドに
Imgを入力してから、Resource Type ドロップダウンリストから Image を選択します。注記リソースが見つからない場合には、タスクの横に赤のアイコンが表示されます。
-
入力リソースを追加します。Name フィールドに
- オプション: タスクの Parameters は、タスクの仕様に基づいて事前に設定されます。必要な場合は、Parameters セクションの Add Parameters リンクを使用して、パラメーターを追加します。
- Workspaces セクションで、Add workspace をクリックし、Name フィールドに一意のワークスペース名を入力します。複数のワークスペースをパイプラインに追加できます。
Tasks セクションで、s2i-nodejs タスクをクリックし、タスクの詳細情報が含まれるサイドパネルを表示します。タスクのサイドパネルで、s2i-nodejs タスクのリソースおよびパラメーターを指定します。
- 必要な場合は、Parameters セクションで、$(params.<param-name>) 構文を使用して、デフォルトのパラメーターにさらにパラメーターを追加します。
-
Image セクションで、Resources セクションで指定されているように
Imgを入力します。 - Workspace セクションの source ドロップダウンからワークスペースを選択します。
- リソース、パラメーター、およびワークスペースを openshift-client タスクに追加します。
- Create をクリックし、Pipeline Details ページでパイプラインを作成し、表示します。
- Actions ドロップダウンメニューをクリックしてから Start をクリックし、Start Pipeline ページを表示します。
- Workspace セクションは、以前に作成したワークスペースをリスト表示します。それぞれのドロップダウンを使用して、ワークスペースのボリュームソースを指定します。Empty Directory、Config Map、Secret、PersistentVolumeClaim、または VolumeClaimTemplate のオプションを使用できます。
2.1.2. アプリケーションとともに OpenShift Pipeline を作成する リンクのコピーリンクがクリップボードにコピーされました!
アプリケーションと共にパイプラインを作成するには、Developer パースペクティブの Add+ ビューで、From Git オプションを使用します。使用可能なすべてのパイプラインを表示し、コードのインポートまたはイメージのデプロイ中に、アプリケーションの作成に使用するパイプラインを選択できます。
Tekton Hub 統合はデフォルトで有効になっており、クラスターでサポートされている Tekton Hub からのタスクを確認できます。管理者は Tekton Hub 統合をオプトアウトでき、Tekton Hub タスクは表示されなくなります。生成されたパイプラインに Webhook URL が存在するかどうかを確認することもできます。+Add フローを使用して作成されたパイプラインにデフォルトの Webhook が追加され、Topology ビューで選択したリソースのサイドパネルに URL が表示されます。
2.1.3. パイプラインを含む GitHub リポジトリーの追加 リンクのコピーリンクがクリップボードにコピーされました!
Developer パースペクティブでは、パイプラインを含む GitHub リポジトリーを OpenShift Container Platform クラスターに追加できます。これにより、プッシュリクエストやプルリクエストなどの関連する Git イベントがトリガーされたときに、クラスター上の GitHub リポジトリーからパイプラインとタスクを実行できます。
パブリックおよびプライベートの GitHub リポジトリーの両方を追加できます。
前提条件
- クラスター管理者が必要な GitHub アプリケーションを管理者パースペクティブで設定していること。
手順
- Developer パースペクティブで、GitHub リポジトリーを追加する namespace またはプロジェクトを選択します。
- 左側のナビゲーションペインを使用して Pipelines に移動します。
- Pipelines ページの右側にある Create → Repository をクリックします。
- Git Repo URL を入力すると、コンソールが自動的にリポジトリー名を取得します。
設定オプションを表示 をクリックします。デフォルトでは、Setup a webhook というオプションが 1 つだけ表示されます。GitHub アプリケーションが設定されている場合は、次の 2 つのオプションが表示されます。
- Use GitHub App: リポジトリーに GitHub アプリケーションをインストールするには、このオプションを選択します。
- Setup a webhook: Webhook を GitHub アプリケーションに追加するには、このオプションを選択します。
Secret セクションで次のいずれかのオプションを使用して Webhook を設定します。
Git アクセストークン を使用して Webhook をセットアップします。
- 個人用アクセストークンを入力します。
Webhook シークレット フィールドに対応する 生成 をクリックして、新しい Webhook シークレットを生成します。
注記個人用アクセストークンを持っておらず、新しいトークンを作成する場合は、Git access token フィールドの下のリンクをクリックできます。
Git access token secret を使用して Webhook をセットアップします。
ドロップダウンリストから namespace のシークレットを選択します。選択したシークレットに応じて、Webhook シークレットが自動的に生成されます。
Webhook シークレットの詳細を GitHub リポジトリーに追加します。
- Webhook URL をコピーし、GitHub リポジトリー設定に移動します。
- Webhooks → Add webhook をクリックします。
- 開発者コンソールから Webhook URL をコピーし、GitHub リポジトリー設定の Payload URL フィールドに貼り付けます。
- Content type を選択します。
- 開発者コンソールから Webhook secret をコピーし、GitHub リポジトリー設定の Secret フィールドに貼り付けます。
- SSL 検証 オプションのいずれかを選択します。
- この Webhook をトリガーするイベントを選択します。
- Add webhook をクリックします。
- 開発者コンソールに戻り、Add をクリックします。
- 実行する手順の詳細を確認し、Close をクリックします。
- 作成したリポジトリーの詳細を表示します。
Import from Git を使用してアプリケーションをインポートし、Git リポジトリーに .tekton ディレクトリーがある場合は、アプリケーションの pipelines-as-code を設定できます。
2.1.4. 開発者パースペクティブを使用したパイプラインの使用 リンクのコピーリンクがクリップボードにコピーされました!
Developer パースペクティブの Pipelines ビューは、以下の詳細と共にプロジェクトのすべてのパイプラインをリスト表示します。
- パイプラインが作成された namespace
- 最後のパイプライン実行
- パイプライン実行のタスクのステータス
- パイプライン実行のステータス
- 最後のパイプライン実行の作成時間
手順
- Developer パースペクティブの Pipelines ビューで、Project ドロップダウンリストからプロジェクトを選択し、そのプロジェクトのパイプラインを表示します。
必要なパイプラインをクリックし、Pipeline Details ページを表示します。
デフォルトでは、Details タブには、すべての
serialタスク、parallelタスク、finallyタスク、およびパイプラインwhenの式がすべて視覚的に表示されます。タスクとfinallyタスクは、ページの右下に一覧表示されます。タスクの詳細を表示するには、一覧表示されている Tasks および Finally タスクをクリックします。さらに、以下を実行できます。
- パイプライン詳細 の視覚化の左下隅に表示される標準アイコンを使用して、ズームイン、ズームアウト、画面サイズの自動調整、およびビューのリセット機能を使用します。
- マウスホイールを使用して、パイプラインビジュアライゼーションのズーム係数を変更します。
タスクにカーソルを合わせ、タスクの詳細を表示します。
図2.3 Pipeline の詳細
オプション: Pipeline details ページで、Metrics タブをクリックして、パイプラインに関する以下の情報を表示します。
- Pipeline 成功比率
- Pipeline Run の数
- Pipeline Run の期間
Task Run Duration
この情報を使用して、パイプラインのワークフローを改善し、パイプラインのライフサイクルの初期段階で問題をなくすことができます。
- オプション: YAML タブをクリックし、パイプラインの YAML ファイルを編集します。
オプション: Pipeline Runs タブをクリックして、パイプラインの完了済み、実行中、または失敗した実行を確認します。
Pipeline Runs タブでは、パイプライン実行、タスクのステータス、および失敗したパイプライン実行のデバッグ用のリンクの詳細が表示されます。Options メニュー
を使用して、実行中のパイプラインを停止するか、以前のパイプライン実行と同じパラメーターとリソースを使用してパイプラインを再実行するか、パイプライン実行を削除します。
必要なパイプラインをクリックし、Pipeline Run details ページを表示します。デフォルトでは、Details タブには、すべてのシリアルタスク、並列タスク、
finallyタスク、およびパイプライン実行の式がすべて視覚的に表示されます。実行に成功すると、ページ下部の Pipeline Run results ペインに表示されます。さらに、クラスターでサポートされている Tekton Hub からのタスクのみを表示できます。タスクを見ながら、その横にあるリンクをクリックして、タスクのドキュメントにジャンプできます。注記Pipeline Run Details ページの Details セクションには、失敗したパイプライン実行の Log Snippet (ログスニペット) が表示されます。Log Snippet (ログスニペット) は、一般的なエラーメッセージとログのスニペットを提供します。Logs セクションへのリンクでは、失敗した実行に関する詳細へのクイックアクセスを提供します。
Pipeline Run details ページで、Task Runs タブをクリックして、タスクの完了、実行、および失敗した実行を確認します。
Task Runs タブは、タスク実行に関する情報と、そのタスクおよび Pod へのリンクと、タスク実行のステータスおよび期間を提供します。Options メニュー
を使用してタスク実行を削除します。
注記TaskRuns リストページには Manage columns ボタンがあり、これを使用して Duration 列を追加することもできます。
必要なタスク実行をクリックして、Task Run details ページを表示します。実行に成功すると、ページ下部の Task Run results ペインに表示されます。
注記Task Run details ページの Details セクションには、失敗したパイプライン実行の Log Snippet (ログスニペット) が表示されます。Log Snippet (ログスニペット) は、一般的なエラーメッセージとログのスニペットを提供します。Logs セクションへのリンクでは、失敗した実行に関する詳細へのクイックアクセスを提供します。
- Parameters タブをクリックして、パイプラインに定義されるパラメーターを表示します。必要に応じて追加のパラメーターを追加するか、編集することもできます。
- Resources タブをクリックして、パイプラインで定義されたリソースを表示します。必要に応じて関連情報を追加するか、編集することもできます。
2.1.5. Pipelines ビューからのパイプラインの開始 リンクのコピーリンクがクリップボードにコピーされました!
パイプラインの作成後に、これを開始し、これに含まれるタスクを定義されたシーケンスで実行できるようにする必要があります。パイプラインを Pipelines ビュー、Pipeline Details ページ、または Topology ビューから開始できます。
手順
Pipelines ビューを使用してパイプラインを開始するには、以下を実行します。
-
Developer パースペクティブの Pipelines ビューで、パイプラインに隣接する Options
メニューで、Start を選択します。
Start Pipeline ダイアログボックスは、パイプライン定義に基づいて Git Resources および Image Resources を表示します。
注記From Git オプションを使用して作成されるパイプラインの場合は、Start Pipeline ダイアログボックスでは Parameters セクションに
APP_NAMEフィールドも表示され、ダイアログボックスのすべてのフィールドがパイプラインテンプレートによって事前に入力されます。- namespace にリソースがある場合は、Git Resources および Image Resources フィールドがそれらのリソースで事前に設定されます。必要な場合は、ドロップダウンを使用して必要なリソースを選択または作成し、Pipeline Run インスタンスをカスタマイズします。
オプション: Advanced Options を変更し、認証情報を追加して、指定されたプライベート Git サーバーまたはイメージレジストリーを認証します。
- Advanced Options で Show Credentials Options をクリックし、Add Secret を選択します。
Create Source Secret セクションで、以下を指定します。
- シークレットの一意の シークレット名。
- Designated provider to be authenticated セクションで、Access to フィールドで認証されるプロバイダー、およびベース Server URL を指定します。
Authentication Type を選択し、認証情報を指定します。
Authentication Type
Image Registry Credentialsに、認証する Registry Server Address を指定し、Username、Password、および Email フィールドに認証情報を指定します。追加の Registry Server Address を指定する必要がある場合は、Add Credentials を選択します。
-
Authentication Type
Basic Authenticationに、UserName および Password or Token フィールドの値を指定します。 Authentication Type
SSH Keysに、SSH Private Key フィールドの値を指定します。注記Basic 認証および SSH 認証には、以下のようなアノテーションを使用できます。
-
tekton.dev/git-0: https://github.com -
tekton.dev/git-1: https://gitlab.com.
-
- シークレットを追加するためにチェックマークを選択します。
パイプラインのリソースの数に基づいて、複数のシークレットを追加できます。
- Start をクリックしてパイプラインを開始します。
PipelineRun details ページには、実行されるパイプラインが表示されます。パイプラインが開始すると、タスクおよび各タスク内のステップが実行します。以下を行うことができます。
- PipelineRun 詳細 ページビジュアライゼーションの左下隅にある標準アイコンを使用して、ズームイン、ズームアウト、画面サイズの自動調整、およびビューのリセット機能を使用します。
- マウスホイールを使用して、パイプライン実行の視覚化のズーム係数を変更します。特定のズーム要素では、タスクの背景色が変更され、エラーまたは警告のステータスが示されます。
- タスクにカーソルを合わせると、各ステップの実行にかかった時間、タスク名、タスクステータスなどの詳細が表示されます。
- タスクバッジにカーソルを合わせ、完了したタスクとタスクの合計数を確認します。
- タスクをクリックし、タスクの各ステップのログを表示します。
- Logs タブをクリックして、タスクの実行シーケンスに関連するログを表示します。該当するボタンを使用して、ペインをデプロイメントし、ログを個別に、または一括してダウンロードすることもできます。
Events タブをクリックして、パイプライン実行で生成されるイベントのストリームを表示します。
Task Runs、Logs、および Events タブを使用すると、失敗したパイプラインの実行またはタスクの実行のデバッグに役立ちます。
図2.4 パイプライン実行の詳細
2.1.6. Topology ビューからパイプラインを開始する リンクのコピーリンクがクリップボードにコピーされました!
From Git オプションを使用して作成されるパイプラインの場合は、Topology ビューを使用して、開始後のパイプラインと対話することができます。
Topology ビューで Pipeline Builder を使用して作成されるパイプラインを表示するには、パイプラインのラベルをカスタマイズし、パイプラインをアプリケーションのワークロードにリンクします。
手順
- 左側のナビゲーションパネルで Topology をクリックします。
- アプリケーションをクリックして、サイドパネルに Pipeline Runs を表示します。
Pipeline Runs で、Start Last Run をクリックして、前のパイプラインと同じパラメーターとリソースを使用して新しいパイプラインの実行を開始します。このオプションは、パイプライン実行が開始されていない場合は無効になります。パイプラインの作成時にパイプラインの実行を開始することもできます。
図2.5 Topology ビューのパイプライン
Topology ページで、アプリケーションの左側にカーソルを合わせると、パイプライン実行のステータスが表示されます。パイプラインが追加された後、左下のアイコンは、関連付けられたパイプラインがあることを示します。
2.1.7. Topology ビューからのパイプラインとの対話 リンクのコピーリンクがクリップボードにコピーされました!
Topology ページのアプリケーションノードのサイドパネルには、パイプライン実行のステータスが表示され、対話することができます。
- パイプラインの実行が自動的に開始されない場合は、サイドパネルにパイプラインを自動的に開始できないというメッセージが表示されるため、手動で開始する必要があります。
- パイプラインが作成されたが、ユーザーがパイプラインを開始していない場合、そのステータスは Not started になります。ユーザーが、Not started ステータスアイコンをクリックすると、Topology ビューに start ダイアログボックスが開きます。
- パイプラインにビルドまたはビルド設定がない場合、Buildsセクションは表示されません。パイプラインとビルド設定がある場合は、Builds セクション が表示されます。
- 特定のタスク実行でパイプライン実行が失敗すると、サイドパネルに Log Snippet が表示されます。Resources タブの Pipeline Runs セクションに Log Snippet を表示できます。これは、一般的なエラーメッセージとログのスニペットを提供します。Logs セクションへのリンクでは、失敗した実行に関する詳細へのクイックアクセスを提供します。
2.1.8. Pipeline の編集 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの Developer パースペクティブを使用して、クラスター内のパイプラインを編集できます。
手順
- Developer パースペクティブの Pipelines ビューで、編集する必要のある Pipeline を選択し、Pipeline の詳細を表示します。Pipeline Details ページで Actions をクリックし、Edit Pipeline を選択します。
パイプラインビルダー ページで、次のタスクを実行できます。
- 追加のタスク、パラメーター、またはリソースをパイプラインに追加します。
- 変更するタスクをクリックして、サイドパネルにタスクの詳細を表示し、表示名、パラメーター、リソースなどの必要なタスクの詳細を変更します。
- または、Task を削除するには、Task をクリックし、サイドパネルで Actions をクリックし、Remove Task を選択します。
- Save をクリックして変更された Pipeline を保存します。
2.1.9. Pipeline の削除 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの Developer パースペクティブを使用して、クラスターの Pipeline を削除できます。
手順
-
Developer パースペクティブの Pipelines ビューで、Pipeline に隣接する Options
メニューをクリックし、Delete Pipeline を選択します。
- Delete Pipeline 確認プロンプトで、Delete をクリックし、削除を確認します。
2.3. Administrator パースペクティブでのパイプラインテンプレートの作成 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、開発者がクラスターでパイプラインを作成するときに再利用できるパイプラインテンプレートを作成できます。
前提条件
- クラスター管理者権限で OpenShift Container Platform クラスターにアクセスでき、Administrator パースペクティブに切り替えている。
- OpenShift Pipelines Operator がクラスターにインストールされている。
手順
- Pipelines ページに移動し、既存のパイプラインテンプレートを表示します。
-
アイコンをクリックして Import YAML ページに移動します。
パイプラインテンプレートの YAML を追加します。テンプレートには、以下の情報が含まれている必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。パイプラインを作成すると、Pipeline details ページが表示されます。ここでは、Pipeline 情報の表示や編集が可能です。
2.4. Web コンソールのパイプライン実行に関する統計情報 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールでパイプラインの実行に関連する統計を表示できます。
統計情報を表示するには、次の手順を完了する必要があります。
- Tekton Results をインストールします。Tekton Results のインストールの詳細は、関連情報 セクションの OpenShift Pipelines の可観測性のための Tekton Results の使用 を参照してください。
- OpenShift Pipelines コンソールプラグインを有効にします。
統計情報は、すべてのパイプラインをまとめて、または個別のパイプラインごとに利用できます。
OpenShift Pipelines Pipelines コンソールプラグインはテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
2.4.1. OpenShift Pipelines コンソールプラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
統計情報を表示するには、まず OpenShift Pipelines コンソールプラグインを有効にする必要があります。
前提条件
- Red Hat OpenShift Pipelines Operator がクラスターにインストールされている。
- クラスター管理者のパーミッションで Web コンソールにログインしている。
OpenShift Pipelines コンソールプラグインには、OpenShift Container Platform バージョン 4.15 以降が必要です。
手順
- Web コンソールの Administrator パースペクティブで、Operators → Installed Operators を選択します。
- Operator の表で Red Hat OpenShift Pipelines をクリックします。
- 画面の右側のペインで、Console plugin の下のステータスラベルを確認します。ラベルは Enabled または Disabled のいずれかになります。
- ラベルが Disabled の場合は、このラベルをクリックします。表示されるウィンドウで、Enable を選択し、Save をクリックします。
2.4.2. すべてのパイプラインの統計をまとめて表示 リンクのコピーリンクがクリップボードにコピーされました!
システム上のすべてのパイプラインに関連する統合統計情報を表示できます。
前提条件
- Red Hat OpenShift Pipelines Operator がクラスターにインストールされている。
- OpenShift Pipelines Web コンソールプラグインがインストールされている。
手順
Web コンソールの Administrator パースペクティブで、Pipelines → Overview を選択します。
統計の概要が表示されます。この概要には、一定期間におけるパイプライン実行の数とステータスを反映するグラフ (同じ期間におけるパイプライン実行の合計、平均、および最大継続時間、** 同じ期間におけるパイプライン実行の合計数) の情報が含まれます。
パイプラインの表も表示されます。この表には、期間内に実行されたすべてのパイプラインがリストされ、その期間と成功率が示されます。
オプション: 必要に応じて、統計表示の設定を変更します。
- Project: 統計を表示するプロジェクトまたは namespace。
- Time range: 統計を表示する期間。
- Refresh interval: 表示中に Red Hat OpenShift Pipelines がウィンドウのデータを更新する必要がある頻度。
2.4.3. 特定のパイプラインの統計の表示 リンクのコピーリンクがクリップボードにコピーされました!
特定のパイプラインに関連する統計情報を表示できます。
前提条件
- Red Hat OpenShift Pipelines Operator がクラスターにインストールされている。
- OpenShift Pipelines Web コンソールプラグインがインストールされている。
手順
- Web コンソールの Administrator パースペクティブで、Pipelines → Pipelines を選択します。
- Pipeline リストでパイプラインをクリックします。Pipeline details ビューが表示されます。
Metrics タブをクリックします。
統計の概要が表示されます。この概要には、一定期間におけるパイプライン実行の数とステータスを反映するグラフ (同じ期間におけるパイプライン実行の合計、平均、および最大継続時間、** 同じ期間におけるパイプライン実行の合計数) の情報が含まれます。
オプション: 必要に応じて、統計表示の設定を変更します。
- Project: 統計を表示するプロジェクトまたは namespace。
- Time range: 統計を表示する期間。
- Refresh interval: 表示中に Red Hat OpenShift Pipelines がウィンドウのデータを更新する必要がある頻度。
第3章 リゾルバーを使用したリモートパイプライン、タスク、およびステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプラインとタスクは、CI/CD プロセスの再利用可能なブロックです。以前に開発したパイプラインやタスク、または他の人が開発したパイプラインやタスクを、定義をコピーして貼り付けることなく再利用できます。これらのパイプラインまたはタスクは、クラスター上の他の namespace からパブリックカタログに至るまで、いくつかの種類のソースから利用できます。
パイプライン実行リソースでは、既存のソースからパイプラインを指定できます。パイプラインリソースまたはタスク実行リソースでは、既存のソースからタスクを指定できます。
StepAction カスタムリソース (CR) で定義されるステップアクションは、タスク内のステップ 1 つで完了する再利用可能なアクションです。ステップを指定する場合は、既存のソースから StepAction 定義を参照できます。
このような場合、Red Hat OpenShift Pipelines の リゾルバー は、実行時に指定されたソースからパイプライン、タスク、または StepAction 定義を取得します。
以下のリゾルバーは、Red Hat OpenShift Pipelines のデフォルトのインストールで使用できます。
- ハブリゾルバー
-
Artifact Hub または Tekton Hub で利用可能な Pipelines Catalog からタスク、パイプライン、または
StepAction定義を取得します。 - バンドルリゾルバー
-
OpenShift コンテナーリポジトリーなどの任意の OCI リポジトリーから入手できる OCI イメージである Tekton バンドルからタスク、パイプライン、または
StepAction定義を取得します。 - Git リゾルバー
-
Git リポジトリーからタスク、パイプライン、または
StepAction定義を取得します。リポジトリー、ブランチ、パスを指定する必要があります。 - HTTP リゾルバー
-
リモート HTTP または HTTPS の URL からタスク、パイプライン、または
StepAction定義を取得します。認証の URL を指定する必要があります。 - クラスターリゾルバー
-
特定の namespace の同じ OpenShift Container Platform クラスター上にすでに作成されているタスク、パイプライン、または
StepAction定義を取得します。
OpenShift Pipelines のインストールには、パイプラインで使用できる一連の標準タスクが含まれています。これらのタスクは、OpenShift Pipelines インストール namespace (通常は openshift-pipelines namespace) にあります。クラスターリゾルバーを使用してタスクにアクセスできます。
OpenShift Pipelines は標準の StepAction 定義も提供します。クラスターリゾルバーを使用して、この定義にアクセスできます。
3.1. Tekton カタログからのリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
ハブリゾルバーを使用して、Artifact Hub のパブリック Tekton カタログまたは Tekton Hub のインスタンスで定義されるリモートパイプライン、タスク、または StepAction 定義を指定できます。
Artifact Hub プロジェクトは、Red Hat OpenShift Pipelines ではサポートされていません。Artifact Hub の設定のみがサポートされます。
3.1.1. ハブリゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
ハブリゾルバーを設定することで、リソースをプルするためのデフォルトのハブとデフォルトのカタログ設定を変更できます。
手順
TektonConfigカスタムリソースを編集するには、次のコマンドを入力します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigカスタムリソースで、pipeline.hub-resolver-config仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- リソースをプルするためのデフォルトの Tekton Hub カタログ。
- 2
- タスクリソースをプルするためのデフォルトの Artifact Hub カタログ。
- 3
- パイプラインリソースをプルするためのデフォルトの Artifact Hub カタログ。
- 4
- 参照のデフォルトのオブジェクトの種類。
- 5
- リソースをプルするためのデフォルトのハブ。Artifact Hub の場合は
artifact、Tekton Hub の場合はtektonです。 - 6
default-typeオプションがtektonに設定されている場合に使用される Tekton Hub API。- 7
- オプション:
default-typeオプションがartifactに設定されている場合に使用される Artifact Hub API。
重要default-typeオプションをtektonに設定する場合は、tekton-hub-api値を設定して Tekton Hub の独自のインスタンスを設定する必要があります。default-typeオプションをartifactに設定すると、リゾルバーはデフォルトで https://artifacthub.io/ のパブリックハブ API を使用します。artifact-hub-api値を設定することで、独自の Artifact Hub API を設定できます。
3.1.2. ハブリゾルバーを使用したリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、Artifact Hub または Tekton Hub からリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Artifact Hub または Tekton Hub からリモートタスクを指定できます。タスク内でステップを作成するときに、Artifact Hub または Tekton Hub からリモート StepAction 定義を参照できます。
手順
Artifact Hub または Tekton Hub からリモートパイプライン、タスク、または
StepAction定義を指定するには、pipelineRef、taskRef、またはstep.ref仕様で次の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.1 ハブリゾルバーでサポートされるパラメーター パラメーター 説明 値の例 catalogリソースを取得するためのカタログ。
デフォルト:
tekton-catalog-tasks(taskの種類)。tekton-catalog-pipelines(pipelineの種類の場合)。typeリソースをプルするカタログのタイプ。Artifact Hub の場合は
Artifact、Tekton Hub の場合はtektonのいずれかです。デフォルト:
artifactkindtaskまたはpipelineのいずれか。デフォルト:
tasknameハブから取得するタスクまたはパイプラインの名前。
golang-buildversionハブから取得するタスクまたはパイプラインのバージョン。数値を引用符 (
") で囲む必要があります。"0.5.0"パイプラインまたはタスクに追加のパラメーターが必要な場合は、パイプライン、パイプライン実行、またはタスク実行の仕様の
paramsセクションでこれらのパラメーターの値を指定します。pipelineRefまたはtaskRef仕様のparamsセクションには、リゾルバーがサポートするパラメーターのみを含める必要があります。
例
次のパイプライン実行の例では、カタログからリモートパイプラインを参照します。
次のパイプラインの例は、カタログからリモートタスクを参照します。
次のタスク実行例では、カタログからリモートタスクを参照します。
次のタスクの例には、カタログから StepAction 定義を参照するステップが含まれています。
3.2. Tekton バンドルからのリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
バンドルリゾルバーを使用して、Tekton バンドルからリモートパイプライン、タスク、または StepAction 定義を指定できます。Tekton バンドルは、OpenShift コンテナーリポジトリーなどの任意の OCI リポジトリーから利用できる OCI イメージです。
3.2.1. バンドルリゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
バンドルリゾルバーを設定することで、Tekton バンドルからリソースを取得するためのデフォルトのサービスアカウント名とデフォルトの種類を変更できます。
手順
TektonConfigカスタムリソースを編集するには、次のコマンドを入力します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigカスタムリソースで、pipeline.bundles-resolver-config仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2. バンドルリゾルバーを使用したリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、Tekton バンドルからリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Tekton バンドルからリモートタスクを指定できます。タスク内でステップを作成する場合、Tekton バンドルからリモート StepAction 定義を参照できます。
手順
Tekton バンドルからリモートパイプライン、タスク、または
StepAction定義を指定するには、pipelineRef、taskRef、またはstep.ref仕様で次の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.2 バンドルリゾルバーでサポートされているパラメーター パラメーター 説明 値の例 serviceAccountレジストリー認証情報を作成するときに使用するサービスアカウントの名前。
defaultbundle取得するイメージを指すバンドル URL。
gcr.io/tekton-releases/catalog/upstream/golang-build:0.1nameバンドルから取り出すリソースの名前。
golang-buildkindバンドルから取り出すリソースの種類。
taskパイプラインまたはタスクに追加のパラメーターが必要な場合は、パイプライン、パイプライン実行、またはタスク実行の仕様の
paramsセクションでこれらのパラメーターの値を指定します。pipelineRefまたはtaskRef仕様のparamsセクションには、リゾルバーがサポートするパラメーターのみを含める必要があります。
例
次のパイプライン実行の例は、Tekton バンドルからのリモートパイプラインを参照します。
次のパイプラインの例は、Tekton バンドルからのリモートタスクを参照します。
次のタスク実行例では、Tekton バンドルのリモートタスクを参照しています。
次のタスクの例には、Tekton バンドルから StepAction 定義を参照するステップが含まれています。
3.3. 匿名 Git クローンでのリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
Git リゾルバーを使用して、Git リポジトリーからリモートパイプライン、タスク、または StepAction 定義にアクセスできます。リポジトリーには、パイプラインまたはタスクを定義する YAML ファイルが含まれている必要があります。匿名アクセスの場合、認証情報を必要とせずにリゾルバーを使用してリポジトリーを複製できます。
3.3.1. 匿名 Git クローン作成用の Git リゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
匿名 Git クローン作成を使用する場合は、Git リポジトリーからリモートパイプラインとタスクをプルするためのデフォルトの Git リビジョン、フェッチタイムアウト、およびデフォルトのリポジトリー URL を設定できます。
手順
TektonConfigカスタムリソースを編集するには、次のコマンドを入力します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigカスタムリソースで、pipeline.git-resolver-config仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.2. 匿名クローン作成に Git リゾルバーを使用したリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、匿名クローンを使用して Git リポジトリーからリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Git リポジトリーからリモートタスクを指定できます。タスク内でステップを作成するときに、Git リポジトリーからリモート StepAction 定義を参照できます。
手順
Git リポジトリーからリモートパイプライン、タスク、または
StepAction定義を指定するには、pipelineRef、taskRef、またはstep.ref仕様で次の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.3 Git リゾルバーでサポートされているパラメーター パラメーター 説明 値の例 url匿名クローン作成を使用する場合のリポジトリーの URL。
https://github.com/tektoncd/catalog.gitrevisionリポジトリー内の Git リビジョン。ブランチ名、タグ名、またはコミット SHA ハッシュを指定できます。
aeb957601cf41c012be462827053a21a420befcamainv0.38.2pathInRepoリポジトリー内の YAML ファイルのパス名。
task/golang-build/0.3/golang-build.yaml注記リポジトリーのクローンを作成して匿名で取得するには、
urlパラメーターを使用します。urlパラメーターとrepoパラメーターを同時に指定しないでください。パイプラインまたはタスクに追加のパラメーターが必要な場合は、これらのパラメーターを
paramsに指定します。
例
次のパイプライン実行の例では、Git リポジトリーからリモートパイプラインを参照します。
次のパイプラインの例では、Git リポジトリーからリモートタスクを参照します。
次のタスク実行例では、Git リポジトリーからリモートタスクを参照します。
以下のタスク例には、Git リポジトリーから StepAction 定義を参照するステップが含まれています。
3.4. 認証された Git API でのリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
Git リゾルバーを使用して、Git リポジトリーからリモートパイプライン、タスク、または StepAction 定義を指定できます。リポジトリーには、パイプラインまたはタスクを定義する YAML ファイルが含まれている必要があります。ユーザー認証をサポートする認証済み API を使用すると、リポジトリーに安全にアクセスできます。
3.4.1. 認証された API の Git リゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
認証されたソースコントロール管理 (SCM) API の場合は、認証された Git 接続の設定を指定する必要があります。
go-scm ライブラリーでサポートされている Git リポジトリープロバイダーを使用できます。すべての go-scm 実装が Git リゾルバーでテストされているわけではありませんが、次のプロバイダーが動作することが確認されています。
-
github.comおよび GitHub Enterprise -
gitlab.comおよびセルフホスト Gitlab - Gitea
- Bitbucket データセンター
- Bitbucket Cloud
- 認証された SCM API を使用して Git 接続を設定できます。クラスター上のすべてのユーザーが 1 つのリポジトリーにアクセスできるようにセキュリティートークンを提供できます。さらに、特定のパイプラインまたはタスクに対して異なる SCM プロバイダーとトークンを指定することもできます。
- 認証された SCM API を使用するように Git リゾルバーを設定すると、匿名の Git クローン参照を使用してパイプラインとタスクを取得することもできます。
手順
TektonConfigカスタムリソースを編集するには、次のコマンドを入力します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigカスタムリソースで、pipeline.git-resolver-config仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 何も指定されていない場合に使用するデフォルトの Git リビジョン。
- 2
- 単一の Git クローン解決にかかる最大時間は、たとえば、
1m、2s、700msです。Red Hat OpenShift Pipelines は、すべての解決リクエストに対して 1 分のグローバル最大タイムアウトも適用します。 - 3
- SCM プロバイダーのタイプ。
- 4
- 認証された SCM API で使用するベース URL。
github.com、gitlab.com、または Bitbucket Cloud を使用している場合、この設定は必要ありません。 - 5
- SCM プロバイダー API トークンを含むシークレットの名前。
- 6
- トークンを含むトークンシークレット内のキー。
- 7
- トークンシークレットを含む namespace (
defaultでない場合)。 - 8
- オプション: 認証された API を使用する場合のリポジトリーのデフォルトの組織。この組織は、リゾルバーパラメーターで組織を指定しない場合に使用されます。
認証された SCM API を使用するには、scm-type、api-token-secret-name、および api-token-secret-key 設定が必要です。
3.4.2. 複数の Git プロバイダーの設定 リンクのコピーリンクがクリップボードにコピーされました!
複数の Git プロバイダーを設定するか、同じ Git プロバイダーに複数の設定を追加して、異なるタスク実行とパイプライン実行で使用できます。
一意の識別子鍵の接頭辞を使用して、TektonConfig カスタムリソース (CR) に詳細を追加します。
手順
次のコマンドを実行して、
TektonConfigCR を編集します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigCR で、pipeline.git-resolver-config仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告.記号が付いたconfigKey値はサポートされません。.シンボルを含むconfigKey値を渡そうとすると、値を渡したTaskRunまたはPipelineRunリソースの実行に失敗します。
3.4.3. 認証された SCM API で Git リゾルバーを使用したリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、認証された SCM API を使用して Git リポジトリーからリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Git リポジトリーからリモートタスクを指定できます。タスク内でステップを作成するときに、Git リポジトリーからリモート StepAction 定義を参照できます。
前提条件
- 認証された SCM API を使用する場合は、Git リゾルバーに対して認証された Git 接続を設定する必要があります。
手順
Git リポジトリーからリモートパイプライン、タスク、または
StepAction定義を指定するには、pipelineRef、taskRef、またはstep.ref仕様で次の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.4 Git リゾルバーでサポートされているパラメーター パラメーター 説明 値の例 org認証された SCM API を使用する場合のリポジトリーの組織。
tektoncdrepo認証された SCM API を使用する場合のリポジトリー名。
test-infrarevisionリポジトリー内の Git リビジョン。ブランチ名、タグ名、またはコミット SHA ハッシュを指定できます。
aeb957601cf41c012be462827053a21a420befcamainv0.38.2pathInRepoリポジトリー内の YAML ファイルのパス名。
task/golang-build/0.3/golang-build.yaml注記リポジトリーのクローンを作成して匿名で取得するには、
urlパラメーターを使用します。認証された SCM API を使用するには、repoパラメーターを使用します。urlパラメーターとrepoパラメーターを同時に指定しないでください。パイプラインまたはタスクに追加のパラメーターが必要な場合は、パイプライン、パイプライン実行、またはタスク実行の仕様の
paramsセクションでこれらのパラメーターの値を指定します。pipelineRefまたはtaskRef仕様のparamsセクションには、リゾルバーがサポートするパラメーターのみを含める必要があります。
例
次のパイプライン実行の例では、Git リポジトリーからリモートパイプラインを参照します。
次のパイプラインの例では、Git リポジトリーからリモートタスクを参照します。
次のタスク実行例では、Git リポジトリーからリモートタスクを参照します。
以下のタスク例には、Git リポジトリーから StepAction 定義を参照するステップが含まれています。
3.4.4. 複数の Git プロバイダーの指定 リンクのコピーリンクがクリップボードにコピーされました!
TaskRun および PipelineRun リソースを作成するときに、一意の configKey パラメーターを渡すことで、複数の Git プロバイダーを指定できます。
configKey パラメーターが渡されない場合、デフォルト設定が使用されます。configKey の値を default に設定して、デフォルト設定を指定することもできます。
. 記号が付いた configKey 値はサポートされません。. シンボルを含む configKey 値を渡そうとすると、値を渡した TaskRun または PipelineRun リソースの実行に失敗します。
前提条件
-
Tektonconfigカスタムリソースを使用して複数の Git プロバイダーを設定します。詳細は、「複数の Git プロバイダーの設定」を参照してください。
手順
Git プロバイダーを指定するには、
pipelineRefおよびtaskRef仕様で以下の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 設定キーのいずれかに一致する一意のキー (例:
test1)。
3.4.5. Git リゾルバーの設定を上書きする認証済み SCM API を使用した Git リゾルバーでのリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
特定のパイプライン実行またはタスクの初期設定をオーバーライドして、さまざまなユースケースに応じて動作をカスタマイズできます。この方法を使用して、TektonConfig カスタムリソース (CR) で設定されていない認証済みプロバイダーにアクセスできます。
次のタスク実行例では、以前のリゾルバー設定をオーバーライドする Git リポジトリーからのリモートタスクを参照します。
| パラメーター | 説明 | 値の例 |
|---|---|---|
|
| リポジトリーの組織。 |
|
| repo | リポジトリー名。 | catalog |
| revision | リポジトリー内の Git リビジョン。ブランチ名、タグ名、またはコミット SHA ハッシュを指定できます。 | main |
| pathInRepo | リポジトリー内の YAML ファイルのパス名。 | task/git-clone/0.6/git-clone.yaml |
| トークン (token) | 認証に使用されるシークレット名。 | my-secret-token |
| tokenKey | トークンのキー名。 | トークン (token) |
| scmType | SCM (ソースコントロール管理) システムのタイプ。 | github |
| serverURL | リポジトリーをホストしているサーバーの URL。 |
|
3.5. HTTP リゾルバーを使用したリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
HTTP リゾルバーを使用して、HTTP または HTTPS URL からリモートパイプライン、タスク、または StepAction 定義を指定できます。URL は、パイプライン、タスク、またはステップアクションを定義する YAML ファイルを参照する必要があります。
3.5.1. HTTP リゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
HTTP リゾルバーを使用して、HTTP または HTTPS URL からパイプラインまたはタスクを取得できます。TektonConfig カスタムリソース (CR) を編集して、HTTP リゾルバーのデフォルト値を設定できます。
手順
次のコマンドを入力して、
TektonConfigCR を編集します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigCR で、pipeline.http-resolver-config仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- HTTP リゾルバーがサーバーからの応答を待機する最大時間。
3.5.2. HTTP Resolver でのリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、HTTP または HTTPS URL からリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、HTTP または HTTPS URL からリモートタスクを指定できます。タスク内でステップを作成する場合、HTTP または HTTPS URL からリモート StepAction 定義を参照できます。
手順
pipelineRef、taskRef、またはstep.ref仕様で次の形式を使用して、HTTP または HTTPS URL からリモートパイプライン、タスク、またはStepAction定義を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.6 HTTP リゾルバーでサポートされているパラメーター パラメーター 説明 値の例 url取得する Tekton リソースを指す HTTP URL。
https://raw.githubusercontent.com/openshift-pipelines/tektoncd-catalog/p/tasks/task-git-clone/0.4.1/task-git-clone.yaml
例
次のパイプライン実行の例は、同じクラスターからのリモートパイプラインを参照します。
次のパイプラインの例では、HTTPS URL からリモートタスクを参照するタスクを定義します。
次のタスク実行例では、HTTPS URL からリモートタスクを参照します。
次のタスクの例には、HTTPS URL から StepAction 定義を参照するステップが含まれています。
3.6. 同じクラスターからのパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターリゾルバーを使用して、Red Hat OpenShift Pipelines が実行されている OpenShift Container Platform クラスターの namespace で定義されるパイプライン、タスク、または StepAction 定義を指定できます。
特に、クラスターリゾルバーを使用して、OpenShift Pipelines がインストール namespace (通常は openshift-pipelines namespace) で提供するタスクにアクセスできます。
3.6.1. クラスターリゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターリゾルバーのデフォルトの種類と namespace を変更したり、クラスターリゾルバーが使用できる namespace を制限したりできます。
手順
TektonConfigカスタムリソースを編集するには、次のコマンドを入力します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigカスタムリソースで、pipeline.cluster-resolver-config仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6.2. クラスターリゾルバーを使用した同じクラスターからのパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、同じクラスター上に存在するパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、同じクラスター上に存在するタスクを指定できます。タスク内でステップを作成する場合は、同じクラスターに存在する StepAction 定義を指定できます。
手順
同じクラスターからパイプライン、タスク、または
StepAction定義を指定するには、pipelineRef、taskRef、またはstep.ref仕様で以下の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.7 クラスターリゾルバーでサポートされているパラメーター パラメーター 説明 値の例 name取得するリソースの名前。
some-pipelinenamespaceリソースを含むクラスター内の namespace。
other-namespacekind取得するリソースの種類。
pipelineパイプラインまたはタスクに追加のパラメーターが必要な場合は、これらのパラメーターを
paramsに指定します。
例
次のパイプライン実行の例は、同じクラスターからのパイプラインを参照します。
次のパイプラインの例は、同じクラスターのタスクを参照します。
次のタスク実行例では、同じクラスターのタスクを参照しています。
次のタスクの例には、同じクラスターから StepAction 定義を参照するステップが含まれています。
3.7. OpenShift Pipelines namespace で提供されるタスク リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Pipelines のインストールには、パイプラインで使用できる一連の標準タスクが含まれています。これらのタスクは、OpenShift Pipelines インストール namespace (通常は openshift-pipelines namespace) にあります。クラスターリゾルバーを使用してタスクにアクセスできます。
バージョン 1.16 まで、OpenShift Pipelines には ClusterTask 機能が含まれていました。バージョン 1.17 以降にはこの機能が含まれなくなりました。パイプラインが ClusterTask 参照を使用する場合、クラスターリゾルバーを使用して、OpenShift Pipelines インストール namespace で利用可能なタスクでそれらを再作成できます。ただし、既存の ClusterTask 定義と比較して、これらのタスクに特定の変更が加えられています。
OpenShift Pipelines インストール namespace で利用可能なタスクのいずれかでカスタム実行イメージを指定することはできません。これらのタスクは、BUILDER_IMAGE、gitInitImage、KN_IMAGE などのパラメーターをサポートしません。カスタム実行イメージを使用する場合は、タスクのコピーを作成し、そのコピーを編集してイメージを置き換えます。
buildah
buildah タスクは、ソースコードツリーをコンテナーイメージにビルドし、そのイメージをコンテナーレジストリーにプッシュします。
buildah タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| Buildah によってビルドされる完全修飾コンテナーイメージ名。 |
| |
|
|
|
|
|
|
| コンテキストとして使用するディレクトリーへのパス。 |
|
|
|
| Buildah ストレージドライバーを設定して、現在のクラスターノード設定を反映します。 |
|
|
|
|
ビルドするコンテナーの形式。 |
|
|
|
|
イメージをビルドするときの |
| |
|
|
イメージをプッシュするときの |
| |
|
| コンテナーレジストリーへのイメージのプッシュをスキップします。 |
|
|
|
|
TLS 検証フラグ。通常は |
|
|
|
| 詳細なロギングをオンにすると、実行されたすべてのコマンドがログに追加されます。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
|
コンテナービルドコンテキスト。通常、 |
|
|
Buildah がコンテナーレジストリーへのアクセスに使用する |
|
|
Buildah が Red Hat Enterprise Linux (RHEL) サブスクリプションへのアクセスに使用するエンタイトルメントキーを提供するためのオプションのワークスペース。マウントされたワークスペースには、 |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージの完全修飾名。 |
|
|
| ビルドされたイメージのダイジェスト。 |
buildah ClusterTaskからの変更点
-
VERBOSEパラメーターが追加されました。 -
BUILDER_IMAGEパラメーターが削除されました。
git-cli
git-cli タスクは、git コマンドラインユーティリティーを実行します。GIT_SCRIPT パラメーターを使用して、完全な Git コマンドまたは複数のコマンドを渡すことができます。たとえば、プッシュを完了するためにコマンドが Git リポジトリーへの認証を必要とする場合は、認証のクレデンシャルを指定する必要があります。
git-cli タスクの使用例
- 1
- この例では、
ssh-workspaceには、Git リポジトリーへの認可に有効なキーを含む.sshディレクトリーの内容が含まれている必要があります。
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
|
|
|
|
|
| HTTP プロキシーサーバー (TLS 以外のリクエスト)。 |
| |
|
| HTTPS プロキシーサーバー (TLS リクエスト)。 |
| |
|
| HTTP/HTTPS リクエストのプロキシーをオプトアウトします。 |
| |
|
|
Git リポジトリーが存在する |
| |
|
| Pod 内の Git ユーザーのホームディレクトリーへの絶対パス。 |
|
|
|
|
Git 操作を完了する前に、 |
|
|
|
| 実行したすべてのコマンドをログに記録します。 |
|
|
|
|
グローバル |
|
|
|
| Git 操作を実行するための Git ユーザー名。 |
| |
|
| Git 操作を実行するための Git ユーザーのメール。 |
| |
|
| 実行する Git スクリプト。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
|
必要に応じて、秘密鍵、 |
|
|
|
|
| CA 証明書を含むワークスペース。このワークスペースを指定すると、Git は HTTPS を使用してリモートリポジトリーとやり取りする場合に、これらの証明書を使用してピアを検証します。 |
|
| 取得した Git リポジトリーを含むワークスペース。 |
|
|
Git リポジトリーに追加する必要があるファイルが含まれるオプションのワークスペース。
|
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| クローンされた Git リポジトリー内の現在のブランチの HEAD にあるコミットの SHA ダイジェスト。 |
git-cli ClusterTask からの変更点
- 新しいパラメーターが複数追加されました。
-
BASE_IMAGEパラメーターが削除されました。 -
ssl-ca-directoryワークスペースが追加されました。 -
USER_HOMEおよびVERBOSEパラメーターのデフォルト値が変更されました。 -
結果の名前が
commitからCOMMITに変更されました。
git-clone
git-clone タスクは、Git を使用してワークスペース上のリモートリポジトリーを初期化し、クローンを作成します。このタスクは、このソースコードをビルドまたは処理するパイプラインの開始時に使用できます。
git-clone タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
|
|
|
|
|
| HTTP プロキシーサーバー (TLS 以外のリクエスト)。 |
| |
|
| HTTPS プロキシーサーバー (TLS リクエスト)。 |
| |
|
| HTTP/HTTPS リクエストのプロキシーをオプトアウトします。 |
| |
|
|
タスクが Git リポジトリーを配置する |
| |
|
| Pod 内の Git ユーザーのホームディレクトリーへの絶対パス。 |
|
|
|
| Git 操作を実行する前に、デフォルトのワークスペースにコンテンツが存在する場合は削除します。 |
|
|
|
| 実行したコマンドをログに記録します。 |
|
|
|
|
グローバル |
|
|
|
| Git リポジトリー URL |
| |
|
| チェックアウトするリビジョン (ブランチやタグなど)。 |
|
|
|
|
リビジョンをチェックアウトする前にタスクが取得するリポジトリーの |
| |
|
| Git サブモジュールを初期化して取得します。 |
|
|
|
| 取得するコミットの数。"シャロークローン" は単一のコミットです。 |
|
|
|
| "スパースチェックアウト" を実行するための、コンマで区切られたディレクトリーパターンのリスト。 |
|
| ワークスペース | 説明 |
|---|---|
|
|
必要に応じて、秘密鍵、 |
|
|
|
|
| CA 証明書を含むワークスペース。このワークスペースを指定すると、Git は HTTPS を使用してリモートリポジトリーとやり取りする場合に、これらの証明書を使用してピアを検証します。 |
|
|
取得した Git リポジトリーを含むワークスペース。データはワークスペースのルートまたは |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| クローンされた Git リポジトリー内の現在のブランチの HEAD にあるコミットの SHA ダイジェスト。 |
|
|
| クローンされたリポジトリーの URL。 |
|
|
| クローンされた Git リポジトリー内の現在のブランチの HEAD にあるコミットのエポックタイムスタンプ。 |
git-clone ClusterTask からの変更点
- すべてのパラメーター名が大文字に変更されました。
- すべての結果名が大文字に変更されました。
-
gitInitImageパラメーターが削除されました。
kn
kn タスクは、kn コマンドラインユーティリティーを使用して、サービス、リビジョン、ルートなどの Knative リソースでの操作を完了します。
kn タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
|
|
|
|
kn ClusterTask からの変更点
-
KN_IMAGEパラメーターが削除されました。
kn-apply
kn-apply タスクは、指定されたイメージを Knative サービスにデプロイします。このタスクは、kn service apply コマンドを使用して、指定された Knative サービスを作成または更新します。
kn-apply タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| Knative サービス名。 |
| |
|
| デプロイするイメージの完全修飾名。 |
|
kn-apply ClusterTask からの変更点
-
KN_IMAGEパラメーターが削除されました。
maven
Maven タスクは Maven ビルドを実行します。
Maven タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| 実行する Maven の目標。 |
|
|
|
| Maven リポジトリーのミラー URL。 |
| |
|
|
タスクが Maven ビルドを実行する |
|
|
| ワークスペース | 説明 |
|---|---|
|
| Maven プロジェクトが含まれるワークスペース。 |
|
| ユーザー名やパスワードなど、Maven サーバーに接続するためのシークレットが含まれるワークスペース。 |
|
| ユーザー名やパスワードなど、プロキシーサーバーに接続するための認証情報が含まれるワークスペース。 |
|
|
|
|
| カスタム Maven 設定が含まれるワークスペース。 |
Maven ClusterTask からの変更
-
CONTEXT_DIRのパラメーター名がSUBDIRECTORYに変更されました。 -
maven-settingsのワークスペース名がmaven_settingsに変更されました。
openshift-client
openshift-client タスクは、oc コマンドラインインターフェイスを使用してコマンドを実行します。このタスクを使用して、OpenShift Container Platform クラスターを管理できます。
openshift-client タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
|
実行する |
|
|
|
| 使用する OpenShift Container Platform バージョン。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
|
|
|
|
クラスターにアクセスするための認証情報を含む |
openshift-client ClusterTask からの変更点
-
ワークスペース名
manifest-dirがmanifest_dirに変更されました。 -
ワークスペース名
kubeconfig-dirがkubeconfig_dirに変更されました。
s2i-dotnet
s2i-dotnet タスクは、OpenShift Container Platform レジストリーから image-registry.openshift-image-registry.svc:5000/openshift/dotnet として入手できる Source to Image (S2I) dotnet ビルダーイメージを使用してソースコードをビルドします。
s2i-dotnet タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| S2I プロセスがビルドするコンテナーイメージの完全修飾名。 |
| |
|
| ビルダーイメージのデフォルトのアセンブルおよび実行スクリプトを含む URL。 |
|
|
|
|
ビルドプロセスで設定する環境変数の値の配列。 |
| |
|
|
コンテキストとして使用する |
|
|
|
| Buildah ストレージドライバーを設定して、現在のクラスターノード設定を反映します。 |
|
|
|
|
ビルドするコンテナーの形式。 |
|
|
|
|
イメージをビルドするときの |
| |
|
|
イメージをプッシュするときの |
| |
|
| コンテナーレジストリーへのイメージのプッシュをスキップします。 |
|
|
|
|
TLS 検証フラグ。通常は |
|
|
|
| 詳細なロギングをオンにすると、実行されたすべてのコマンドがログに追加されます。 |
|
|
|
| 言語バージョンに対応するイメージストリームのタグ。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
| S2I ワークフローのビルドコンテキストであるアプリケーションソースコード。 |
|
|
Buildah がコンテナーレジストリーへのアクセスに使用する |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージの完全修飾名。 |
|
|
| ビルドされたイメージのダイジェスト。 |
s2i-go
s2i-go タスクは、OpenShift Container Platform レジストリーから image-registry.openshift-image-registry.svc:5000/openshift/golang として入手できる S2I Golang ビルダーイメージを使用してソースコードをビルドします。
s2i-go タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| S2I プロセスがビルドするコンテナーイメージの完全修飾名。 |
| |
|
| ビルダーイメージのデフォルトのアセンブルおよび実行スクリプトを含む URL。 |
|
|
|
|
ビルドプロセスで設定する環境変数の値の配列。 |
| |
|
|
コンテキストとして使用する |
|
|
|
| Buildah ストレージドライバーを設定して、現在のクラスターノード設定を反映します。 |
|
|
|
|
ビルドするコンテナーの形式。 |
|
|
|
|
イメージをビルドするときの |
| |
|
|
イメージをプッシュするときの |
| |
|
| コンテナーレジストリーへのイメージのプッシュをスキップします。 |
|
|
|
|
TLS 検証フラグ。通常は |
|
|
|
| 詳細なロギングをオンにすると、実行されたすべてのコマンドがログに追加されます。 |
|
|
|
| 言語バージョンに対応するイメージストリームのタグ。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
| S2I ワークフローのビルドコンテキストであるアプリケーションソースコード。 |
|
|
Buildah がコンテナーレジストリーへのアクセスに使用する |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージの完全修飾名。 |
|
|
| ビルドされたイメージのダイジェスト。 |
s2i-java
s2i-java タスクは、OpenShift Container Platform レジストリーから image-registry.openshift-image-registry.svc:5000/openshift/java として入手できる S2I Java ビルダーイメージを使用してソースコードをビルドします。
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| S2I プロセスがビルドするコンテナーイメージの完全修飾名。 |
| |
|
| ビルダーイメージのデフォルトのアセンブルおよび実行スクリプトを含む URL。 |
|
|
|
|
ビルドプロセスで設定する環境変数の値の配列。 |
| |
|
|
コンテキストとして使用する |
|
|
|
| Buildah ストレージドライバーを設定して、現在のクラスターノード設定を反映します。 |
|
|
|
|
ビルドするコンテナーの形式。 |
|
|
|
|
イメージをビルドするときの |
| |
|
|
イメージをプッシュするときの |
| |
|
| コンテナーレジストリーへのイメージのプッシュをスキップします。 |
|
|
|
|
TLS 検証フラグ。通常は |
|
|
|
| 詳細なロギングをオンにすると、実行されたすべてのコマンドがログに追加されます。 |
|
|
|
| 言語バージョンに対応するイメージストリームのタグ。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
| S2I ワークフローのビルドコンテキストであるアプリケーションソースコード。 |
|
|
Buildah がコンテナーレジストリーへのアクセスに使用する |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージの完全修飾名。 |
|
|
| ビルドされたイメージのダイジェスト。 |
s2i-java ClusterTask からの変更点
- 新しいパラメーターが複数追加されました。
-
BUILDER_IMAGE、MAVEN_ARGS_APPEND、MAVEN_CLEAR_REPO、およびMAVEN_MIRROR_URLパラメーターが削除されました。MAVEN_ARGS_APPEND、MAVEN_CLEAR_REPOおよびMAVEN_MIRROR_URLの値を環境変数として渡すことができます。 -
パラメーター名
PATH_CONTEXTがCONTEXTに変更されました。 -
パラメーター名
TLS_VERIFYがTLSVERIFYに変更されました。 -
IMAGE_URLの結果が追加されました。
s2i-nodejs
s2i-nodejs タスクは、OpenShift Container Platform レジストリーから image-registry.openshift-image-registry.svc:5000/openshift/nodejs として入手できる S2I NodeJS ビルダーイメージを使用してソースコードをビルドします。
s2i-nodejs タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| S2I プロセスがビルドするコンテナーイメージの完全修飾名。 |
| |
|
| ビルダーイメージのデフォルトのアセンブルおよび実行スクリプトを含む URL。 |
|
|
|
|
ビルドプロセスで設定する環境変数の値の配列。 |
| |
|
|
コンテキストとして使用する |
|
|
|
| Buildah ストレージドライバーを設定して、現在のクラスターノード設定を反映します。 |
|
|
|
|
ビルドするコンテナーの形式。 |
|
|
|
|
イメージをビルドするときの |
| |
|
|
イメージをプッシュするときの |
| |
|
| コンテナーレジストリーへのイメージのプッシュをスキップします。 |
|
|
|
|
TLS 検証フラグ。通常は |
|
|
|
| 詳細なロギングをオンにすると、実行されたすべてのコマンドがログに追加されます。 |
|
|
|
| 言語バージョンに対応するイメージストリームのタグ。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
| S2I ワークフローのビルドコンテキストであるアプリケーションソースコード。 |
|
|
Buildah がコンテナーレジストリーへのアクセスに使用する |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージの完全修飾名。 |
|
|
| ビルドされたイメージのダイジェスト。 |
s2i-perl
s2i-perl タスクは、OpenShift Container Platform レジストリーから image-registry.openshift-image-registry.svc:5000/openshift/perl として入手できる S2I Perl ビルダーイメージを使用してソースコードをビルドします。
s2i-perl タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| S2I プロセスがビルドするコンテナーイメージの完全修飾名。 |
| |
|
| ビルダーイメージのデフォルトのアセンブルおよび実行スクリプトを含む URL。 |
|
|
|
|
ビルドプロセスで設定する環境変数の値の配列。 |
| |
|
|
コンテキストとして使用する |
|
|
|
| Buildah ストレージドライバーを設定して、現在のクラスターノード設定を反映します。 |
|
|
|
|
ビルドするコンテナーの形式。 |
|
|
|
|
イメージをビルドするときの |
| |
|
|
イメージをプッシュするときの |
| |
|
| コンテナーレジストリーへのイメージのプッシュをスキップします。 |
|
|
|
|
TLS 検証フラグ。通常は |
|
|
|
| 詳細なロギングをオンにすると、実行されたすべてのコマンドがログに追加されます。 |
|
|
|
| 言語バージョンに対応するイメージストリームのタグ。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
| S2I ワークフローのビルドコンテキストであるアプリケーションソースコード。 |
|
|
Buildah がコンテナーレジストリーへのアクセスに使用する |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージの完全修飾名。 |
|
|
| ビルドされたイメージのダイジェスト。 |
s2i-php
s2i-php タスクは、OpenShift Container Platform レジストリーから image-registry.openshift-image-registry.svc:5000/openshift/php として入手できる S2I PHP ビルダーイメージを使用してソースコードをビルドします。
s2i-php タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| S2I プロセスがビルドするコンテナーイメージの完全修飾名。 |
| |
|
| ビルダーイメージのデフォルトのアセンブルおよび実行スクリプトを含む URL。 |
|
|
|
|
ビルドプロセスで設定する環境変数の値の配列。 |
| |
|
|
コンテキストとして使用する |
|
|
|
| Buildah ストレージドライバーを設定して、現在のクラスターノード設定を反映します。 |
|
|
|
|
ビルドするコンテナーの形式。 |
|
|
|
|
イメージをビルドするときの |
| |
|
|
イメージをプッシュするときの |
| |
|
| コンテナーレジストリーへのイメージのプッシュをスキップします。 |
|
|
|
|
TLS 検証フラグ。通常は |
|
|
|
| 詳細なロギングをオンにすると、実行されたすべてのコマンドがログに追加されます。 |
|
|
|
| 言語バージョンに対応するイメージストリームのタグ。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
| S2I ワークフローのビルドコンテキストであるアプリケーションソースコード。 |
|
|
Buildah がコンテナーレジストリーへのアクセスに使用する |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージの完全修飾名。 |
|
|
| ビルドされたイメージのダイジェスト。 |
s2i-python
s2i-python タスクは、OpenShift Container Platform レジストリーから image-registry.openshift-image-registry.svc:5000/openshift/Python として入手できる S2I Python ビルダーイメージを使用してソースコードをビルドします。
s2i-python タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| S2I プロセスがビルドするコンテナーイメージの完全修飾名。 |
| |
|
| ビルダーイメージのデフォルトのアセンブルおよび実行スクリプトを含む URL。 |
|
|
|
|
ビルドプロセスで設定する環境変数の値の配列。 |
| |
|
|
コンテキストとして使用する |
|
|
|
| Buildah ストレージドライバーを設定して、現在のクラスターノード設定を反映します。 |
|
|
|
|
ビルドするコンテナーの形式。 |
|
|
|
|
イメージをビルドするときの |
| |
|
|
イメージをプッシュするときの |
| |
|
| コンテナーレジストリーへのイメージのプッシュをスキップします。 |
|
|
|
|
TLS 検証フラグ。通常は |
|
|
|
| 詳細なロギングをオンにすると、実行されたすべてのコマンドがログに追加されます。 |
|
|
|
| 言語バージョンに対応するイメージストリームのタグ。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
| S2I ワークフローのビルドコンテキストであるアプリケーションソースコード。 |
|
|
Buildah がコンテナーレジストリーへのアクセスに使用する |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージの完全修飾名。 |
|
|
| ビルドされたイメージのダイジェスト。 |
s2i-ruby
s2i-ruby タスクは、OpenShift Container Platform レジストリーから image-registry.openshift-image-registry.svc:5000/openshift/ruby として入手できる S2I Ruby ビルダーイメージを使用してソースコードをビルドします。
s2i-ruby タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| S2I プロセスがビルドするコンテナーイメージの完全修飾名。 |
| |
|
| ビルダーイメージのデフォルトのアセンブルおよび実行スクリプトを含む URL。 |
|
|
|
|
ビルドプロセスで設定する環境変数の値の配列。 |
| |
|
|
コンテキストとして使用する |
|
|
|
| Buildah ストレージドライバーを設定して、現在のクラスターノード設定を反映します。 |
|
|
|
|
ビルドするコンテナーの形式。 |
|
|
|
|
イメージをビルドするときの |
| |
|
|
イメージをプッシュするときの |
| |
|
| コンテナーレジストリーへのイメージのプッシュをスキップします。 |
|
|
|
|
TLS 検証フラグ。通常は |
|
|
|
| 詳細なロギングをオンにすると、実行されたすべてのコマンドがログに追加されます。 |
|
|
|
| 言語バージョンに対応するイメージストリームのタグ。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
| S2I ワークフローのビルドコンテキストであるアプリケーションソースコード。 |
|
|
Buildah がコンテナーレジストリーへのアクセスに使用する |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージの完全修飾名。 |
|
|
| ビルドされたイメージのダイジェスト。 |
skopeo-copy
skopeo-copy タスクは skopeo copy コマンドを実行します。
Skopeo は、リモートコンテナーイメージレジストリーを操作するためのコマンドラインツールであり、イメージのロードや実行にデーモンやその他のインフラストラクチャーを必要としません。skopeo copy コマンドは、別のリモートレジストリーにイメージをコピーします (たとえば、内部レジストリーから実稼働レジストリーにコピーします)。Skopeo は、ユーザーが提供する認証情報を使用したイメージレジストリーでの認可をサポートします。
skopeo-copy タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
| ソースコンテナーイメージのタグを含む完全修飾名。 |
| |
|
| Skopeo がソースイメージをコピーする宛先イメージの、タグを含む完全修飾名。 |
| |
|
|
ソースレジストリーの TLS 検証フラグ。通常は |
|
|
|
|
宛先レジストリーの TLS 検証フラグ。通常は |
|
|
|
| デバッグ情報をログに出力します。 |
|
|
| ワークスペース | 説明 |
|---|---|
|
| 複数のイメージをコピーする場合は、このワークスペースを使用してイメージの URL を指定します。 |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ソースイメージの SHA256 ダイジェスト。 |
|
|
| 宛先イメージの SHA256 ダイジェスト。 |
skopeo-copy ClusterTask からの変更点
- すべてのパラメーター名が大文字に変更されました。
-
VERBOSEパラメーターが追加されました。 -
ワークスペース名が
images-urlからimages_urlに変更されました。 -
SOURCE_DIGESTおよびDESTINATION_DIGESTの結果が追加されました。
tkn
tkn タスクは、tkn を使用して Tekton リソースに対して操作を実行します。
tkn タスクの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
|
実行する |
|
|
|
|
実行する |
|
|
| ワークスペース | 説明 |
|---|---|
|
|
クラスターにアクセスするための認証情報を含む |
tkn ClusterTask からの変更点
-
TKN_IMAGEパラメーターが削除されました。 -
ワークスペース名が
kubeconfigからkubeconfig_dirに変更されました。
3.8. OpenShift Pipelines namespace で提供されるコミュニティータスク リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift Pipelines のインストールには、パイプラインで使用できる一連のコミュニティータスクが含まれています。これらのタスクは、OpenShift Pipelines インストール namespace (通常は openshift-pipelines namespace) にあります。
argocd-task-sync-and-wait
argocd-task-sync-and-wait コミュニティータスクは、Argo CD アプリケーションをデプロイし、正常になるまで待機します。
これを行うには、以下の設定が必要です。* argocd-env-configmap config map で設定された Argo CD サーバーのアドレス。* argocd-env-secret シークレットに設定された認証情報。
アドレス情報を含む config map の例
認証情報を含むシークレットの例
- 1
- ユーザー名とパスワード、または認証トークンのいずれかを設定します。
argocd-task-sync-and-wait コミュニティータスクの使用例
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
|
| デプロイするアプリケーションの名前。 | |
|
| デプロイするリビジョン。 |
|
|
|
| |
|
| Argo CD のバージョン。 |
|
helm-upgrade-from-repo
helm -upgrade-from-repo コミュニティータスクは、指定された Helm リポジトリーとチャートに基づいて、OpenShift Container Platform クラスターに Helm チャートをインストールまたはアップグレードします。
Helm-upgrade-from-repo コミュニティータスクの使用例
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
|
| Helm リポジトリー。 | |
|
| デプロイする Helm チャート名。 | |
|
| セマンティックバージョン管理形式の Helm リリースバージョン。 |
|
|
| Helm リリース名。 |
|
|
| Helm リリースの namespace。 |
|
|
|
上書きする設定パラメーター (コンマ区切り)。例: |
|
|
| 使用する Helm イメージ。 |
|
helm-upgrade-from-source
Helm-upgrade-from-source コミュニティータスクは、指定されたチャートとソースワークスペースに基づいて、OpenShift Container Platform クラスターに Helm チャートをインストールおよびアップグレードします。
Helm-upgrade-from-source コミュニティータスクの使用例
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
|
| Helm チャートを含むソースワークスペース内のディレクトリー。 | |
|
| セマンティックバージョン管理形式の Helm リリースバージョン。 |
|
|
| Helm リリース名。 |
|
|
| Helm リリースの namespace。 |
|
|
|
上書きする設定パラメーター (コンマ区切り)。例: |
|
|
| Helm の設定パラメーターを含むファイル。 |
|
|
| 使用する Helm イメージ。 |
|
|
| Helm アップグレードコマンドに渡される追加のパラメーター。 |
|
| ワークスペース | 説明 |
|---|---|
|
| Helm チャートを含むワークスペース。 |
jib-maven
jib-maven コミュニティータスクは、Maven プロジェクト用の Jib ツールを使用して、Java、Kotlin、Groovy、および Scala ソースをコンテナーイメージにビルドします。
jib-maven コミュニティータスクの使用例
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
|
| ビルドするイメージの名前。 | |
|
| Maven ベースイメージ。 |
|
|
| ソースリポジトリーのルートを基準とした、アプリケーションを含むディレクトリー。 |
|
|
| Maven アーティファクトとベースイメージレイヤーをキャッシュするためのボリュームの名前。 |
|
|
| 安全でないレジストリーを許可します。 |
|
|
| 安全でないレジストリーサービスの認証局 (CA) バンドルファイル名。 |
|
| ワークスペース | 説明 |
|---|---|
|
| Maven プロジェクトが含まれるワークスペース。 |
|
| SSL 証明書が含まれるオプションのワークスペース。 |
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| ビルドされたイメージのダイジェスト。 |
jib-maven コミュニティークラスタータスクからの変更
-
IMAGEおよびMAVEN_IMAGEパラメーターのデフォルト値が変更されました。
kubeconfig-creator
kubeconfig-creator コミュニティータスクは、パイプライン内の他のタスクがさまざまなクラスターにアクセスするために使用できる kubeconfig ファイルを作成します。
kubeconfig-creator コミュニティータスクの使用例
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
|
| アクセスするクラスターの名前。 | |
|
| アクセスするクラスターのアドレス。 | |
|
| クラスターへの Basic 認証用のユーザー名。 | |
|
| クラスターへの Basic 認証用のパスワード。 |
|
|
| PEM でエンコードされた認証局 (CA) 証明書。 |
|
|
| TLS のクライアントキーファイルからの PEM エンコードされたデータ。 |
|
|
| TLS のクライアント証明書ファイルからの PEM エンコードされたデータ。 |
|
|
| 未指定のリクエストで使用するデフォルトの namespace。 |
|
|
| クラスターへの認証用のベアラートークン。 |
|
|
| TLS 証明書を検証せずにサーバーにアクセスするかどうかを示します。 |
|
| ワークスペース | 説明 |
|---|---|
|
|
|
pull-request
pull-request コミュニティータスクを使用すると、抽象化されたインターフェイスを通じてソースコントロール管理 (SCM) システムと対話できます。
このコミュニティータスクは、パブリック SCM インスタンスと、self-hosted またはエンタープライズ GitHub または GitLab インスタンスの両方で機能します。
ダウンロードモードでは、このタスクは、.MANIFEST ファイルを含む既存のプルリクエストの状態を pr ワークスペースに入力します。
アップロードモードでは、このタスクは .MANIFEST ファイルを含む pr ワークスペースの内容をプルリクエストの内容と比較し、内容が異なる場合は、pr ワークスペースと一致するようにプルリクエストを更新します。
pull-request コミュニティータスクの使用例
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
|
|
| |
|
| プルリクエストの URL。 | |
|
|
SCM システムのタイプ。サポートされる値は | |
|
|
base64 でエンコードされた SCM トークンを含む | |
|
|
|
|
| ワークスペース | 説明 |
|---|---|
|
| プルリクエストの状態が含まれるワークスペース。 |
trigger-jenkins-job
curl リクエストを使用して Jenkins ジョブをトリガーするには、trigger-jenkins-job コミュニティータスクを使用できます。
trigger-jenkins-job コミュニティータスクの使用例
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
|
| Jenkins が実行されているサーバー URL。 | |
|
| トリガーする必要がある Jenkins ジョブ。 | |
|
| 認証情報を含む Jenkins シークレット。 |
|
|
|
|
|
| ワークスペース | 説明 |
|---|---|
|
|
|
3.9. OpenShift Pipelines で提供されるステップアクション定義 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Pipelines は、タスクで使用できる標準の StepAction 定義を提供します。これらの定義を参照するには、クラスターリゾルバーを使用します。
git-clone
git-clone ステップアクションは Git を使用してワークスペースでリモートリポジトリーを初期化し、クローンします。このステップアクションを使用して、このソースコードをビルドまたは処理するパイプラインの開始時にリポジトリーのクローンを作成するタスクを定義できます。
タスクでの git-clone ステップアクションの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
|
フェッチされた Git リポジトリーのディレクトリー。クローンされたリポジトリーデータは、ディレクトリーのルートまたは |
| |
|
|
必要に応じて、秘密鍵、 |
| |
|
|
|
| |
|
| CA 証明書を含むワークスペース。このワークスペースを指定すると、Git は HTTPS を使用してリモートリポジトリーとやり取りする場合に、これらの証明書を使用してピアを検証します。 |
| |
|
|
|
|
|
|
| HTTP プロキシーサーバー (TLS 以外のリクエスト)。 |
| |
|
| HTTPS プロキシーサーバー (TLS リクエスト)。 |
| |
|
| HTTP/HTTPS リクエストのプロキシーをオプトアウトします。 |
| |
|
|
タスクが Git リポジトリーを配置する |
| |
|
| Pod 内の Git ユーザーのホームディレクトリーへの絶対パス。 |
|
|
|
| Git 操作を実行する前に、デフォルトのワークスペースにコンテンツが存在する場合は削除します。 |
|
|
|
| 実行したコマンドをログに記録します。 |
|
|
|
|
グローバル |
|
|
|
| Git リポジトリー URL |
| |
|
| チェックアウトするリビジョン (ブランチやタグなど)。 |
|
|
|
|
リビジョンをチェックアウトする前にタスクが取得するリポジトリーの |
| |
|
| Git サブモジュールを初期化して取得します。 |
|
|
|
| 取得するコミットの数。"シャロークローン" は単一のコミットです。 |
|
|
|
| "スパースチェックアウト" を実行するための、コンマで区切られたディレクトリーパターンのリスト。 |
|
| 結果 | 型 | 説明 |
|---|---|---|
|
|
| クローンされた Git リポジトリー内の現在のブランチの HEAD にあるコミットの SHA ダイジェスト。 |
|
|
| クローンされたリポジトリーの URL。 |
|
|
| クローンされた Git リポジトリー内の現在のブランチの HEAD にあるコミットのエポックタイムスタンプ。 |
cache-upload および cache-fetch
cache-upload および cache-fetch ステップアクションの使用は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
ビルドプロセスが依存関係を保持するキャッシュディレクトリーを保持するには、cache-upload および cache-fetch ステップアクションを使用し、Amazon Simple Storage Service (S3) バケット、Google Cloud Services (GCS) バケット、または Open Container Initiative (OCI) リポジトリーに保存します。
cache-upload ステップアクションを使用すると、ステップアクションはビルド内の特定のファイルに基づいてハッシュを計算します。これらのファイルを選択するには、正規表現を指定する必要があります。cache-upload ステップアクションは、ハッシュでインデックス付けされたキャッシュディレクトリーのコンテンツを含むイメージを保存します。
cache-fetch ステップアクションを使用すると、ステップアクションは同じハッシュを計算します。次に、このハッシュのキャッシュされたイメージがすでに利用可能かどうかを確認します。イメージが利用可能な場合、ステップアクションによってキャッシュされたコンテンツがキャッシュディレクトリーに設定されます。イメージが利用できない場合は、ディレクトリーはそのまま残ります。
cache-fetch ステップアクションを使用した後、ビルドプロセスを実行できます。キャッシュが正常に取得された場合、ビルドプロセスで以前にダウンロードした依存関係が含まれます。キャッシュが取得されなかった場合、ビルドプロセスの通常の手順で依存関係をダウンロードします。
cache-fetch の結果は、キャッシュされたイメージが取得されたかどうかを示します。後続の cache-upload ステップアクションでは、その結果を使用して、現在のハッシュのキャッシュがすでに利用可能であった場合は、新しいキャッシュイメージのアップロードをスキップできます。
次のサンプルタスクは、リポジトリーからソースを取得し、キャッシュ (使用可能な場合) を取得し、Maven ビルドを実行し、キャッシュが取得されなかった場合は、ビルドディレクトリーの新しいキャッシュイメージをアップロードします。
タスク内の cache-fetch および cache-upload ステップアクションの使用例
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
|
ハッシュを計算するファイルを選択するための正規表現。たとえば、Go プロジェクトの場合、キャッシュを計算するために |
| |
|
|
キャッシュを取得するためのソース URI。キャッシュハッシュを指定するには |
| |
|
| キャッシュコンテンツを抽出するためのパス。通常、このパスはワークスペース内にあります。 |
| |
|
| ハッシュを計算するためのファイルが配置されているパス。 |
| |
|
|
|
|
|
|
| Google 認証情報が保存されているパス。空の場合は無視されます。 |
| |
|
| AWS 設定ファイルへのパス。空の場合は無視されます。 |
| |
|
| AWS 認証情報ファイルへのパス。空の場合は無視されます。 |
| |
|
| S3、GCS、または Azure を設定するための Blob クエリーパラメーター。S3 アクセラレーション、FIPS、パススタイルのアドレス指定などの追加機能には、これらのオプションパラメーターを使用します。 |
|
| 結果 | 型 | 説明 |
|---|---|---|
|
|
|
ステップがキャッシュをフェッチした場合は |
| パラメーター | 説明 | 型 | デフォルト値 |
|---|---|---|---|
|
|
ハッシュを計算するファイルを選択するための正規表現。たとえば、Go プロジェクトの場合、キャッシュを計算するために |
| |
|
|
キャッシュをアップロードするためのターゲット URI。 |
| |
|
| ステップがイメージにパックするキャッシュコンテンツのパス。通常、このパスはワークスペース内にあります。 |
| |
|
| ハッシュを計算するためのファイルが配置されているパス。 |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Google 認証情報が保存されているパス。空の場合は無視されます。 |
| |
|
| AWS 設定ファイルへのパス。空の場合は無視されます。 |
| |
|
| AWS 認証情報ファイルへのパス。空の場合は無視されます。 |
| |
|
| S3、GCS、または Azure を設定するための Blob クエリーパラメーター。S3 アクセラレーション、FIPS、パススタイルのアドレス指定などの追加機能には、これらのオプションパラメーターを使用します。 |
|
cache-upload ステップアクションは結果を返しません。
3.10. バージョン付けされていないタスクとバージョン付けされたタスクとステップアクションについて リンクのコピーリンクがクリップボードにコピーされました!
openshift-pipelines namespace には、バージョン付けされたタスクとステップアクションおよび標準のバージョン付けされていないのタスクとステップアクションが含まれます。たとえば、Red Hat OpenShift Pipelines Operator バージョン 1.18 をインストールすると、次のアイテムが作成されます。
-
buildah-1-18-0バージョン付けされたタスク -
buildahバージョン付けされていないタスク -
git-clone-1-18-0バージョン付けされたStepAction定義 -
git-cloneバージョン付けされていないStepAction定義
バージョン付けされていないタスクおよびバージョン付けされたタスクおよびステップアクションには、params、workspaces、および steps など、同じメタデータ、動作、仕様があります。ただし、それらを無効にするか、Operator をアップグレードすると、動作が異なります。
バージョン付けされていないタスクまたはバージョン付けされたタスクおよびステップアクションを実稼働環境で標準として導入する前に、クラスター管理者はその長所と短所を検討する場合があります。
| メリット | デメリット | |
|---|---|---|
| バージョン付けされていないタスクおよびステップアクション |
|
|
| バージョン付けされたタスクおよびステップアクション |
|
|
バージョン付けされていないタスクとバージョン付けされたタスクとステップアクションにはさまざまな命名規則があり、Red Hat OpenShift Pipelines Operator はそれらを異なる方法でアップグレードします。
| 命名法 | アップグレード | |
|---|---|---|
| バージョン付けされていないタスクおよびステップアクション |
バージョン付けされていないタスクおよびステップアクションには、タスクまたはステップアクションの名前のみが含まれます。たとえば、Operator v1.18 でインストールされる Buildah のバージョン付けされていないタスクの名前は | Operator をアップグレードすると、バージョン付けされていないタスクとステップアクションが最新の変更で更新されます。名前は変更されません。 |
| バージョン付けされたタスクおよびステップアクション |
バージョン付けされたタスクおよびステップアクションには、名前の後にバージョンが接尾辞として含まれます。たとえば、Operator v1.18 でインストールされた Buildah のバージョン付きタスクの名前は |
Operator をアップグレードすると、バージョン管理されたタスクとステップアクションの最新バージョンがインストールされ、直前のバージョンが保持され、以前のバージョンが削除されます。最新バージョンは、アップグレードされた Operator に対応します。たとえば、Operator 1.18 をインストールすると、 |
第4章 OpenShift Pipelines での手動承認の使用 リンクのコピーリンクがクリップボードにコピーされました!
パイプラインで手動承認タスクを指定できます。パイプラインがこのタスクに到達すると、一時停止し、OpenShift Container Platform ユーザー 1 つ以上からの承認を待機します。いずれかのユーザーがタスクを承認せずに拒否した場合、パイプラインは失敗します。この機能は、manual approval gate controller によって提供されます。
manual approval gate はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
4.1. manual approval gate controller の有効化 リンクのコピーリンクがクリップボードにコピーされました!
手動承認タスクを使用するには、まず manual approval gate controller を有効にする必要があります。
前提条件
- Red Hat OpenShift Pipelines Operator がクラスターにインストールされている。
-
ocコマンドラインユーティリティーを使用してクラスターにログオンしている。 -
openshift-pipelinesnamespace の管理者権限がある。
手順
ManualApprovalGateカスタムリソース (CR) の次のマニフェストを含めて、manual-approval-gate-cr.yamlという名前のファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
ManualApprovalGateCR を適用します。oc apply -f manual-approval-gate-cr.yaml
$ oc apply -f manual-approval-gate-cr.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、manual approval gate controller が実行されていることを確認します。
oc get manualapprovalgates.operator.tekton.dev
$ oc get manualapprovalgates.operator.tekton.devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME VERSION READY REASON manual-approval-gate v0.1.0 True
NAME VERSION READY REASON manual-approval-gate v0.1.0 TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow READYステータスがTrueであることを確認します。Trueでない場合は、数分待ってからもう一度コマンドを実行します。コントローラーが準備完了状態になるまでには、しばらく時間がかかる場合があります。
4.2. 手動承認タスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプラインで手動承認タスクを指定できます。パイプライン実行のタスク実行がこのタスクに到達すると、パイプライン実行は停止し、1 つ以上のユーザーからの承認を待機します。
前提条件
- manual approver gate controller を有効にしている。
- パイプラインの YAML 仕様を作成している。
手順
以下の例のように、パイプラインに
ApprovalTaskを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表4.1 手動承認タスクのパラメーター パラメーター 型 説明 approversarray
タスクを承認できる OpenShift Container Platform ユーザー。
descriptionstring
オプション: 承認タスクの説明。OpenShift Pipelines は、タスクを承認または拒否できるユーザーに説明を表示します。
numberOfApprovalsRequiredstring
タスクに必要なさまざまなユーザーからの承認の数。
timeoutstring
オプション: 承認のタイムアウト期間。この期間中にタスクが指定の数の承認が受信されなかった場合、パイプラインの実行は失敗します。デフォルトのタイムアウトは 1 時間です。
4.3. 手動承認タスクの承認 リンクのコピーリンクがクリップボードにコピーされました!
承認タスクを含むパイプラインを実行し、実行が承認タスクに到達すると、パイプラインの実行は一時停止し、ユーザーの承認または拒否を待機します。
ユーザーは、Web コンソールまたは opc コマンドラインユーティリティーを使用してタスクを承認または拒否できます。
タスクに設定されている承認者のいずれかがタスクを拒否した場合、パイプラインの実行は失敗します。
1 つのユーザーがタスクを承認したが、設定された承認数にまだ達していない場合は、同じユーザーがタスクを拒否するように変更できるようになっており、パイプラインの実行は失敗します。
4.3.1. Web コンソールを使用した手動承認タスクの承認 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、手動承認タスクを承認または拒否できます。
手動承認タスクの承認者としてリストされており、パイプライン実行がこのタスクに到達すると、Web コンソールに通知が表示されます。承認が必要なタスクのリストを表示し、これらのタスクを承認または拒否できます。
前提条件
- OpenShift Pipelines コンソールプラグインを有効にしている。
手順
次のいずれかのアクションを完了して、承認できるタスクのリストを表示します。
- 承認が必要なタスクに関する通知が表示されたら、この通知の Go to Approvals タブ をクリックします。
- Administrator パースペクティブメニューで、Pipelines → Pipelines を選択してから Approvals タブをクリックします。
- Developer パースペクティブメニューで、Pipelines を選択し、Approvals タブをクリックします。
- PipelineRun details ウィンドウの Details タブで、手動承認タスクを表す四角形をクリックします。リストには、このタスクの承認のみが表示されます。
- PipelineRun details ウィンドウで、ApprovalTasks タブをクリックします。リストには、このパイプライン実行の承認のみが表示されます。
承認タスクのリストで、承認するタスクを表す行で、
アイコンをクリックし、次のいずれかのオプションを選択します。
- タスクを承認するには、Approve を選択します。
- タスクを拒否するには、Reject を選択します。
- Reason フィールドにメッセージを入力します。
- Submit をクリックします。
4.3.2. コマンドラインを使用した手動承認タスクの承認 リンクのコピーリンクがクリップボードにコピーされました!
opc コマンドラインユーティリティーを使用して、手動承認タスクを承認または拒否できます。自分が承認者であるタスクのリストを表示し、承認待ちのタスクを承認または拒否できます。
前提条件
-
opcコマンドラインユーティリティーをダウンロードしてインストールしている。このユーティリティーは、tknコマンドラインユーティリティーと同じパッケージで使用できます。 -
ocコマンドラインユーティリティーを使用してクラスターにログオンしている。
手順
次のコマンドを入力して、自分が承認者としてリストされている手動承認タスクのリストを表示します。
opc approvaltask list
$ opc approvaltask listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME NumberOfApprovalsRequired PendingApprovals Rejected STATUS manual-approval-pipeline-01w6e1-task-2 2 0 0 Approved manual-approval-pipeline-6ywv82-task-2 2 2 0 Rejected manual-approval-pipeline-90gyki-task-2 2 2 0 Pending manual-approval-pipeline-jyrkb3-task-2 2 1 1 Rejected
NAME NumberOfApprovalsRequired PendingApprovals Rejected STATUS manual-approval-pipeline-01w6e1-task-2 2 0 0 Approved manual-approval-pipeline-6ywv82-task-2 2 2 0 Rejected manual-approval-pipeline-90gyki-task-2 2 2 0 Pending manual-approval-pipeline-jyrkb3-task-2 2 1 1 RejectedCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 手動承認タスクに関する情報 (名前、namespace、パイプライン実行名、承認者のリスト、現在のステータスなど) を表示するには、次のコマンドを入力します。
opc approvaltask describe <approval_task_name>
$ opc approvaltask describe <approval_task_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて手動承認タスクを承認または拒否します。
手動承認タスクを承認するには、以下のコマンドを入力します。
opc approvaltask approve <approval_task_name>
$ opc approvaltask approve <approval_task_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプションで、
-mパラメーターを使用して承認のメッセージを指定できます。opc approvaltask approve <approval_task_name> -m <message>
$ opc approvaltask approve <approval_task_name> -m <message>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 手動承認タスクを拒否するには、次のコマンドを入力します。
opc approvaltask reject <approval_task_name>
$ opc approvaltask reject <approval_task_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプションで、
-mパラメーターを使用して拒否のメッセージを指定できます。opc approvaltask reject <approval_task_name> -m <message>
$ opc approvaltask reject <approval_task_name> -m <message>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 パイプラインでの Red Hat エンタイトルメントの使用 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux (RHEL) エンタイトルメントをお持ちの場合は、これらのエンタイトルメントを使用してパイプライン内にコンテナーイメージを構築できます。
Insight Operator は、Simple Common Access (SCA) からこの Operator にエンタイトルメントをインポートした後、エンタイトルメントを自動的に管理します。この Operator は、openshift-config-managed namespace に etc-pki-entitlement という名前のシークレットを提供します。
次の 2 つの方法のいずれかで、パイプラインで Red Hat エンタイトルメントを使用できます。
- シークレットをパイプラインの namespace に手動でコピーします。パイプライン namespace の数が限られている場合は、この方法が最も複雑性が低くなっています。
- Shared Resources Container Storage Interface (CSI) Driver Operator を使用して、namespace 間でシークレットを自動的に共有します。
5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
ocコマンドラインツールを使用して OpenShift Container Platform クラスターにログインしている。 OpenShift Container Platform クラスターで Insights Operator 機能を有効にしている。Shared Resources CSI Driver Operator を使用して namespace 間でシークレットを共有する場合は、Shared Resources CSI ドライバーも有効にする必要があります。Insights Operator や Shared Resources CSI Driver などの機能を有効にする方法は、フィーチャーゲートを使用した機能の有効化 を参照してください。
注記Insights Operator を有効にした後、クラスターがこの Operator を使用してすべてのノードを更新するまで、しばらく待つ必要があります。次のコマンドを入力すると、すべてのノードのステータスを監視できます。
oc get nodes -w
$ oc get nodes -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow Insights Operator がアクティブであることを確認するには、次のコマンドを入力して、
insights-operatorPod がopenshift-insightsnamespace で実行していることを確認します。oc get pods -n openshift-insights
$ oc get pods -n openshift-insightsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat エンタイトルメントの Insights Operator へのインポートを設定しました。エンタイトルメントのインポートに関する詳細は、Insights Operator を使用した Simple Content Access エンタイトルメントのインポート を参照してください。
注記Insights Operator がエンタイトルメントを利用可能にし、アクティブであることを確認するには、以下のコマンドを入力して
etc-pki-entitlementシークレットがopenshift-config-managednamespace に存在することを確認します。oc get secret etc-pki-entitlement -n openshift-config-managed
$ oc get secret etc-pki-entitlement -n openshift-config-managedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. etc-pki-entitlement シークレットの手動コピーによる Red Hat エンタイトルメントの使用 リンクのコピーリンクがクリップボードにコピーされました!
etc-pki-entitlement シークレットを openshift-config-managed namespace からパイプラインの namespace にコピーできます。次に、Buildah タスクにこのシークレットを使用するようにパイプラインを設定できます。
前提条件
-
システムに
jqパッケージをインストールしている。このパッケージは Red Hat Enterprise Linux (RHEL) で利用できます。
手順
次のコマンドを実行して、
etc-pki-entitlementシークレットをopenshift-config-managednamespace からパイプラインの namespace にコピーします。oc get secret etc-pki-entitlement -n openshift-config-managed -o json | \ jq 'del(.metadata.resourceVersion)' | jq 'del(.metadata.creationTimestamp)' | \ jq 'del(.metadata.uid)' | jq 'del(.metadata.namespace)' | \ oc -n <pipeline_namespace> create -f -
$ oc get secret etc-pki-entitlement -n openshift-config-managed -o json | \ jq 'del(.metadata.resourceVersion)' | jq 'del(.metadata.creationTimestamp)' | \ jq 'del(.metadata.uid)' | jq 'del(.metadata.namespace)' | \ oc -n <pipeline_namespace> create -f -1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<pipeline_namespace>は、パイプラインの namespace に置き換えます。
-
Buildah タスク定義では、
openshift-pipelinesnamespace で提供されているbuildahタスクまたはこのタスクのコピーを使用して、次の例に示すようにrhel-entitlementワークスペースを定義します。 -
タスク実行または Buildah タスクを実行するパイプライン実行で、次の例のように、
etc-pki-entitlementシークレットをrhel-entitlementワークスペースに割り当てます。
Red Hat エンタイトルメントを使用するパイプライン実行定義の例 (パイプラインとタスクの定義を含む)