tech.guitarrapc.cóm

Technical updates

ローカルPulumi ProjectとアカウントPulumi Project の紐づけ

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

qiita.com

あまりないのですが、時にすでにある 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.yamlPulumi.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 時です。

f:id:guitarrapc_tech:20191218013038p:plain

Pulumi Stack の紐づけ

Stack は、具体的な定義ファイルで紐づいていません。 Web上に State を持っているので、手元のプロジェクトを pulumi uppulumi stack select で紐づけるだけです。

ローカルのPulumi定義とWebを紐づけるのは、config ファイルで、Pulumi.STACKNAME.yaml というルールで存在します。

例えば、awsのregionがap-northeast-1 であるStack ekscluster があるなら次のようなYAMLファイルがあるでしょう。

config:
  aws:region: ap-northeast-1