0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SpeceliftでGoogle CloudのIaC(Terraform)のCI/CDをサクッと試す

Posted at

IaCのCI/CDツールとしては、Terraform Cloudが有名な気がするが、Speceliftというツールを試してみた。

準備

Speceliftのアカウント発行

Top Pageからアカウントを作成する。今回はGitHubアカウントを利用した。
リポジトリは、デフォルトではAllになっているが、必要なもののみにした方が安全と思う。

Stack作成

Stacks · pict3 2022-07-03 17-14-51.png

Speceliftにて操作する。
右上のボタンからStackを作る。
設定内容はシンプルなので、直感的に進められると思う。自分自身が少し躓いたのが、今回の検証用にリポジトリを作成した際に、最初は空のままだった。そのため、ブランチがブランクのままで進めることができなかった。
とりあえず、README.mdをmainブランチにPushすることで進めることができた。

Google CloudのIntegration設定

Speceliftにて操作する。
作ったStackのSettingタブからIntegrationsパネルを開く。
DropDownリストからGoogle Cloud Platform(余談だが、これは旧名で今はGoogle Cloudと呼ぶべき)を選択する。
サービスアカウントが表示されるので控えておく。

IAMのprincipalを追加

Google Cloudコンソールから操作。
サービスアカウントを登録する。公式ガイダンスではOrganizationレベルでの設定が例示されているが、本当にそのニーズがない限りはやめた方がいいと思う。そしてそのニーズが発生することはあまりないと思っている。
今回は、プロジェクトレベルで設定した。

以上で、準備完了!

CI/CDを試す

Terraformテンプレートの作成

適当なTerraformテンプレートを作る。
ここでは以下のようなものを作った。

provider "google" {
  project = "<Your Project>"
}

resource "google_storage_bucket" "MULTI_REGIONAL" {
  name     = "<Bucket name>"
  storage_class = "MULTI_REGIONAL"
  location = "us"
}

TerraformテンプレートのPUSH

リポジトリにPUSHすると、SpeceliftのStackが発動する。Speceliftのサービス側でコンテナが生成されて実行されているらしい。
TerraformのPlanが終わると、SpeceliftにてConfirm待ちとなる。

redeploy bucket · test google cloud 2022-07-03 16-35-33.png

Planの内容を確認して、Confirmボタンを押下すれば、Applyされてリソースが生成される。

コードを変更して再度PUSHすれば、もう一度、Stackが発火する。

Speceliftで確認

StackがCompleteされると共に、他のUIにも反映される。

こちらは、リソース一覧。ユーザーとそのユーザーが作成したリソースが紐づけられて表示される。
Spacelift 2022-07-03 17-41-08.png

こちらは、実行履歴。ユーザーまたはコミットが、どのStackを発動させたのか、またその結果を確認できる。
カーソルを合わせると、具体的なユーザー名も確認できる。
Spacelift 2022-07-03 17-42-42.png

まとめ

CI/CDの構築は、実際には運用まで考えた設計をしないと、将来破綻することが多い。
とくにインフラ部分まで含めたCI/CDを作る場合、同一のパイプラインに集約するのか分割するのか、そもそも本当にインフラ部分もIaCを継続的に管理していくのか考えるべきことは多い。

ただ、サクッと試す分には非常に簡単で、UIも直感的で綺麗なので興味のある方は試してみましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?