Skip to content

3. CI/CDパイプラインの登録

本章では、アプリケーションをデプロイするためのCI/CDパイプラインを登録します。

Qmonus Value Streamでは、CI/CDパイプラインを構成する要素として Task, Pipeline, AssemblyLine という三つのリソースが存在します。CI/CDパイプラインの最小単位がTask、複数のTaskをまとめたものがPipeline、複数のPipelineをまとめたものがAssemblyLineです。

AssemblyLineによってPipelineの実行順序やパラメータをカスタマイズすることで、要件に対応したCI/CDパイプラインを柔軟に作成できます。 同様に、Pipelineに含まれるTaskを組み替えることで、Pipeline自体をカスタマイズすることも可能です。

AssemblyLineの構成要素を表にすると以下のようになります。

名称説明
AssemblyLinePipelineを組み合わせたワークフロー
PipelineTaskが集まった一連の処理
TaskPipelineを構成する最小単位の処理
StepTaskを構成する最小単位の処理

AssemblyLine、Pipeline、Task、Stepの関係。

AssemblyLine, Pipeline, Task, Stepの関係は以下のようになっています。

例:2つのPipeline(Pipeline(A), Pipeline(B))から構成されているAssemblyLineがあり、それぞれのPipelineが2つのTaskから構成されている時。

AssemblyLine
    ├── Pipeline(A)
    │    ├──Task
    │    │   ├──Step
    │    │   ├──Step
    │    └──Task
    │        ├──Step
    │        └──Step
    └── Pipeline(B)
         ├──Task
         │   ├──Step
         │   ├──Step
         └──Task
             ├──Step
             └──Step

今回は以下の図に示すように、サンプルアプリケーションをデプロイするための2つのPipelineと、それらのPipelineをまとめたAssemblyLineを登録します。

登録するPipelineは、NginxやLoadBalancerをデプロイするdeployという名称のPipelineと、デプロイしたアプリケーションにアクセスするためにLoadBalancerの外部IPアドレスを取得するresolve-ip-addressという名称のPipelineです。 この2つのPipelineを登録できたら、登録した2つのPipelineを利用したAssemblyLineを登録します。

3-1. Task,Pipelineの登録

最初にAssemblyLineを登録するためのPipelineとTaskを登録します。 PipelineとTaskを登録するにはサンプルアプリケーションのリポジトリに含まれるqvs.yamlをコンパイルする必要があります。 Qmonus Value Streamは、qvs.yaml に書かれたPipelineの定義を読み取り、PipelineとTaskを生成します。

qvs.yaml のコンパイルは以下の手順で行います。

  1. 左メニューより、AssemblyLineを選択します。

  1. 画面上部の COMPILE & APPLY PIPELINE/TASK ボタンを押下します。

  1. Applicationの一覧からNginx Demoを選択します。

  2. GitRevisionにmainと入力します。

  3. 画面右下の COMPILE ボタンを押下します。

  4. 処理が完了したら画面下部のAPPLYボタンを押下します。

  5. 処理が完了したらAssemblyLineの画面に戻り、画面右上のPIPELINEボタンを押下します。

  6. Pipeline一覧にnginx-demo-deploynginx-demo-resolve-ip-address-after-deployが表示されていることを確認します。

  7. 再度AssemblyLineの画面に戻り、画面右上のTASKボタンを押下します

  8. Task一覧にnginx-demo-git-checkoutnginx-demo-compile-design-patternnginx-demo-deployment-workernginx-demo-resolve-ip-addressが表示されていることを確認します。

以上で qvs.yaml のコンパイルとPipeline、Taskの登録は完了です。

3-2. AssemblyLineの登録と確認

Pipelineを組み合わせたワークフローである AssemblyLine を登録します。 AssemblyLineもPipeline、Taskと同様に、AssemblyLine の定義が記載されたファイルを用いて生成します。

  1. 左メニューより、AssemblyLineを選択します。

  2. 画面上部の NEW ASSEMBLYLINE ボタンを押下します。

  3. AssemblyLineの編集画面に移動したら、画面右上の IMPORT ボタンを押下します。

  4. インポート画面に移動したら、サンプルアプリケーションのリポジトリに含まれる .valuestream/kubernetes/assemblyline-staging.yaml の内容を全てコピーして、YAMLエディタに貼り付けます。

  5. IMPORT ボタンを押下します。

  6. インポートに成功するとAssemblyLine登録画面に内容が反映されます。

  7. 画面下部の SAVE ボタンを押下します。

  8. 登録が完了するとAssemblyLine一覧画面に遷移します。画面中央に表示されるstaging-deployを選択します。

  9. AssemblyLineを構成するPipeline Stagesとして、deployresolve-ip-address が表示されることを確認します。

表示されていればAssemblyLineの登録と確認は完了です。