This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.4.5. OpenShift Pipelines を使用したアプリケーションの CI/CD ソリューションの作成
Red Hat OpenShift Pipelines を使用すると、カスタマイズされた CI/CD ソリューションを作成して、アプリケーションをビルドし、テストし、デプロイできます。
アプリケーション向けの本格的なセルフサービス型の CI/CD パイプラインを作成するには、以下のタスクを実行する必要があります。
- カスタムタスクを作成するか、既存の再利用可能なタスクをインストールします。
- アプリケーションの配信パイプラインを作成し、定義します。
- 以下の方法のいずれかを使用して、パイプライン実行のためにワークスペースに接続されているストレージボリュームまたはファイルシステムを提供します。 - 永続ボリューム要求 (PVC) を作成するボリューム要求テンプレートを指定します。
- 永続ボリューム要求 (PVC) を指定します。
 
- 
						PipelineRunオブジェクトを作成し、Pipeline をインスタンス化し、これを起動します。
- トリガーを追加し、ソースリポジトリーのイベントを取得します。
				このセクションでは、pipelines-tutorial の例を使用して前述のタスクについて説明します。この例では、以下で設定される単純なアプリケーションを使用します。
			
- 
						pipelines-vote-uiGit リポジトリーにソースコードがあるフロントエンドインターフェイス (pipelines-vote-ui)。
- 
						pipelines-vote-apiGit リポジトリーにソースコードがあるバックエンドインターフェイス (pipelines-vote-api)。
- 
						pipelines-tutorialGit リポジトリーにあるapply-manifestsおよびupdate-deploymentタスク。
4.5.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 リポジトリーのクローンを作成している。
4.5.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:6443- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- サンプルアプリケーションのプロジェクトを作成します。このサンプルワークフローでは、 - pipelines-tutorialプロジェクトを作成します。- oc new-project pipelines-tutorial - $ oc new-project pipelines-tutorial- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注記- 別の名前でプロジェクトを作成する場合は、サンプルで使用されているリソース URL をプロジェクト名で更新してください。 
- pipelineサービスアカウントを表示します。- Red Hat OpenShift Pipelines Operator は、イメージのビルドおよびプッシュを実行するのに十分なパーミッションを持つ - pipelineという名前のサービスアカウントを追加し、設定します。このサービスアカウントは- PipelineRunオブジェクトによって使用されます。- oc get serviceaccount pipeline - $ oc get serviceaccount pipeline- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.5.3. パイプラインタスクの作成
手順
- pipelines-tutorialリポジトリーから- apply-manifestsおよび- update-deploymentタスクリソースをインストールします。これには、パイプラインの再利用可能なタスクのリストが含まれます。- oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/01_pipeline/01_apply_manifest_task.yaml oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/01_pipeline/02_update_deployment_task.yaml - $ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/01_pipeline/01_apply_manifest_task.yaml $ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/01_pipeline/02_update_deployment_task.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- tkn task listコマンドを使用して、作成したタスクをリスト表示します。- tkn task list - $ tkn task list- Copy 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 ago- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- tkn clustertasks listコマンドを使用して、- buildahおよび- s2i-python-3などの Operator でインストールされた追加のクラスタータスクをリスト表示します。注記- 制限された環境で - buildahクラスタータスクを使用するには、Dockerfile が内部イメージストリームをベースイメージとして使用していることを確認する必要があります。- tkn clustertasks list - $ tkn clustertasks list- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力には、Operator でインストールされた - ClusterTaskリソースが一覧表示されます。- NAME DESCRIPTION AGE buildah 1 day ago git-clone 1 day ago s2i-python 1 day ago tkn 1 day ago - NAME DESCRIPTION AGE buildah 1 day ago git-clone 1 day ago s2i-python 1 day ago tkn 1 day ago- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.5.4. パイプラインのアセンブル
パイプラインは CI/CD フローを表し、実行するタスクによって定義されます。これは、複数のアプリケーションや環境で汎用的かつ再利用可能になるように設計されています。
					パイプラインは、from および runAfter パラメーターを使用してタスクが相互に対話する方法および実行順序を指定します。これは workspaces フィールドを使用して、パイプラインの各タスクの実行中に必要な 1 つ以上のボリュームを指定します。
				
このセクションでは、GitHub からアプリケーションのソースコードを取り、これを OpenShift Container Platform にビルドし、デプロイするパイプラインを作成します。
					パイプラインは、バックエンドアプリケーションの vote-api およびフロントエンドアプリケーション vote-ui について以下のタスクを実行します。
				
- 
							git-urlおよびgit-revisionパラメーターを参照して、Git リポジトリーからアプリケーションのソースコードのクローンを作成します。
- 
							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.10/01_pipeline/04_pipeline.yaml - $ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/01_pipeline/04_pipeline.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- tkn pipeline listコマンドを使用して、パイプラインがアプリケーションに追加されていることを確認します。- tkn pipeline list - $ tkn pipeline list- Copy 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 
