tech.guitarrapc.cóm

Technical updates

Pulumi のプラグインを確認する

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

qiita.com

Pulumi の各プロバイダの実装は Plugin として提供されています。 このプラグインを確認する方法を見てみましょう。

目次

TL;DR

  • Issue 報告などで Pulumi Version や Plugin バージョンを添えると圧倒的に手早い
  • pulumi plugin ls でpluginが確認ができる。
  • .NET (C#) では NuGet で管理されている

Pluginの確認

Plugin は、aws とか azure のように、どこの操作をするかのグループ。

pulumi plugin でプラグインの操作ができる。

$ pulumi plugin ls

NAME  KIND      VERSION  SIZE    INSTALLED   LAST USED
aws   resource  1.8.0    220 MB  6 days ago  6 days ago

TOTAL plugin cache size: 220 MB

GitHub

Plugin は、pulumi-xxxx という名前で GitHub 上でオープンに開発されている。

例えば、Awsプラグインなら、pulumi/pulumi-aws

.NET 実装では NuGet で参照される

Pulumi が生成する Infra.csproj を見ると Pulumi の Nuget が入っている。

  <ItemGroup>
    <PackageReference Include="Pulumi.Aws" Version="1.10.0-preview" />
    <PackageReference Include="Pulumi" Version="1.6.0-preview" />
  </ItemGroup>

多くの場合、Pulumi nuget は Pulumi.Aws など実際に使っているプロバイダの依存バージョンで暗黙的に利用されている。 しかし、Pulumi Nuget で修正されていて明示的に取得する必要があることがある。

Pulumi.Aws.Invokes.GetCallerIdentity throws System.NullReferenceException · Issue #801 · pulumi/pulumi-aws

この場合は、プロジェクトの NuGet 管理から PulumiPulumi.Aws NuGet を更新する。

Plugin の元ネタ

基本的に、Terraform をベースに書く言語実装が出力されている。

そのため、Plugin の挙動でもしよくわからないことがあったら、Terraform のリソースでそのパラメーターが受け付けられているかなどを確認すると動作したりもシエル。

バージョン履歴を見ると、現在どのバージョンの Terraform Provider をベースにしているかがわかる。

https://github.com/pulumi/pulumi-aws/blob/a113b17652528591ccee845ea27058de57265066/CHANGELOG.md#190-2019-11-16