4.6. 開発者パースペクティブを使用した Red Hat OpenShift Pipelines の使用

OpenShift Container Platform Web コンソールの Developer パースペクティブを使用して、ソフトウェア配信プロセスの CI/CD パイプラインを作成できます。

Developer パースペクティブ:

  • AddPipelinePipeline Builder オプションを使用して、アプリケーションのカスタマイズされたパイプラインを作成します。
  • AddFrom Git オプションを使用して、OpenShift Container Platform でアプリケーションを作成する間に Operator によってインストールされたパイプラインテンプレートおよびリソースを使用してパイプラインを作成します。

アプリケーションのパイプラインの作成後に、Pipelines ビューでデプロイされたパイプラインを表示し、これらと視覚的に対話できます。Topology ビューを使用して、From Git オプションを使用して作成されたパイプラインと対話することもできます。Pipeline Builder を使用して作成されたパイプラインを Topology ビューに表示するには、カスタムラベルをこのパイプラインに適用する必要があります。

前提条件

4.6.1. Pipeline Builder を使用した Pipeline の構築

コンソールの Developer パースペクティブで、+AddPipelinePipeline Builder オプションを使用して以下を実行できます。

  • Pipeline ビルダー または YAML ビュー のいずれかを使用してパイプラインを設定します。
  • 既存のタスクおよびクラスタータスクを使用して、パイプラインフローを構築します。OpenShift Pipelines Operator をインストールする際に、再利用可能なパイプラインクラスタータスクをクラスターに追加します。
  • パイプライン実行に必要なリソースタイプを指定し、必要な場合は追加のパラメーターをパイプラインに追加します。
  • パイプラインの各タスクのこれらのパイプラインリソースを入力および出力リソースとして参照します。
  • 必要な場合は、タスクのパイプラインに追加されるパラメーターを参照します。タスクのパラメーターは、Task の仕様に基づいて事前に設定されます。
  • Operator によってインストールされた、再利用可能なスニペットおよびサンプルを使用して、詳細なパイプラインを作成します。

手順

  1. Developer パースペクティブの +Add ビューで、Pipeline タイルをクリックし、Pipeline Builder ページを表示します。
  2. Pipeline ビルダー ビューまたは YAML ビュー のいずれかを使用して、パイプラインを設定します。

    注記

    Pipeline ビルダー ビューは、限られた数のフィールドをサポートしますが、YAML ビュー は利用可能なすべてのフィールドをサポートします。オプションで、Operator によってインストールされた、再利用可能なスニペットおよびサンプルを使用して、詳細な Pipeline を作成することもできます。

    図4.1 YAML ビュー

    op pipeline yaml

    Pipeline Builder を使用して、パイプラインを設定します。

    1. Name フィールドにパイプラインの一意の名前を入力します。
    2. Tasks セクションで、Select Task 一覧からタスクを選択し、タスクをパイプラインに追加します。この例では、s2i-nodejs タスクを使用します。

      • 連続するタスクをパイプラインに追加するには、タスクの右側または左側にあるプラスアイコンをクリックし、Select Task 一覧から、パイプラインに追加する必要のあるタスクを選択します。この例では、s2i-nodejs タスクの右側にあるプラスアイコンを使用して、openshift-client タスクを追加します。
      • 並列のタスクを既存のタスクに追加するには、タスクの横に表示されるプラスアイコンをクリックし、Select Task 一覧からパイプラインに追加する必要のある並列タスクを選択します。

        図4.2 Pipeline Builder

        op pipeline builder
    3. Resources セクションで、Add Resources をクリックし、パイプライン実行用のリソースの名前およびタイプを指定します。これらのリソースは、パイプラインのタスクによって入力および出力として使用されます。この例では、以下のようになります。

      1. 入力リソースを追加します。Name フィールドに Source を入力してから、Resource Type ドロップダウンリストから Git を選択します。
      2. 出力リソースを追加します。Name フィールドに Img を入力してから、Resource Type ドロップダウンリストから イメージ を選択します。

        注記

        リソースが見つからない場合には、タスクの横に赤のアイコンが表示されます。

    4. オプション: タスクの Parameters は、タスクの仕様に基づいて事前に設定されます。必要な場合は、Parameters セクションの Add Parameters リンクを使用して、パラメーターを追加します。
    5. Workspaces セクションで、Add workspace をクリックし、Name フィールドに一意のワークスペース名を入力します。複数のワークスペースをパイプラインに追加できます。
    6. Tasks セクションで、s2i-nodejs タスクをクリックし、タスクの詳細情報が含まれるサイドパネルを表示します。タスクのサイドパネルで、s2i-nodejs タスクのリソースおよびパラメーターを指定します。

      1. 必要な場合は、Parameters セクションで、$(params.<param-name>) 構文を使用して、デフォルトのパラメーターにパラメーターをさらに追加します。
      2. Image セクションで、Resources セクションで指定されているように Img を入力します。
      3. Workspace セクションの source ドロップダウンからワークスペースを選択します。
    7. リソース、パラメーター、およびワークスペースを openshift-client タスクに追加します。
  3. Create をクリックし、Pipeline Details ページでパイプラインを作成し、表示します。
  4. Actions ドロップダウンメニューをクリックしてから Start をクリックし、Start Pipeline ページを表示します。
  5. Workspace セクションは、以前に作成したワークスペースを一覧表示します。それぞれのドロップダウンを使用して、ワークスペースのボリュームソースを指定します。Empty DirectoryConfig MapSecretPersistentVolumeClaim、または VolumeClaimTemplate のオプションを使用できます。

