Appearance
qvsctl pipeline compile
CI/CD Adapter をコンパイルして Pipeline Manifest を生成します。
使い方
qvsctl pipeline compile -c ${applicationConfig} [-o ${outputFileOrDir}] [--prefix ${prefix}]
説明
CI/CD Adapter をコンパイルして Manifest (Tekton Pipeline/Task) を生成します。
QVS Config を指定することで Adapter を利用して Manifest を生成します。 QVS Config の仕様については QVS Config を参照してください。
モジュールパスの指定
リモートにあるGitリポジトリのadapterをモジュールとして利用する場合は、リポジトリへの接続方法に応じて以下の環境変数を設定してください。
- HTTPS接続用:
GIT_TOKEN
- SSH接続用:
GIT_SSH_KEY_PATH
Warning
これまでGitアクセストークンの指定にはGITHUB_TOKEN
という環境変数を用いていましたが、こちらは非推奨となります。
HTTPS接続にはGIT_TOKEN
を使用してください。
// Gitのアクセストークンを環境変数GIT_TOKENに設定
export GIT_TOKEN=ghp_AbCdefghiJklmnopqrStuVwXyz1234567890
// SSH接続用の秘密鍵の絶対パスを環境変数GIT_SSH_KEY_PATHに設定
export GIT_SSH_KEY_PATH=/home/user/.ssh/id_ecdsa
通常 QVS Config に記述された リモートのモジュールを取得して利用しますが、-m
オプションを利用することでローカルのモジュールを利用するように動作を変更できます。
// e.g. カレントディレクトリをモジュールディレクトリとして指定してコンパイル実行
qvsctl pipeline compile -c qvs.yaml -m .
出力先の指定
-o
オプションを使用することでManifestの出力先としてディレクトリもしくはファイルを指定できます。指定した文字列に拡張子を含まない場合にはディレクトリとして扱い、指定されたディレクトリを作成して manifests.yml
を出力します。指定した文字列に拡張子を含む場合にはファイル名を含むパスとして扱い、指定したファイルに出力します。
// e.g. ディレクトリのみ指定する場合
qvsctl pipeline compile -c qvs.yaml -m . -o pipeline1
ls pipeline1/
manifests.yml
// e.g. ファイル名も指定する場合
qvsctl pipeline compile -c qvs.yaml -m . -o pipeline2/sample-manifests.yml
ls pipeline2/
sample-manifests.yml
プレフィックスの指定
Pipeline/Taskへのプレフィックスを指定する--prefix
オプションは任意ではありますが、このオプションを使用して、対応するQmonus Value StreamのApplicationごとに、同一のProjectで使用するPipeline/Taskの名前を分けることを推奨します。
例えば、Simple Deploy Adapter はユーザの実行環境にアプリケーションをデプロイするためのCI/CD Adapterですが、必要なパラメータはQVSのApplication単位で異なるため、生成されるPipeline/Taskをプレフィックスで区別して、qvsctl pipeline apply
コマンドで意図しない上書きが行われないようにすることが望ましいです。
// e.g. QVS Configで指定されたSimple Deploy Adapterから出力されるPipeline/Taskに`sample-app`プレフィックスを付与する
qvsctl pipeline compile -c qvs.yaml -m . --prefix sample-app
...
Successfully dumped manifests to output/manifests.yml
cat output/manifests.yml
Pipeline/Taskが以下のように出力されます。
yaml
kind: Pipeline
apiVersion: tekton.dev/v1beta1
metadata:
name: sample-app-deploy ## deploy Pipelineに`sample-app`プレフィックスが付与される
[...]
spec:
tasks:
- name: checkout
taskRef:
name: sample-app-git-checkout ## `sample-app`プレフィックスが付与されたgit-checkout Taskを指定している
[...]
[...]
[...]
---
kind: Task
apiVersion: tekton.dev/v1beta1
metadata:
name: sample-app-git-checkout ## git-checkout Taskに`sample-app`プレフィックスが付与される
[...]
[...]
Info
基本的にはプレフィックスを付与してください。プレフィックスを付与せずにコンパイルするケースは、Pipeline/Taskを各Applicationで共通としたい場合が考えられます。
オプション
-c, --qvsconfig string QVS Config のファイルパス
-m, --module-dir string ローカルのモジュールを利用する場合には、モジュールのディレクトリを指定
-o, --out string 生成した Application Manifest を出力するディレクトリまたはファイル (Default: output/)
--prefix string Tekton Pipeline/Task名の prefix となる文字列を指定