最小構成の Pulumi project (TypeScript) を作成する


これはなに

Pulumi の新規 Project 作成に関して公式ドキュメントでは、AWS, Google Cloud, Azure, Kubernetes を管理する前提となっており、 pulumi new aws-typescript, pulumi new azure-typescriptと記述されている。
複数クラウドを管理したい場合や、クラウドを管理する目的以外に Pulumi を利用する場合、余計な設定など含まれてしまうため以下のように作成しているのでメモです。

Pulumi CLI のインストール

以下 URL を参考に Pulumi CLI をインストールしてください。

使用する Node をインストール

今回は、 v16.3.0nodenv1 経由で設定する。

nodenv install 16.3.0

Pulumi project 用のディレクトリを作成

今回は、 pulumi ディレクトリ内にセットアップしていく。

mkdir pulumi && cd pulumi

使用する Node のバージョンを固定

nodenv local を実行し .node-version を作成します

nodenv local 16.3.0

今後セットアップに yarn を利用する場合

以下コマンドを実行し yarn を install してください

npm i -g yarn

Pulumi project を作成

pulumi new で TypeScript Project を作成すると、デフォルトで npm を利用します。
yarn を利用したい場合は PULUMI_EXPERIMENTALtrue を設定します 2

それぞれコマンド実行後 package install が実行されるので気長に待ちます。

npm を利用する場合

pulumi new typescript

yarn を利用する場合

GitHub 等で公開されている Project template から Project を作成する場合は Project側の設定に従ってください。

PULUMI_EXPERIMENTAL=true pulumi new typescript

コマンド実行後

Project のセットアップが終わると以下のようなディレクトリ構成になります。

drwxr-xr-x   11 mziyut  staff     352 Sep  5 22:24 .
drwxr-xr-x   14 mziyut  staff     448 Sep  5 22:21 ..
-rw-r--r--    1 mziyut  staff      21 Sep  5 22:22 .gitignore
-rw-r--r--    1 mziyut  staff       7 Sep  5 22:22 .node-version
-rw-r--r--    1 mziyut  staff      86 Sep  5 22:22 Pulumi.yaml
-rw-r--r--    1 mziyut  staff      42 Sep  5 22:22 index.ts
drwxr-xr-x  315 mziyut  staff   10080 Sep  5 22:33 node_modules
-rw-r--r--    1 mziyut  staff     253 Sep  5 22:33 package.json
-rw-r--r--    1 mziyut  staff     438 Sep  5 22:22 tsconfig.json
-rw-r--r--    1 mziyut  staff  135600 Sep  5 22:33 yarn.lock

ここまで実行すれば、最小構成のPulumi projectの作成は完了です。