I am creating gke cluster using terraform my requirement to provide cluster and node version explicitly. I am using data source to get those version tried many option not able to provide cluster and node version
Data block
data "google_container_engine_versions" "gke_version" {
location = us-central1-a
version_prefix = "1.25."
}
Cluster creation resource block
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
}
}
Node creation resource block
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]
}
}
How can I provide cluster and node version on these respective resource block ?
You should be able to create a cluster and nodepool with the latest 1.25.x version if you make these changes:
Cluster creation resource block
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"
}
}
Node creation resource block
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
}