CI/CD パイプラインの作成
OpenShift Pipelines でのタスクとパイプラインの作成と実行の開始
概要
第1章 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タスク。
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.11/01_pipeline/01_apply_manifest_task.yaml oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.11/01_pipeline/02_update_deployment_task.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.11/01_pipeline/01_apply_manifest_task.yaml $ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.11/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 tkn clustertasks listコマンドを使用して、buildahおよびs2i-python-3などの Operator でインストールされた追加のクラスタータスクをリスト表示します。注記制限された環境で
buildahクラスタータスクを使用するには、Dockerfile が内部イメージストリームをベースイメージとして使用していることを確認する必要があります。tkn clustertasks list
$ tkn clustertasks listCopy 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 agoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat OpenShift Pipelines 1.10 では、クラスタータスク機能は非推奨であり、将来のリリースで削除される予定です。
1.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.11/01_pipeline/04_pipeline.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.11/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 直前のコマンドは、パイプライン実行の永続ボリューム要求 (PVC) を作成するボリューム要求テンプレートを使用します。
パイプライン実行の進捗を追跡するには、以下のコマンドを入力します。
$ 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.11/03_triggers/01_binding.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.11/03_triggers/01_binding.yamlCopy 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.11/03_triggers/02_template.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.11/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.11/03_triggers/03_trigger.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.11/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.11/03_triggers/04_event_listener.yaml
$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.11/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.11
$ git clone git@github.com:<your GitHub ID>/pipelines-vote-ui.git -b pipelines-1.11Copy to Clipboard Copied! Toggle word wrap Toggle overflow 空のコミットをプッシュします。
git commit -m "empty-commit" --allow-empty && git push origin pipelines-1.11
$ git commit -m "empty-commit" --allow-empty && git push origin pipelines-1.11Copy 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 をインストールする際に、再利用可能なパイプラインクラスタータスクをクラスターに追加します。
Red Hat OpenShift Pipelines 1.10 では、クラスタータスク機能は非推奨であり、将来のリリースで削除される予定です。
- パイプライン実行に必要なリソースタイプを指定し、必要な場合は追加のパラメーターをパイプラインに追加します。
- パイプラインの各タスクのこれらのパイプラインリソースを入力および出力リソースとして参照します。
- 必要な場合は、タスクのパイプラインに追加されるパラメーターを参照します。タスクのパラメーターは、Task の仕様に基づいて事前に設定されます。
- Operator によってインストールされた、再利用可能なスニペットおよびサンプルを使用して、詳細なパイプラインを作成します。
- 設定済みのローカル Tekton Hub インスタンスからタスクを検索して追加します。
開発者の観点では、キュレートされた独自のタスクセットを使用して、カスタマイズされたパイプラインを作成できます。タスクを開発者コンソールから直接検索、インストール、およびアップグレードするには、クラスター管理者がローカルの Tekton Hub インスタンスをインストールしてデプロイし、そのハブを OpenShift Container Platform クラスターにリンクする必要があります。詳細は、関連情報 セクションの OpenShift Pipeline での Tekton Hub の使用 セクションを参照してください。ローカル Tekton Hub インスタンスをデプロイしない場合、デフォルトでは、クラスタータスク、ネームスペースタスク、およびパブリック 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 Balancing
この情報を使用して、パイプラインのワークフローを改善し、パイプラインのライフサイクルの初期段階で問題をなくすことができます。
- オプション: 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 情報の表示や編集が可能です。
第3章 リゾルバーを使用したリモートパイプラインとタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプラインとタスクは、CI/CD プロセスの再利用可能なブロックです。以前に開発したパイプラインやタスク、または他の人が開発したパイプラインやタスクを、定義をコピーして貼り付けることなく再利用できます。これらのパイプラインまたはタスクは、クラスター上の他の namespace からパブリックカタログに至るまで、いくつかの種類のソースから利用できます。
パイプライン実行リソースでは、既存のソースからパイプラインを指定できます。パイプラインリソースまたはタスク実行リソースでは、既存のソースからタスクを指定できます。
このような場合、Red Hat OpenShift Pipelines の リゾルバー は、実行時に指定されたソースからパイプラインまたはタスク定義を取得します。
以下のリゾルバーは、Red Hat OpenShift Pipelines のデフォルトのインストールで使用できます。
- ハブリゾルバー
- Artifact Hub または Tekton Hub で利用可能な Pipelines Catalog からタスクまたはパイプラインを取得します。
- バンドルリゾルバー
- Tekton バンドルからタスクまたはパイプラインを取得します。Tekton バンドルは、OpenShift コンテナーリポジトリーなどの任意の OCI リポジトリーから利用できる OCI イメージです。
- クラスターリゾルバー
- 特定の namespace の同じ OpenShift Container Platform クラスター上にすでに作成されているタスクまたはパイプラインを取得します。
- Git リゾルバー
- Git リポジトリーからタスクまたはパイプラインバインディングを取得します。リポジトリー、ブランチ、パスを指定する必要があります。
3.1. Tekton カタログからのリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
ハブリゾルバーを使用して、Artifact Hub のパブリック Tekton カタログまたは Tekton Hub のインスタンスで定義されたリモートパイプラインまたはタスクを指定できます。
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 からリモートパイプラインまたはタスクを指定するには、
pipelineRefまたはtaskRef仕様で次の参照形式を使用します。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セクションには、リゾルバーがサポートするパラメーターのみを含める必要があります。
次のパイプライン実行の例では、カタログからリモートパイプラインを参照します。
次のパイプラインの例は、カタログからリモートタスクを参照します。
次のタスク実行例では、カタログからリモートタスクを参照します。
3.2. Tekton バンドルからのリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
バンドルリゾルバーを使用して、Tekton バンドルからリモートパイプラインまたはタスクを指定できます。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 バンドルからリモートパイプラインまたはタスクを指定するには、
pipelineRefまたはtaskRef仕様で次の参照形式を使用します。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 バンドルのリモートタスクを参照しています。
3.3. 同じクラスターからのリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターリゾルバーを使用して、Red Hat OpenShift Pipelines を実行している OpenShift Container Platform クラスター上の namespace で定義されているリモートパイプラインまたはタスクを指定できます。
3.3.1. クラスターリゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスターリゾルバーのデフォルトの種類と namesspace を変更したり、クラスターリゾルバーが使用できる名前空間を制限したりできます。
手順
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.3.2. クラスターリゾルバーを使用したリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、同じクラスターからのリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、同じクラスターからリモートタスクを指定できます。
手順
同じクラスターからリモートパイプラインまたはタスクを指定するには、
pipelineRefまたはtaskRef仕様で以下の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.3 クラスターリゾルバーでサポートされているパラメーター パラメーター 説明 値の例 name取得するリソースの名前。
some-pipelinenamespaceリソースを含むクラスター内の名前空間。
other-namespacekind取得するリソースの種類。
パイプラインパイプラインまたはタスクに追加のパラメーターが必要な場合は、これらのパラメーターを
paramsに指定します。
次のパイプライン実行の例は、同じクラスターからのリモートパイプラインを参照します。
次のパイプラインの例は、同じクラスターのリモートタスクを参照します。
次のタスク実行例では、同じクラスターのリモートタスクを参照しています。
3.4. Git リポジトリーからのリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
Git リゾルバーを使用して、Git リポジトリーからリモートパイプラインまたはタスクを指定できます。リポジトリーには、パイプラインまたはタスクを定義する YAML ファイルが含まれている必要があります。Git リゾルバーは、匿名でクローンを作成するか、認証された SCM API を使用してリポジトリーにアクセスできます。
3.4.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.4.2. 認証された SCM API の Git リゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
認証された SCM API の場合は、認証された Git 接続の構成を設定する必要があります。
go-scm ライブラリーでサポートされている Git リポジトリープロバイダーを使用できます。すべての go-scm 実装が Git リゾルバーでテストされているわけではありませんが、次のプロバイダーが動作することが確認されています。
-
GitHub.comおよび GitHub Enterprise -
GitLab.comおよびセルフホスト Gitlab - Gitea
- BitBucket Server
- BitBucket Cloud
- クラスターの認証済み SCM API を使用して設定できる Git 接続は 1 つだけです。この接続は、クラスターのすべてのユーザーが利用できるようになります。クラスターのすべてのユーザーは、接続用に設定したセキュリティートークンを使用してリポジトリーにアクセスできます。
- 認証された 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
- トークンシークレットを含む名前空間 (
defaultでない場合)。 - 8
- オプション: 認証された API を使用する場合のリポジトリーのデフォルトの組織。この組織は、リゾルバーパラメーターで組織を指定しない場合に使用されます。
認証された SCM API を使用するには、scm-type、api-token-secret-name、および api-token-secret-key 設定が必要です。
3.4.3. Git リゾルバーを使用したリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、Git リポジトリーからリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Git リポジトリーからリモートタスクを指定できます。
前提条件
- 認証された SCM API を使用する場合は、Git リゾルバーに対して認証された Git 接続を設定する必要があります。
手順
Git リポジトリーからリモートパイプラインまたはタスクを指定するには、
pipelineRefまたはtaskRef仕様で次の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.4 Git リゾルバーでサポートされているパラメーター パラメーター 説明 値の例 url匿名クローン作成を使用する場合のリポジトリーの URL。
https://github.com/tektoncd/catalog.gitrepo認証された SCM API を使用する場合のリポジトリー名。
test-infraorg認証された SCM API を使用する場合のリポジトリーの組織。
tektoncdrevisionリポジトリー内の 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 リポジトリーからリモートタスクを参照します。
第4章 バージョン管理されていないクラスタータスクおよびバージョン管理されたクラスタータスクの管理 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、Red Hat OpenShift Pipelines Operator をインストールすると、バージョン付けされたクラスタータスク(VCT) およびバージョン付けされていないクラスタータスク (NVCT) として知られるそれぞれのデフォルトクラスタータスクのバリアントが作成されます。たとえば、Red Hat OpenShift Pipelines Operator v1.7 をインストールすると、buildah-1-7-0 VCT および buildah NVCT が作成されます。
NVCT と VCT の両方は、params、workspaces、および steps など、同じメタデータ、動作、仕様を持ちます。ただし、それらを無効にするか、Operator をアップグレードすると、動作が異なります。
Red Hat OpenShift Pipelines 1.10 では、クラスタータスク機能は非推奨であり、将来のリリースで削除される予定です。
4.1. バージョン付けされていないクラスタータスクとバージョン付けされたクラスタータスクの違い リンクのコピーリンクがクリップボードにコピーされました!
バージョン付けされていないクラスタータスクとバージョン付けされたクラスタータスクでは、命名規則が異なります。また、Red Hat OpenShift Pipelines Operator はそれらを異なる方法でアップグレードします。
| バージョン付けされていないクラスタータスク | バージョン付けされたクラスタータスク | |
|---|---|---|
| 命名法 |
NVCT には、クラスタータスクの名前のみが含まれます。たとえば、Operator v1.7 でインストールされた Buildah の NVCT の名前は |
VCT には、クラスタータスクの名前の後にバージョンが接尾辞として含まれます。たとえば、Operator v1.7 でインストールされた Buildah の VCT の名前は |
| アップグレード | Operator をアップグレードすると、最新の変更でバージョン付けされていないクラスタータスクを更新します。NVCT の名前は変更されません。 |
Operator をアップグレードすると、最新バージョンの VCT をインストールし、以前のバージョンを保持します。VCT の最新バージョンは、アップグレードされた Operator に対応します。たとえば、Operator 1.7 をインストールすると |
4.2. バージョン付けされていないクラスタータスクとバージョン付けされたクラスタータスクの長所と短所 リンクのコピーリンクがクリップボードにコピーされました!
バージョン付けされていないクラスタータスクまたはバージョン付けされたクラスタータスクを実稼働環境で標準として導入する前に、クラスター管理者はその長所と短所を検討する場合があります。
| クラスタータスク | メリット | デメリット |
|---|---|---|
| バージョン付けされていないクラスタータスク (NVCT) |
| NVCT を使用するパイプラインをデプロイする場合、自動的にアップグレードされたクラスタータスクに下位互換性がないと、Operator のアップグレード後にパイプラインが破損する可能性があります。 |
| バージョン付けされたクラスタータスク (VCT) |
|
|
4.3. バージョン付けされていないクラスタータスクとバージョン付けされたクラスタータスクの無効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、OpenShift Pipeline Operator がインストールしたクラスタータスクを無効にできます。
手順
バージョン付けされていないクラスタータスクおよび最新のバージョン付けされたクラスタータスクをすべて削除するには、
TektonConfigカスタムリソース定義 (CRD) を編集し、spec.addon.paramsのclusterTasksパラメーターをfalseに設定します。TektonConfigCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスタータスクを無効にすると、Operator はすべてのバージョン付けされていないクラスタータスクおよび最新バージョンのバージョン付けされたクラスタータスクだけをクラスターから削除します。
注記クラスタータスクを再度有効にすると、バージョン付けされていないクラスタータスクがインストールされます。
オプション: バージョン付けされたクラスタータスクの以前のバージョンを削除するには、以下のいずれかの方法を使用します。
以前のバージョン付けされたクラスタータスクを個別に削除するには、
oc delete clustertaskコマンドの後にバージョン付けされたクラスタータスクの名前を使用します。以下に例を示します。oc delete clustertask buildah-1-6-0
$ oc delete clustertask buildah-1-6-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以前のバージョンの Operator によって作成されたバージョン付けされたクラスタータスクをすべて削除するには、対応するインストーラーセットを削除できます。以下に例を示します。
oc delete tektoninstallerset versioned-clustertask-1-6-k98as
$ oc delete tektoninstallerset versioned-clustertask-1-6-k98asCopy to Clipboard Copied! Toggle word wrap Toggle overflow Important古いバージョン付けされたクラスタータスクを削除する場合は、これを復元できません。Operator の現行バージョンが作成したバージョン付けされたクラスタータスクおよびバージョン付けされていないクラスタータスクのみを復元できます。