我正在使用 terraform 创建 gke 集群,我的要求是明确提供集群和节点版本。我正在使用数据源来获取这些版本,尝试了很多选项,但无法提供集群和节点版本
数据块
data "google_container_engine_versions" "gke_version" {
location = us-central1-a
version_prefix = "1.25."
}
集群创建资源块
resource "google_container_cluster" "gke" {
name = var.cluster_name
location = var.cluster_location
networking_mode = var.networking_mode
network = var.network
subnetwork = var.subnetwork
remove_default_node_pool = var.remove_default_node_pool
initial_node_count = var.initial_node_count
ip_allocation_policy {
cluster_secondary_range_name = var.cluster_secondary_range_name
services_secondary_range_name = var.services_secondary_range_name
}
}
节点创建资源块
resource "google_container_node_pool" "permanent" {
name = var.permanent_pool_name
cluster = google_container_cluster.gke.id
node_count = var.permanent_node_count
management {
auto_repair = var.auto_repair
auto_upgrade = var.auto_upgrade
}
node_config {
preemptible = var.permanent_preemptible
machine_type = var.permanent_machine_type
disk_size_gb = var.permanent_disk_size_gb
disk_type = var.gke_disk_type
labels = {
type = var.permanent_labels
}
service_account = var.svc_account
oauth_scopes = [var.oauth_scopes]
}
}
如何在这些各自的资源块上提供集群和节点版本?
如果进行以下更改,您应该能够使用最新的 1.25.x 版本创建集群和节点池:
集群创建资源块
resource "google_container_cluster" "gke" {
name = var.cluster_name
location = var.cluster_location
networking_mode = var.networking_mode
network = var.network
subnetwork = var.subnetwork
initial_node_count = var.initial_node_count
ip_allocation_policy {
cluster_secondary_range_name = var.cluster_secondary_range_name
services_secondary_range_name = var.services_secondary_range_name
}
// changed:
remove_default_node_pool = true
min_master_version = data.google_container_engine_versions.gke_version.latest_master_version
release_channel {
channel = "UNSPECIFIED"
}
}
节点创建资源块
resource "google_container_node_pool" "permanent" {
name = var.permanent_pool_name
cluster = google_container_cluster.gke.id
node_count = var.permanent_node_count
node_config {
preemptible = var.permanent_preemptible
machine_type = var.permanent_machine_type
disk_size_gb = var.permanent_disk_size_gb
disk_type = var.gke_disk_type
labels = {
type = var.permanent_labels
}
service_account = var.svc_account
oauth_scopes = [var.oauth_scopes]
}
//changed:
management {
auto_repair = var.auto_repair
auto_upgrade = false
}
version = data.google_container_engine_versions.gke_version.latest_node_version
}