# GKE cluster resource "google_container_cluster" "primary" { name = "${var.project}-gke" location = var.region # We can't create a cluster with no node pool defined, but we want to only use # separately managed node pools. So we create the smallest possible default # node pool and immediately delete it. remove_default_node_pool = true initial_node_count = 1 network = google_compute_network.vpc.name subnetwork = google_compute_subnetwork.subnet.name deletion_protection = false # Use this only for study purposess depends_on = [google_compute_network.vpc, google_compute_subnetwork.subnet] # min_master_version = "1.26.5-gke.1200" } # Separately Managed Node Pool resource "google_container_node_pool" "primary_nodes" { name = google_container_cluster.primary.name location = var.region cluster = google_container_cluster.primary.name node_count = var.gke_num_nodes node_config { oauth_scopes = [ "https://www.googleapis.com/auth/logging.write", "https://www.googleapis.com/auth/monitoring", ] labels = { env = var.project } preemptible = true machine_type = "custom-2-4096" # 1 core too low for Prometheus... tags = ["gke-node", "${var.project}-gke"] metadata = { disable-legacy-endpoints = "true" } } depends_on = [google_container_cluster.primary] }