Skip to content

qvsctl manifest compile

Infrastructure Adapter をコンパイルして Application Manifestを生成します。

使い方

qvsctl manifest compile -c ${applicationConfig} [-p ${parameterFile} -o ${outputFileOrDir}]

説明

Infrastructure Adapter をコンパイルして Manifest を生成します。

QVS Config と 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 と一緒にコンパイルすることで、k8sNamespaceimageNameという2つのパラメータにそれぞれ value 相当の値を渡すためのファイルです。

{
  "params": [
    {
      "name": "k8sNamespace",
      "value": "test-namespace"
    },      
    {
      "name": "imageName",
      "value": "nginx:latest"
    }
  ]
}

注意点として Application Manifest を生成する際、パラメータファイルは必須となります。パラメータを必要としない QVS Config を利用する場合は次のように パラメータのリストが空のパラメータファイルを用意してください。

{
  "params": []
}

また、通常 QVS Config に記述された リモートの module を取得して利用しますが、-m オプションを利用することでローカルのモジュールを利用するように動作を変更できます。

// e.g. カレントディレクトリをモジュールディレクトリとして指定してコンパイル実行
qvsctl manifest compile -c qvs.yaml -m .

出力先として末尾に拡張子がない文字列を指定した場合はディレクトリのパスとして扱い、ファイル名を manifests.yml として Manifest を書き出します。拡張子がある場合はファイル名が指定されたパスとして扱いファイルを出力します。

オプション

  -c, --qvsconfig string    QVS Config のファイルパス
  -m, --module-dir string   ローカルのモジュールを利用する場合には、モジュールのディレクトリを指定
  -o, --out string          生成した Application Manifest を出力するディレクトリまたはファイル (Default: output/)
  -p, --param-file string   Infrastructure Adapter に渡されるパラメータが記述された json ファイル (Default: ./params.json)