この記事は、Pulumi dotnet Advent Calendar 2019の16日目です。
PulumiのWeb UIを見ると、stateはProject/Stack配下で管理されています。ということは、stateを他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アカウントにお引越しするときなどに便利。