-
解説ブログも参考に
-
AKSとTerraform、Fluxの知識が前提です
-
プライベートリポジトリでの実行をおすすめします
- センシティブな変数はGitHubで設定したシークレットを読み込むようにしていますが、terraform planの結果がプルリクのコメントに表示されますのでご注意を
-
Terraform実行の起点は /src/dev です
-
リソース量にご注意を
- AKSのノードプールが2つ作られます。ノードVMのタイプと数は必要に応じて調整してください
- default: Standard_D2s_v3 * 2 (Autoscale to 5)
- system: Standard_F2s_v2 *2
- AKSのノードプールが2つ作られます。ノードVMのタイプと数は必要に応じて調整してください
-
TerraformのバックエンドはTerraform Cloudを指定しています
-
Terraform Cloud WorkspaceのExecution Modeは"Local"にします
-
環境ごとのバックエンドファイルを /src/dev に用意していますので、organizationを適宜変更ください
- ローカル開発の場合にはバックエンドを指定して初期化してください
terraform init -backend-config=backend-dev-local.hcl
-
-
Terraformのvariableには環境変数から渡す方針です
- ローカル実行では /src/scripts の下に置いたスクリプトを参考に
- GitHub ActionsでのCIにはci.ymlのjobs.terraform.envを参考に
-
Fluxを使う場合は参照先のリポジトリを指定してください
-
Azure Monitorのワークスペースは既にある前提で、variableに設定します
- クラスター削除後にログが見たい、なんてこともあるので、ワークスペースは動的に作成削除しないようにします
-
AKS関連リソースが入るリソースグループ(MC_*)の外にあるリソースには、SystemAssigned指定で作られるManaged Identityから操作する権限がないため、必要な場合はSystemAssignedではなくサービスプリンシパルを指定します
- もしくはSystemAssined指定で作成したManaged Identityに必要な権限を割り当てます
- 例: AKSを既存の別リソースグループにあるVNetに参加させる場合に、オートスケール時にサブネット操作するための権限割当が必要(参考スクリプト)
- このサンプルもVNetは別途作成していますので、オートスケールを有効にする場合にはterraform apply後に上記スクリプトで権限を割り当てください
-
masterブランチのコードで環境を再現する仕組みも置いておきます
- GitHubでIssueを作って"repro"というラベルを付けるとterraform applyが走ります
- ラベルを外すとdestroyが走ります
- サンプルコードは以下に説明するsystem nodepoolの分離を行う意欲マシマシ版なので、時間がかかります
-
Terraformが現時点で未対応の機能は、Azure CLIとkubectlで補完します
- たとえばsystem nodepoolの指定、Critical AddonたちへnodeSelectorの指定とマイグレーション
- いずれAKSのAPIとHCLで吸収できると期待しています
- 環境再現ワークフローにその参考例を書いています
- たとえばsystem nodepoolの指定、Critical AddonたちへnodeSelectorの指定とマイグレーション
torumakabe/aks-bootstrap-202005
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published