4.6.2. OpenShift Pipelines を使用したアプリケーションの作成

アプリケーションと共にパイプラインを作成するには、Developer パースペクティブの Add ビューで From Git オプションを使用します。詳細は、Developer パースペクティブを使用したアプリケーションの作成 を参照してください。

4.6.3. Developer パースペクティブを使用したパイプラインの使用

Developer パースペクティブの Pipelines ビューは、以下の詳細と共にプロジェクトのすべてのパイプラインを一覧表示します。

  • パイプラインが作成された namespace
  • 最後のパイプライン実行
  • パイプライン実行のタスクのステータス
  • パイプライン実行のステータス
  • 最後のパイプライン実行の作成時間

手順

  1. Developer パースペクティブの Pipelines ビューで、Project ドロップダウンリストからプロジェクトを選択し、そのプロジェクトのパイプラインを表示します。
  2. 必要なパイプラインをクリックし、Pipeline Details ページを表示します。

    デフォルトでは、Details タブには、すべてのシリアルタスク、並列タスク、finally タスク、およびパイプラインの式がすべて視覚的に表示されます。タスクと finally タスクは、ページの右下に一覧表示されます。一覧表示されている Tasks および Finally タスクをクリックして、タスクの詳細を表示します。

    図4.3 Pipeline の詳細

    Pipeline details
  3. オプション: Pipeline details ページで、Metrics タブをクリックして、パイプラインに関する以下の情報を表示します。

    • Pipeline 成功比率
    • Pipeline Run の数
    • Pipeline Run の期間
    • Task Run Balancing

      この情報を使用して、パイプラインのワークフローを改善し、パイプラインのライフサイクルの初期段階で問題をなくすことができます。

  4. オプション: YAML タブをクリックし、パイプラインの YAML ファイルを編集します。
  5. オプション: Pipeline Runs タブをクリックして、パイプラインの完了済み、実行中、または失敗した実行を確認します。

    Pipeline Runs タブでは、パイプライン実行、タスクのステータス、および失敗したパイプライン実行のデバッグ用のリンクの詳細が表示されます。Options メニュー kebab を使用して、実行中のパイプラインを停止するか、以前のパイプライン実行と同じパラメーターとリソースを使用してパイプラインを再実行するか、またはパイプライン実行を削除します。

    • 必要なパイプラインをクリックし、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 メニュー kebab を使用してタスク実行を削除します。

    • 必要なタスク実行をクリックして、Task Run details ページを表示します。実行に成功すると、ページ下部の Task Run results ペインに表示されます。

      注記

      Task Run details ページの Details セクションには、失敗したパイプライン実行の Log Snippet (ログスニペット) が表示されます。Log Snippet (ログスニペット) は、一般的なエラーメッセージとログのスニペットを提供します。Logs セクションへのリンクでは、失敗した実行に関する詳細へのクイックアクセスを提供します。

  6. Parameters タブをクリックして、パイプラインに定義されるパラメーターを表示します。必要に応じて追加のパラメーターを追加するか、または編集することもできます。
  7. 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 にインストールされ、利用可能であることを確認します。

