tech.guitarrapc.cóm

Technical updates

Pulumi の state を Export したり Importする

この記事は、Pulumi dotnet Advent Calendar 2019 の16日目です。

qiita.com

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 アカウントにお引越しするときなどに便利。