Skip to Content

Statefile の引数

Statefile の引数は、Liquid テンプレートを利用して Statefile を再利用するための仕組みです。
例として、my-deployment.yml という新しいファイルを作成し、次の内容を追加してください。

ApiVersion: v0.18 # Definition of your arguments # The type of argument, can be: # - String # - Number # - Boolean Args: - Name: name Kind: String - Name: domain Kind: String - Name: image Kind: String - Name: port Kind: String Namespace: global Cargoes: - Name: ${{ Args.name }} Containers: - Name: app Image: ${{ Args.image }} Resources: - Name: ${{ Args.domain }} Kind: ncproxy.io/rule/v0.15 Data: Rules: - Domain: ${{ Args.domain }} Network: Public Locations: - Path: / Target: Key: global.${{ Args.name }}.c Port: ${{ Args.port }}

これを次のように適用すると、

nanocl state apply -s my-deployment.yml

次のエラーメッセージが表示されます。

error: the following required arguments were not provided: --name <name> --domain <domain> --image <image> --port <port> Usage: nanocl state args -- --name <name> --domain <domain> --image <image> --port <port> For more information, try '--help'.

この Statefile は、レンダリングに使う引数を必要とします。

正しいコマンドは次のとおりです。

state apply -s my-deployment.yml -- --name deploy-example \ --domain deploy-example.com \ --image ghcr.io/next-hat/nanocl-get-started:latest \ --port 9000

このように、任意の HTTP サービスを簡単に素早くデプロイできます。
これで、便利な Statefile を作るための基本が身に付きました。

最終更新日