手順

  1. クラスター管理者として OpenShift Container Platform Web コンソール にログインします。
  2. Administrator パースペクティブで、左側のナビゲーションパネルを使用して Pipelines セクションに移動します。

    1. Project ドロップダウンメニューから、openshift プロジェクトを選択します。これにより、後続の手順が openshift namespace で実行されます。
    2. 利用可能なパイプラインの一覧から、アプリケーションのビルドとデプロイに適したパイプラインを選択します。たとえば、アプリケーションに node.js ランタイム環境が必要な場合は、s2i-nodejs パイプラインを選択します。

      注記

      デフォルトのパイプラインテンプレートは編集しないでください。UI とバックエンドとの互換性がなくなる可能性があります。

    3. 選択したパイプラインの YAML タブで、Download をクリックし、YAML ファイルをローカルマシンに保存します。カスタム設定ファイルが失敗した場合は、このコピーを使用して作業設定を復元できます。
  3. デフォルトのパイプラインテンプレートを無効化 (削除) します。

    1. 左側のナビゲーションパネルを使用して、OperatorsInstalled Operators に移動します。
    2. Red Hat OpenShift PipelinesTekton Configuration タブ → configYAML タブをクリックします。
    3. 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 設定でデフォルトのパイプラインテンプレートのインストールを無効にできます。ただし、このような設定ではカスタマイズする必要のあるものだけでなく、すべてのデフォルトのパイプラインテンプレートを無効化 (削除) します。

  4. カスタムパイプラインテンプレートを作成します。

    1. 左側のナビゲーションパネルを使用して、Pipelines セクションに移動します。
    2. Create ドロップダウンメニューから、Pipeline を選択します。
    3. 必要なパイプラインを openshift namespace に作成します。デフォルト名とは別の名前を付けます (例: custom-nodejs)。ダウンロードしたデフォルトのパイプラインテンプレートを開始点として使用し、これをカスタマイズすることができます。

      注記

      openshift は Operator でインストールされるパイプラインテンプレートによって使用されるデフォルトの namespace であるため、openshift namespace にカスタムパイプラインテンプレートを作成する必要があります。アプリケーションがパイプラインテンプレートを使用する場合、テンプレートはそれぞれのプロジェクトの namespace に自動的にコピーされます。

    4. 作成されたパイプラインの Details タブで、カスタムテンプレートの Labels がデフォルトのパイプラインのラベルと一致することを確認します。カスタムパイプラインテンプレートには、アプリケーションのランタイム、タイプ、ストラテジーの正しいラベルが必要です。たとえば、OpenShift Container Platform にデプロイされる node.js アプリケーションの必須ラベルは以下のようになります。

      ...
      pipeline.openshift.io/runtime: nodejs
      pipeline.openshift.io/type: openshift
      ...
      注記

      ランタイムの環境とデプロイメントタイプの組み合わせごとに 1 つのパイプラインテンプレートのみを使用できます。

  5. Developer パースペクティブで、+AddGit RepositoryFrom Git オプションを使用して、作成およびデプロイするアプリケーションの種類を選択します。必要なランタイムとアプリケーションのタイプに基づいて、カスタムテンプレートが自動的に選択されます。

4.6.5. パイプラインの起動

パイプラインの作成後に、これを開始し、これに含まれるタスクを定義されたシーケンスで実行できるようにする必要があります。パイプラインを Pipelines ビュー、Pipeline Details ページ、または Topology ビューから開始できます。

手順

