Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pulumi v3.32.0 から YAML で記述できるようになった件 #111

Open
mziyut opened this issue Aug 30, 2023 · 0 comments
Open

Pulumi v3.32.0 から YAML で記述できるようになった件 #111

mziyut opened this issue Aug 30, 2023 · 0 comments
Assignees
Labels
articles Articles qiita Qiita yaml YAML

Comments

@mziyut
Copy link
Owner

mziyut commented Aug 30, 2023

Qiitaの下書きから移行

はじめに

Pulumi v3.32.0 から 今まで提供されていた Node.js(JavaScript, TypeScript), Python, Go, .NET に加え YAML, Java で記述出来るようになりました(2022/05/08 時点ベータとして提供されています)
今回は、テンプレート pulumi-aws-yaml を使い AWS 上に S3 bucket を作成してみました

Pulumi のバージョンについて

はじめににも記載した通り、 Pulumi の YAML (Java) は v3.32.0 以上を必要とします
Pulumi の実行環境に v3.32.0 以上がインストールされていることを確認してください

mziyut% pulumi --version

プロジェクトの作成

今回は、 AWS を取り扱うプロジェクトを作成するため、 pulumi aws�<-yaml を実行しプロジェクトを作成します

プロジェクト作業を行った際のディレクトリは下記場所です

mziyut% pwd

途中プロジェクト名と説明、 Stack 名及びデフォルトで利用する AWS のリージョンを聞かれます
作成したディレクトリ等から入力補助してくれるため、ほぼ変えず今回は以下のように指定しています

項目名 入力値
project name 未入力(pulumi-aws-yaml-test)
project description 未入力 (A minimal AWS Pulumi YAML program)
stack name 未入力 (dev)
aws:region ap-northeast-1
mziyut% pulumi new aws-yaml
This command will walk you through creating a new Pulumi project.

Enter a value or leave blank to accept the (default), and press <ENTER>.
Press ^C at any time to quit.

project name: (pulumi-aws-yaml-test)
project description: (A minimal AWS Pulumi YAML program)
Created project 'pulumi-aws-yaml-test'

Please enter your desired stack name.
To create a stack in an organization, use the format <org-name>/<stack-name> (e.g. `acmecorp/dev`).
stack name: (dev)
Created stack 'dev'

aws:region: The AWS region to deploy into: (us-east-1) ap-northeast-1
Saved config

Your new project is ready to go! ✨

To perform an initial deployment, run 'pulumi up'

プロジェクトの作成が完了したら以下のようなファイルが生成されます

mziyut% ls -la
total 16
drwxr-xr-x  4 mziyut  staff  128 May  8 20:25 .
drwxr-xr-x  5 mziyut  staff  160 May  8 20:23 ..
-rw-r--r--  1 mziyut  staff   37 May  8 20:25 Pulumi.dev.yaml
-rw-r--r--  1 mziyut  staff  244 May  8 20:24 Pulumi.yaml

普段、 Pulumi の JavaScript (TypeScript) を利用することが多く、 JavaScript (TypeScript) の場合 package.jsonnode_modules 等パッケージ管理に必要なファイル、ディレクトリが生成されますが YAML 特定の言語やパッケージに依存しないためとてもシンプルな構成でした

また、生成された Pulumi.yaml 及び Pulumi.dev.yaml は以下のように記述されています

mziyut% cat Pulumi.dev.yaml
config:
  aws:region: ap-northeast-1
mziyut% cat Pulumi.yaml
name: pulumi-aws-yaml-test
runtime: yaml
description: A minimal AWS Pulumi YAML program

resources:
  # Create an AWS resource (S3 Bucket)
  bucket:
    type: aws:s3:Bucket

outputs:
  # Export the name of the bucket
  bucketName: ${bucket.id}

生成したプロジェクトコードに AWS s3 の bucket を作成する定義があるため今回はこのまま利用します

適用 (pulumi up) を行う

適用を行った環境

今回は検証のため、 CI/CD 等組み込まず手元の PC から実行しました

mziyut% sw_vers

適用の準備

今回の適用先は、 AWS です
AWS のリソース作成を行うため認証情報を定義する必要があります

今回は AWS Console から IAM を作成 Access Key と Secret Access Key を生成しました

生成した Access Key と Secret Access Key は pulumi config コマンドを利用しプロジェクト内で利用できるように設定しました

適用の実施

プロジェクトの適用を行うコマンドは pulumi up です

mziyut% pulumi up

さいごに

まだベータ版のため、仕様等変わる可能性もありますが 特定の言語に依存せず、一度は書いたことがあるだろう 書き慣れた? YAML でインフラの構成管理が出来ることはとても魅力的だなと感じています
正式リリースがとても楽しみですね

@mziyut mziyut added articles Articles qiita Qiita yaml YAML labels Aug 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
articles Articles qiita Qiita yaml YAML
Projects
None yet
Development

No branches or pull requests

1 participant