Skip to content

作成したInfrastructure Adapterを利用したリソースのデプロイ

独自に作成したInfrastructure Adapterを利用してリソースをデプロイする方法を解説します。

QVS Configの更新

QVS ConfigのdesignPatternsフィールドにCI/CD Adapterを宣言します。

以下の例では、QVS ConfigにQmonus Value Streamが提供しているOfficial Cloud Native AdapterのCI/CD Adapterを宣言しています。

diff
params:
  - name: k8sNamespace
    type: string
  - name: imageName
    type: string

modules:
  - name: github.com/qmonus/sample-module
    local:
      path: .
+ - name: qmonus.net/adapter/official
+   revision: v0.39.0
designPatterns:     
  - pattern: github.com/qmonus/sample-module/local/web
    params:
      k8sNamespace: $(params.k8sNamespace)
      imageName:    $(params.imageName)
+ - pattern: qmonus.net/adapter/official/pipeline/deploy:simpleDeployByPulumiYaml
+   pipelineParams:
+     useCred:
+       kubernetes: true

これによって、QVS ConfigをコンパイルしたときにリソースをデプロイするためのPipeline Manifestを出力できます。

リポジトリに登録

作成したQVS ConfigとAdapterをリポジトリに登録します。

以下の例では、QVS Config、cue.mod、localディレクトリ配下に作成したAdapterをリポジトリに登録しています。

git add qvs.yaml cue.mod/ local/
git commit -m "任意のメッセージ"
git push

(任意) 作成したAdapterをリモートから参照する

作成したAdapterをリポジトリに登録した上で、QVS ConfigとAdapterを管理するリポジトリを分けたい場合は、QVS Configのmodulesフィールドを以下のようにを記載します。

yaml
modules:
  - name: github.com/qmonus/sample-module
    remote: 
      repo: <Adapterが登録されているリポジトリのURL>
      revision: <任意のリビジョン・タグ>
      path: <リポジトリのルートディレクトリから、cue.modまでのパス>

modulesフィールドについての詳細はQVS Configで指定する各フィールドの詳細を参照してください。

(任意) Official Cloud Native Adapterをダウンロードする

Official Cloud Native Adapterをご自身のリポジトリにダウンロードして利用したい場合、qvsctl adapter getコマンドを実行してダウンロードできます。

以下の例では、独自に作成したAdapterを格納している.valuestream配下にOfficial Cloud Native Adapterをダウンロードしています。

bash
cd .valuestream 
# 認証
qvsctl auth
# 最新版のOfficial Cloud Native Adapterをダウンロード
qvsctl adapter get qmonus.net/adapter/official 
# ダウンロードされたofficial Cloud Native Adapterのバージョンを確認
cat qvsctl.mod
# リポジトリに登録
git add cue.mod qvsctl.mod
git commit -m "任意のメッセージ"
git push

ダウンロードしたOfficial Cloud Native Adapterは、QVS Configに以下のように宣言して利用します。

diff
params:
  - name: k8sNamespace
    type: string
  - name: imageName
    type: string

modules:
  - name: github.com/qmonus/sample-module
    local:
      path: .
designPatterns:     
  - pattern: github.com/qmonus/sample-module/local/web
    params:
      k8sNamespace: $(params.k8sNamespace)
      imageName:    $(params.imageName)
+ - pattern: qmonus.net/adapter/official/pipeline/deploy:simpleDeployByPulumiYaml
+   pipelineParams:
+     useCred:
+       kubernetes: true

Qmonus Value Streamを利用してリソースをデプロイする

上述した内容を実施することで、作成したInfrastructure AdapterをQmonus Value Stream上で利用する準備が完了します。 以降のデプロイの手順については、リソースのデプロイを参照してください。