Pipelines ビューを使用してパイプラインを開始するには、以下を実行します。

  1. Developer パースペクティブの Pipelines ビューで、パイプラインに隣接する Options kebab メニューで、Start を選択します。
  2. Start Pipeline ダイアログボックスは、パイプライン定義に基づいて Git Resources および Image Resources を表示します。

    注記

    From Git オプションを使用して作成されるパイプラインの場合、Start Pipeline ダイアログボックスでは Parameters セクションに APP_NAME フィールドも表示され、ダイアログボックスのすべてのフィールドがパイプラインテンプレートによって事前に入力されます。

    1. namespace にリソースがある場合、Git Resources および Image Resources フィールドがそれらのリソースで事前に設定されます。必要な場合は、ドロップダウンを使用して必要なリソースを選択または作成し、Pipeline Run インスタンスをカスタマイズします。
  3. オプション: Advanced Options を変更し、認証情報を追加して、指定されたプライベート Git サーバーまたはイメージレジストリーを認証します。

    1. Advanced OptionsShow Credentials Options をクリックし、Add Secret を選択します。
    2. Create Source Secret セクションで、以下を指定します。

      1. シークレットの一意の シークレット名
      2. Designated provider to be authenticated セクションで、Access to フィールドで認証されるプロバイダー、およびベース Server URL を指定します。
      3. Authentication Type を選択し、認証情報を指定します。

        • Authentication Type Image Registry Credentials については、認証する Registry Server Address を指定し、UsernamePassword、および Email フィールドに認証情報を指定します。

          追加の Registry Server Address を指定する必要がある場合は、Add Credentials を選択します。

        • Authentication Type Basic Authentication については、UserName および Password or Token フィールドの値を指定します。
        • Authentication Type SSH Keys については、SSH Private Key フィールドの値を指定します。

          注記

          Basic 認証および SSH 認証には、以下のようなアノテーションを使用できます。

      4. シークレットを追加するためにチェックマークを選択します。

    パイプラインのリソースの数に基づいて、複数のシークレットを追加できます。

  4. Start をクリックしてパイプラインを開始します。
  5. Pipeline Run Details ページには、実行されるパイプラインが表示されます。パイプラインが開始すると、タスクおよび各タスク内のステップが実行されます。以下を実行することができます。

    • 各ステップの実行にかかった時間を表示するには、タスクにカーソルを合わせます。
    • タスクをクリックし、タスクの各ステップのログを表示します。
    • Logs タブをクリックして、タスクの実行シーケンスに関連するログを表示します。該当するボタンを使用して、ペインを展開し、ログを個別に、または一括してダウンロードすることもできます。
    • Events タブをクリックして、パイプライン実行で生成されるイベントのストリームを表示します。

      Task RunsLogs、および Events タブを使用すると、失敗したパイプラインの実行またはタスクの実行のデバッグに役立ちます。

      図4.4 パイプライン実行の詳細

      Pipeline run details
  6. From Git オプションを使用して作成されるパイプラインの場合、Topology ビューを使用して、開始後のパイプラインと対話することができます。

    注記

    Topology ビューで Pipeline Builder を使用して作成されるパイプラインを表示するには、パイプラインのラベルをカスタマイズし、パイプラインをアプリケーションのワークロードにリンクします。

    1. 左側のナビゲーションパネルで Topology をクリックし、アプリケーションをクリックしてサイドパネルでパイプラインの実行を表示します。
    2. Pipeline Runs セクションで、Start Last Run をクリックし、直前のパラメーターおよびリソースと同じパラメーターおよびリソースを使用して新規パイプライン実行を開始します。このオプションは、パイプライン実行が開始されていない場合は無効になります。

      図4.5 Topology ビューのパイプライン

      Pipelines in Topology view
    3. Topology ページで、アプリケーションの左側にカーソルを合わせ、アプリケーションのパイプライン実行のステータスを確認します。

      注記

      Topology ページのアプリケーションノードのサイドパネルには、特定のタスクの実行時にパイプライン実行が失敗する場合に Log Snippet (ログスニペット) が表示されます。Resources タブの Pipeline Runs セクションに Log Snippet を表示できます。Log Snippet (ログスニペット) は、一般的なエラーメッセージとログのスニペットを提供します。Logs セクションへのリンクでは、失敗した実行に関する詳細へのクイックアクセスを提供します。

4.6.6. Pipeline の編集

Web コンソールの Developer パースペクティブを使用して、クラスターの Pipeline を編集できます。

手順

  1. Developer パースペクティブの Pipelines ビューで、編集する必要のある Pipeline を選択し、Pipeline の詳細を表示します。Pipeline Details ページで Actions をクリックし、Edit Pipeline を選択します。
  2. Pipeline Builder ページで以下を行います。

    • 追加の Task、パラメーター、またはリソースを Pipeline に追加できます。
    • 変更する必要のある Task をクリックし、サイドパネルで Task の詳細を表示し、表示名、パラメーターおよびリソースなどの必要な Task の詳細を変更できます。
    • または、Task を削除するには、Task をクリックし、サイドパネルで Actions をクリックし、Remove Task を選択します。
  3. Save をクリックして変更された Pipeline を保存します。

4.6.7. Pipeline の削除

Web コンソールの Developer パースペクティブを使用して、クラスターの Pipeline を削除できます。

手順

  1. Developer パースペクティブの Pipelines ビューで、Pipeline に隣接する Options kebab メニューをクリックし、Delete Pipeline を選択します。
  2. Delete Pipeline 確認プロンプトで、Delete をクリックし、削除を確認します。