この記事は、Pulumi dotnet Advent Calendar 2019 の16日目です。
Pulumi を WebUI でProject/Stack 配下で管理するということは、ほかの Project/Stack に移動したいときに何か操作がいりそうですね。 それをどうするのか見てみましょう。
この記事の内容までで概ね、完全に理解した()といいたくなるのではないでしょうか。
目次
TL;DR
- Pulumi は state をExport することで他の Pulumi Project に取り込むための json を取得できる
- Exportされた json を取り込むときは Import を使う
Summary
State をほかの Pulumi Project で利用することが考えられる。 普段はまず意識する機会が少ないだろうが動作を確認しておく。
terraform でいうところの tfstate をほかの backend で管理するときの操作に相当する。
export
pulumi の Stack にある state を出力する。Pulumi のプロジェクトがあるパスでないと動作しないので注意。
pulumi stack export > stack.json
例えば空のスタックは次の state になっている。
{ "version": 3, "deployment": { "manifest": { "time": "2019-11-20T12:45:40.5026846+09:00", "magic": "1d5f3b62e78892f89b30a2cc29a7eee340fe39a0f777515c72079024e9b448a6", "version": "v1.5.2" }, "secrets_providers": { "type": "service", "state": { "url": "https://api.pulumi.com", "owner": "guitarrapc", "project": "pulumi", "stack": "dev" } } } }
Import
標準出力からpulumiの Stack に State をインポートする。
pulumi stack import < stack.json
どこかの Stack を丸っと別の Pulumi アカウントにお引越しするときなどに便利。