この記事は、Pulumi dotnet Advent Calendar 2019の22日目です。
あまりないのですが、時にすでにあるProjectとローカルのpulumiを紐づけたいときがあります。
そんなときにどうやればいいのか見ておきます。
概要
- アカウントのProjectとの紐づけは、Pulumi.yamlで行っている
pulumi upしたディレクトリと同一名のstackがあればそれをつかい、なければ聞かれるのでそこで紐づける
Summary
Pulumiは、 Project - Stackという構造で組まれています。
アカウントは複数のProjectを持つことができ、Projectは複数のStackを持つことができます。
そのため、手元のプロジェクトを、他のプロジェクトやStackと紐づけたい場合には、そのプロジェクトで明示したり、 pulumi up時にstackの選択/stackの作成します。
Pulumi Project の紐づけ
ローカルのPulumi定義を見てみると、Pulumi.yamlとPulumi.STACKNAME.yamlがあります。
このうち、Pulumi Projectと現在のPulumi定義の紐づけを行っているのが、Pulumi.yamlです。
例えば、Project名にaws-sandbox、ランタイムにC#、概要をAWSサンドボックスのプロジェクトであることを明示するなら次のようになります。
name: aws-sandbox runtime: dotnet description: AWS Sandbox Project
このYAMLが定義の元であるため、Web上の表示はYAMLの内容で表示されます。
表示の更新タイミングは、pulumi up時です。

Pulumi Stack の紐づけ
Stackは、具体的な定義ファイルで紐づいていません。
Web上にStateを持っているので、手元のプロジェクトをpulumi upやpulumi stack selectで紐づけるだけです。
ローカルのPulumi定義とWebを紐づけるのは、configファイルで、Pulumi.STACKNAME.yamlというルールで存在します。
例えば、awsのregionがap-northeast-1であるStack eksclusterでは、次のようなYAMLファイルがあるでしょう。
config: aws:region: ap-northeast-1