Appearance
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の構成要素を表にすると以下のようになります。
名称 | 説明 |
---|---|
AssemblyLine | Pipelineを組み合わせたワークフロー |
Pipeline | Taskが集まった一連の処理 |
Task | Pipelineを構成する最小単位の処理 |
Step | Taskを構成する最小単位の処理 |
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
のコンパイルは以下の手順で行います。
- 左メニューより、AssemblyLineを選択します。
- 画面上部の
COMPILE & APPLY PIPELINE/TASK
ボタンを押下します。
Applicationの一覧からNginx Demoを選択します。
GitRevisionにmainと入力します。
画面右下の
COMPILE
ボタンを押下します。処理が完了したら画面下部の
APPLY
ボタンを押下します。処理が完了したらAssemblyLineの画面に戻り、画面右上の
PIPELINE
ボタンを押下します。Pipeline一覧に
nginx-demo-deploy
とnginx-demo-resolve-ip-address-after-deploy
が表示されていることを確認します。再度AssemblyLineの画面に戻り、画面右上の
TASK
ボタンを押下しますTask一覧に
nginx-demo-git-checkout
、nginx-demo-compile-design-pattern
、nginx-demo-deployment-worker
、nginx-demo-resolve-ip-address
が表示されていることを確認します。
以上で qvs.yaml
のコンパイルとPipeline、Taskの登録は完了です。
3-2. AssemblyLineの登録と確認
Pipelineを組み合わせたワークフローである AssemblyLine を登録します。 AssemblyLineもPipeline、Taskと同様に、AssemblyLine の定義が記載されたファイルを用いて生成します。
左メニューより、AssemblyLineを選択します。
画面上部の
NEW ASSEMBLYLINE
ボタンを押下します。AssemblyLineの編集画面に移動したら、画面右上の
IMPORT
ボタンを押下します。インポート画面に移動したら、サンプルアプリケーションのリポジトリに含まれる .valuestream/kubernetes/assemblyline-staging.yaml の内容を全てコピーして、YAMLエディタに貼り付けます。
IMPORT
ボタンを押下します。インポートに成功するとAssemblyLine登録画面に内容が反映されます。
画面下部の
SAVE
ボタンを押下します。登録が完了するとAssemblyLine一覧画面に遷移します。画面中央に表示される
staging-deploy
を選択します。AssemblyLineを構成するPipeline Stagesとして、
deploy
とresolve-ip-address
が表示されることを確認します。
表示されていればAssemblyLineの登録と確認は完了です。