この記事は
YAMAP エンジニア Advent Calendar 2020 の 11 日目になる予定です。
尚、今後の「一例シリーズ」では、以下のようなネタを用意しています。
- Github Actions (CircleCI) で GKE にアプリケーションをデプロイする一例
- CloudWatch Logs にテストで断続的にログイベントを放り込む一例
頑張るぞ。
tl;dr
Terraform で GKE クラスタを構築してみたのでメモしておきます。あくまでも一例ですので、あしからず :bowing_man: でお願いいたします。
尚、本記事で登場するツールのバージョンについては、以下の通りです。
$ sw_vers ProductName: Mac OS X ProductVersion: 10.15.7 BuildVersion: 19H15 $ terraform version Terraform v0.13.5
一例
リポジトリ
この一例で作られるリソース
注意点
- GCP プロジェクトそのもの Terraform で作れるらしいけど、どうやって作るのか調べきれなかった
- 以下の API を有効にしてから、
terraform apply
する- Identity and Access Management (IAM) API
- Kubernetes Engine API
- Cloud Resource Manager API
- クラスタを操作出来るサービスアカウントについては、以下の権限が必要だった
- roles/resourcemanager.projectIamAdmin (sealed-secrets で作ったリソースを操作する際に必要だった)
- roles/compute.admin
- roles/storage.admin
- roles/container.admin
以上
GKE そのものは、Terraform 的には、以下の 2 つのリソースで作れるというのは簡単で良いなあと思いました。
まだまだ、Kubernetes も GKE も GCP も解っていないので、引き続き勉強していきたいと思います。