4.5.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 openshift- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- サポートされるイメージタグをプライベートレジストリーに対してミラーリングします。 - oc image mirror registry.redhat.io/ubi8/python-38:latest <mirror-registry>:<port>/ubi8/python-38 - $ oc image mirror registry.redhat.io/ubi8/python-38:latest <mirror-registry>:<port>/ubi8/python-38- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- イメージをインポートします。 - oc tag <mirror-registry>:<port>/ubi8/python-38 python:latest --scheduled -n openshift - $ oc tag <mirror-registry>:<port>/ubi8/python-38 python:latest --scheduled -n openshift- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - イメージを定期的に再インポートする必要があります。 - --scheduledフラグは、イメージの自動再インポートを有効にします。
- 指定されたタグを持つイメージがインポートされていることを確認します。 - oc describe imagestream python -n openshift - $ oc describe imagestream python -n openshift- Copy 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 openshift- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- サポートされるイメージタグをプライベートレジストリーに対してミラーリングします。 - oc image mirror registry.redhat.io/ubi8/go-toolset:1.14.7 <mirror-registry>:<port>/ubi8/go-toolset - $ oc image mirror registry.redhat.io/ubi8/go-toolset:1.14.7 <mirror-registry>:<port>/ubi8/go-toolset- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- イメージをインポートします。 - oc tag <mirror-registry>:<port>/ubi8/go-toolset golang:latest --scheduled -n openshift - $ oc tag <mirror-registry>:<port>/ubi8/go-toolset golang:latest --scheduled -n openshift- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - イメージを定期的に再インポートする必要があります。 - --scheduledフラグは、イメージの自動再インポートを有効にします。
- 指定されたタグを持つイメージがインポートされていることを確認します。 - oc describe imagestream golang -n openshift - $ oc describe imagestream golang -n openshift- Copy 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 openshift- Copy 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:latest- Copy 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 openshift- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - イメージを定期的に再インポートする必要があります。 - --scheduledフラグは、イメージの自動再インポートを有効にします。
- 指定されたタグを持つイメージがインポートされていることを確認します。 - oc describe imagestream cli -n openshift - $ oc describe imagestream cli -n openshift- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
4.5.6. パイプラインの実行
					PipelineRun リソースはパイプラインを開始し、これを特定の呼び出しに使用する必要のある Git およびイメージリソースに関連付けます。これは、パイプラインの各タスクについて TaskRun を自動的に作成し、開始します。
				
手順
- バックエンドアプリケーションのパイプラインを起動します。 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 直前のコマンドは、パイプライン実行の永続ボリューム要求 (PVC) を作成するボリューム要求テンプレートを使用します。 
- パイプライン実行の進捗を追跡するには、以下のコマンドを入力します。 - $ tkn pipelinerun logs <pipelinerun_id> -f - $ tkn pipelinerun logs <pipelinerun_id> -f- Copy 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> -f- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 上記のコマンドの <pipelinerun_id> は、直前のコマンドの出力で返された - PipelineRunの ID です。
- 数分後に、 - tkn pipelinerun listコマンドを使用して、すべてのパイプライン実行をリスト表示してパイプラインが正常に実行されたことを確認します。- $ tkn pipelinerun list - $ tkn pipelinerun list- Copy 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 Succeeded- Copy 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 --last- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.5.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.10/03_triggers/01_binding.yaml - $ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/03_triggers/01_binding.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 以下のサンプル - TriggerTemplateYAML ファイルの内容をコピーし、これを保存します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - テンプレートは、ワークスペースのストレージボリュームを定義するための永続ボリューム要求 (PVC) を作成するためのボリューム要求テンプレートを指定します。そのため、データストレージを提供するために永続ボリューム要求 (PVC) を作成する必要はありません。 
- 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.10/03_triggers/02_template.yaml - $ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/03_triggers/02_template.yaml- Copy 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.10/03_triggers/03_trigger.yaml - $ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/03_triggers/03_trigger.yaml- Copy 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=enabled- Copy 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.10/03_triggers/04_event_listener.yaml - $ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.10/03_triggers/04_event_listener.yaml- Copy 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-app- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 
											
 
4.5.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 
4.5.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 を繰り返します。
4.5.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.10 - $ git clone git@github.com:<your GitHub ID>/pipelines-vote-ui.git -b pipelines-1.10- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 空のコミットをプッシュします。 - git commit -m "empty-commit" --allow-empty && git push origin pipelines-1.10 - $ git commit -m "empty-commit" --allow-empty && git push origin pipelines-1.10- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- パイプライン実行がトリガーされたかどうかを確認します。 - tkn pipelinerun list - $ tkn pipelinerun list- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 新規のパイプライン実行が開始されたことに注意してください。 
4.5.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 main- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
							OpenShift Container Platform Web コンソールで、Administrator Observe Metrics の順に移動します。 
- 
							メトリックを表示するには、名前で検索します。たとえば、github-listenerイベントリスナーのeventlistener_http_resourcesメトリックの詳細を表示するには、eventlistener_http_resourcesのキーワードを使用して検索します。