この記事は、Pulumi dotnet Advent Calendar 2019 の22日目です。
あまりないのですが、時にすでにある Project と ローカルのpulumi を紐づけたいときがあります。
そんなときにどうやればいいのか見ておきます。
目次
TL;DR
- アカウントの 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