4.6. 開発者パースペクティブを使用した Red Hat OpenShift Pipelines の使用
OpenShift Container Platform Web コンソールの Developer パースペクティブを使用して、ソフトウェア配信プロセスの CI/CD パイプラインを作成できます。
Developer パースペクティブ:
-
Add
Pipeline Pipeline Builder オプションを使用して、アプリケーションのカスタマイズされたパイプラインを作成します。 -
Add
From Git オプションを使用して、OpenShift Container Platform でアプリケーションを作成する間に Operator によってインストールされたパイプラインテンプレートおよびリソースを使用してパイプラインを作成します。
アプリケーションのパイプラインの作成後に、Pipelines ビューでデプロイされたパイプラインを表示し、これらと視覚的に対話できます。Topology ビューを使用して、From Git オプションを使用して作成されたパイプラインと対話することもできます。Pipeline Builder を使用して作成されたパイプラインを Topology ビューに表示するには、カスタムラベルをこのパイプラインに適用する必要があります。
前提条件
- OpenShift Container Platform クラスターにアクセスでき、Developer パースペクティブ に切り替えている。
- クラスターに OpenShift Pipelines Operator がインストール されていること。
- クラスター管理者か、または create および edit パーミッションを持つユーザーであること。
- プロジェクトを作成していること。
4.6.1. Pipeline Builder を使用した Pipeline の構築
コンソールの Developer パースペクティブで、+Add
- Pipeline ビルダー または YAML ビュー のいずれかを使用してパイプラインを設定します。
- 既存のタスクおよびクラスタータスクを使用して、パイプラインフローを構築します。OpenShift Pipelines Operator をインストールする際に、再利用可能なパイプラインクラスタータスクをクラスターに追加します。
- パイプライン実行に必要なリソースタイプを指定し、必要な場合は追加のパラメーターをパイプラインに追加します。
- パイプラインの各タスクのこれらのパイプラインリソースを入力および出力リソースとして参照します。
- 必要な場合は、タスクのパイプラインに追加されるパラメーターを参照します。タスクのパラメーターは、Task の仕様に基づいて事前に設定されます。
- Operator によってインストールされた、再利用可能なスニペットおよびサンプルを使用して、詳細なパイプラインを作成します。
手順
- Developer パースペクティブの +Add ビューで、Pipeline タイルをクリックし、Pipeline Builder ページを表示します。
Pipeline ビルダー ビューまたは YAML ビュー のいずれかを使用して、パイプラインを設定します。
注記Pipeline ビルダー ビューは、限られた数のフィールドをサポートしますが、YAML ビュー は利用可能なすべてのフィールドをサポートします。オプションで、Operator によってインストールされた、再利用可能なスニペットおよびサンプルを使用して、詳細な Pipeline を作成することもできます。
図4.1 YAML ビュー
Pipeline Builder を使用して、パイプラインを設定します。
- Name フィールドにパイプラインの一意の名前を入力します。
Tasks セクションで、Select Task 一覧からタスクを選択し、タスクをパイプラインに追加します。この例では、s2i-nodejs タスクを使用します。
- 連続するタスクをパイプラインに追加するには、タスクの右側または左側にあるプラスアイコンをクリックし、Select Task 一覧から、パイプラインに追加する必要のあるタスクを選択します。この例では、s2i-nodejs タスクの右側にあるプラスアイコンを使用して、openshift-client タスクを追加します。
並列のタスクを既存のタスクに追加するには、タスクの横に表示されるプラスアイコンをクリックし、Select Task 一覧からパイプラインに追加する必要のある並列タスクを選択します。
図4.2 Pipeline Builder
Resources セクションで、Add Resources をクリックし、パイプライン実行用のリソースの名前およびタイプを指定します。これらのリソースは、パイプラインのタスクによって入力および出力として使用されます。この例では、以下のようになります。
-
入力リソースを追加します。Name フィールドに
Source
を入力してから、Resource Type ドロップダウンリストから Git を選択します。 出力リソースを追加します。Name フィールドに
Img
を入力してから、Resource Type ドロップダウンリストから イメージ を選択します。注記リソースが見つからない場合には、タスクの横に赤のアイコンが表示されます。
-
入力リソースを追加します。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 のオプションを使用できます。
4.6.2. OpenShift Pipelines を使用したアプリケーションの作成
アプリケーションと共にパイプラインを作成するには、Developer パースペクティブの Add ビューで From Git オプションを使用します。詳細は、Developer パースペクティブを使用したアプリケーションの作成 を参照してください。
4.6.3. Developer パースペクティブを使用したパイプラインの使用
Developer パースペクティブの Pipelines ビューは、以下の詳細と共にプロジェクトのすべてのパイプラインを一覧表示します。
- パイプラインが作成された namespace
- 最後のパイプライン実行
- パイプライン実行のタスクのステータス
- パイプライン実行のステータス
- 最後のパイプライン実行の作成時間
手順
- Developer パースペクティブの Pipelines ビューで、Project ドロップダウンリストからプロジェクトを選択し、そのプロジェクトのパイプラインを表示します。
必要なパイプラインをクリックし、Pipeline Details ページを表示します。
デフォルトでは、Details タブには、すべてのシリアルタスク、並列タスク、
finally
タスク、およびパイプラインの式がすべて視覚的に表示されます。タスクとfinally
タスクは、ページの右下に一覧表示されます。一覧表示されている Tasks および Finally タスクをクリックして、タスクの詳細を表示します。図4.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 ペインに表示されます。注記Pipeline Run Details ページの Details セクションには、失敗したパイプライン実行の Log Snippet (ログスニペット) が表示されます。Log Snippet (ログスニペット) は、一般的なエラーメッセージとログのスニペットを提供します。Logs セクションへのリンクでは、失敗した実行に関する詳細へのクイックアクセスを提供します。
Pipeline Run details ページで、Task Runs タブをクリックして、タスクの完了、実行、および失敗した実行を確認します。
Task Runs タブは、タスク実行に関する情報と、そのタスクおよび Pod へのリンクと、タスク実行のステータスおよび期間を提供します。Options メニュー を使用してタスク実行を削除します。
必要なタスク実行をクリックして、Task Run details ページを表示します。実行に成功すると、ページ下部の Task Run results ペインに表示されます。
注記Task Run details ページの Details セクションには、失敗したパイプライン実行の Log Snippet (ログスニペット) が表示されます。Log Snippet (ログスニペット) は、一般的なエラーメッセージとログのスニペットを提供します。Logs セクションへのリンクでは、失敗した実行に関する詳細へのクイックアクセスを提供します。
- Parameters タブをクリックして、パイプラインに定義されるパラメーターを表示します。必要に応じて追加のパラメーターを追加するか、または編集することもできます。
- Resources タブをクリックして、パイプラインで定義されたリソースを表示します。必要に応じて関連情報を追加するか、または編集することもできます。
4.6.4. Git リポジトリーからアプリケーションを作成およびデプロイするためのカスタムパイプラインテンプレートの使用
クラスター管理者は、Git リポジトリーからアプリケーションを作成し、デプロイするには、Red Hat OpenShift Pipelines 1.5 以降で提供されるデフォルトのパイプラインテンプレートを上書きするカスタムパイプラインテンプレートを使用できます。
この機能は、Red Hat OpenShift Pipelines 1.4 以前のバージョンでは利用できません。
前提条件
Red Hat OpenShift Pipelines 1.5 以降がすべての namespace にインストールされ、利用可能であることを確認します。
手順
- クラスター管理者として OpenShift Container Platform Web コンソール にログインします。
Administrator パースペクティブで、左側のナビゲーションパネルを使用して Pipelines セクションに移動します。
-
Project ドロップダウンメニューから、openshift プロジェクトを選択します。これにより、後続の手順が
openshift
namespace で実行されます。 利用可能なパイプラインの一覧から、アプリケーションのビルドとデプロイに適したパイプラインを選択します。たとえば、アプリケーションに
node.js
ランタイム環境が必要な場合は、s2i-nodejs パイプラインを選択します。注記デフォルトのパイプラインテンプレートは編集しないでください。UI とバックエンドとの互換性がなくなる可能性があります。
- 選択したパイプラインの YAML タブで、Download をクリックし、YAML ファイルをローカルマシンに保存します。カスタム設定ファイルが失敗した場合は、このコピーを使用して作業設定を復元できます。
-
Project ドロップダウンメニューから、openshift プロジェクトを選択します。これにより、後続の手順が
デフォルトのパイプラインテンプレートを無効化 (削除) します。
-
左側のナビゲーションパネルを使用して、Operators
Installed Operators に移動します。 -
Red Hat OpenShift Pipelines
Tekton Configuration タブ config YAML タブをクリックします。 openshift
namespace でデフォルトのパイプラインテンプレートを無効化 (削除) するには、pipelineTemplates
パラメーターをTektonConfig
カスタムリソース YAML でfalse
に設定し、これを保存します。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: profile: all targetNamespace: openshift-pipelines addon: params: - name: clusterTasks value: "true" - name: pipelineTemplates value: "false" ...
注記デフォルトのパイプラインテンプレートを手動で削除する場合、Operator はアップグレード時にデフォルトを復元します。
警告クラスター管理者は、Operator 設定でデフォルトのパイプラインテンプレートのインストールを無効にできます。ただし、このような設定ではカスタマイズする必要のあるものだけでなく、すべてのデフォルトのパイプラインテンプレートを無効化 (削除) します。
-
左側のナビゲーションパネルを使用して、Operators
カスタムパイプラインテンプレートを作成します。
- 左側のナビゲーションパネルを使用して、Pipelines セクションに移動します。
- Create ドロップダウンメニューから、Pipeline を選択します。
必要なパイプラインを
openshift
namespace に作成します。デフォルト名とは別の名前を付けます (例:custom-nodejs
)。ダウンロードしたデフォルトのパイプラインテンプレートを開始点として使用し、これをカスタマイズすることができます。注記openshift
は Operator でインストールされるパイプラインテンプレートによって使用されるデフォルトの namespace であるため、openshift
namespace にカスタムパイプラインテンプレートを作成する必要があります。アプリケーションがパイプラインテンプレートを使用する場合、テンプレートはそれぞれのプロジェクトの namespace に自動的にコピーされます。作成されたパイプラインの Details タブで、カスタムテンプレートの Labels がデフォルトのパイプラインのラベルと一致することを確認します。カスタムパイプラインテンプレートには、アプリケーションのランタイム、タイプ、ストラテジーの正しいラベルが必要です。たとえば、OpenShift Container Platform にデプロイされる
node.js
アプリケーションの必須ラベルは以下のようになります。... pipeline.openshift.io/runtime: nodejs pipeline.openshift.io/type: openshift ...
注記ランタイムの環境とデプロイメントタイプの組み合わせごとに 1 つのパイプラインテンプレートのみを使用できます。
-
Developer パースペクティブで、+Add
Git Repository From Git オプションを使用して、作成およびデプロイするアプリケーションの種類を選択します。必要なランタイムとアプリケーションのタイプに基づいて、カスタムテンプレートが自動的に選択されます。
4.6.5. パイプラインの起動
パイプラインの作成後に、これを開始し、これに含まれるタスクを定義されたシーケンスで実行できるようにする必要があります。パイプラインを 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 をクリックしてパイプラインを開始します。
Pipeline Run Details ページには、実行されるパイプラインが表示されます。パイプラインが開始すると、タスクおよび各タスク内のステップが実行されます。以下を実行することができます。
- 各ステップの実行にかかった時間を表示するには、タスクにカーソルを合わせます。
- タスクをクリックし、タスクの各ステップのログを表示します。
- Logs タブをクリックして、タスクの実行シーケンスに関連するログを表示します。該当するボタンを使用して、ペインを展開し、ログを個別に、または一括してダウンロードすることもできます。
Events タブをクリックして、パイプライン実行で生成されるイベントのストリームを表示します。
Task Runs、Logs、および Events タブを使用すると、失敗したパイプラインの実行またはタスクの実行のデバッグに役立ちます。
図4.4 パイプライン実行の詳細
From Git オプションを使用して作成されるパイプラインの場合、Topology ビューを使用して、開始後のパイプラインと対話することができます。
注記Topology ビューで Pipeline Builder を使用して作成されるパイプラインを表示するには、パイプラインのラベルをカスタマイズし、パイプラインをアプリケーションのワークロードにリンクします。
- 左側のナビゲーションパネルで Topology をクリックし、アプリケーションをクリックしてサイドパネルでパイプラインの実行を表示します。
Pipeline Runs セクションで、Start Last Run をクリックし、直前のパラメーターおよびリソースと同じパラメーターおよびリソースを使用して新規パイプライン実行を開始します。このオプションは、パイプライン実行が開始されていない場合は無効になります。
図4.5 Topology ビューのパイプライン
Topology ページで、アプリケーションの左側にカーソルを合わせ、アプリケーションのパイプライン実行のステータスを確認します。
注記Topology ページのアプリケーションノードのサイドパネルには、特定のタスクの実行時にパイプライン実行が失敗する場合に Log Snippet (ログスニペット) が表示されます。Resources タブの Pipeline Runs セクションに Log Snippet を表示できます。Log Snippet (ログスニペット) は、一般的なエラーメッセージとログのスニペットを提供します。Logs セクションへのリンクでは、失敗した実行に関する詳細へのクイックアクセスを提供します。
4.6.6. Pipeline の編集
Web コンソールの Developer パースペクティブを使用して、クラスターの Pipeline を編集できます。
手順
- Developer パースペクティブの Pipelines ビューで、編集する必要のある Pipeline を選択し、Pipeline の詳細を表示します。Pipeline Details ページで Actions をクリックし、Edit Pipeline を選択します。
Pipeline Builder ページで以下を行います。
- 追加の Task、パラメーター、またはリソースを Pipeline に追加できます。
- 変更する必要のある Task をクリックし、サイドパネルで Task の詳細を表示し、表示名、パラメーターおよびリソースなどの必要な Task の詳細を変更できます。
- または、Task を削除するには、Task をクリックし、サイドパネルで Actions をクリックし、Remove Task を選択します。
- Save をクリックして変更された Pipeline を保存します。
4.6.7. Pipeline の削除
Web コンソールの Developer パースペクティブを使用して、クラスターの Pipeline を削除できます。
手順
- Developer パースペクティブの Pipelines ビューで、Pipeline に隣接する Options メニューをクリックし、Delete Pipeline を選択します。
- Delete Pipeline 確認プロンプトで、Delete をクリックし、削除を確認します。