基本的に
git clone https://github.com/hashicorp-education/learn-terraform-provision-aks-cluster
でよいのですが、はまったところがあったので注意点
必ず下記コマンドを実行し、メモすること
az login
az ad sp create-for-rbac --skip-assignment
コード
aks-cluster.tf
provider "azurerm" {
subscription_id = ""
skip_provider_registration=true
features {}
}
resource "azurerm_resource_group" "default" {
name = "${random_pet.prefix.id}-rg"
location = "West US 2"
tags = {
environment = "Demo"
}
}
resource "azurerm_kubernetes_cluster" "default" {
name = "${random_pet.prefix.id}-aks"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
dns_prefix = "${random_pet.prefix.id}-k8s"
kubernetes_version = "1.30" #バージョンに注意
default_node_pool {
name = "default"
node_count = 2
vm_size = "Standard_D2_v2"
os_disk_size_gb = 30
}
service_principal {
client_id = var.appId
client_secret = var.password
}
role_based_access_control_enabled = true
tags = {
environment = "Demo"
}
}
terraform.tfvars
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
appId = ""ちゃんと入力すること
password = ""ちゃんと入力すること
variables.tf
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
variable "appId" {
description = "Azure Kubernetes Service Cluster service principal"
}
variable "password" {
description = "Azure Kubernetes Service Cluster password"
}
versions.tf
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "3.67.0"
}
}
required_version = ">= 0.14"
}
outputs.tf
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
output "resource_group_name" {
value = azurerm_resource_group.default.name
}
output "kubernetes_cluster_name" {
value = azurerm_kubernetes_cluster.default.name
}
# output "host" {
# value = azurerm_kubernetes_cluster.default.kube_config.0.host
# }
# output "client_key" {
# value = azurerm_kubernetes_cluster.default.kube_config.0.client_key
# }
# output "client_certificate" {
# value = azurerm_kubernetes_cluster.default.kube_config.0.client_certificate
# }
# output "kube_config" {
# value = azurerm_kubernetes_cluster.default.kube_config_raw
# }
# output "cluster_username" {
# value = azurerm_kubernetes_cluster.default.kube_config.0.username
# }
# output "cluster_password" {
# value = azurerm_kubernetes_cluster.default.kube_config.0.password
# }