Skip to content

Instantly share code, notes, and snippets.

@id
Created August 31, 2024 07:08
Show Gist options
  • Save id/b40e4e647ab72233c343a4a1a4318a64 to your computer and use it in GitHub Desktop.
Save id/b40e4e647ab72233c343a4a1a4318a64 to your computer and use it in GitHub Desktop.
provider "google" {
project = "<project_id>"
region = "europe-central2"
}
variable "project_id" {
type = string
}
variable "region" {
default = "europe-central2"
}
variable "cluster_name" {
default = "emqx"
}
variable "kubernetes_version" {
default = "1.30.2-gke.1587003"
}
variable "kubernetes_node_version" {
default = "1.30.2-gke.1587003"
}
variable "node_pool_name" {
default = "emqx"
}
data "google_client_config" "default" {}
provider "kubernetes" {
host = "https://${module.gke.endpoint}"
token = data.google_client_config.default.access_token
cluster_ca_certificate = base64decode(module.gke.ca_certificate)
}
module "gke" {
source = "terraform-google-modules/kubernetes-engine/google"
project_id = var.project_id
version = "28.0.0"
name = var.cluster_name
region = var.region
zones = ["${var.region}-a", "${var.region}-b", "${var.region}-c"]
network = "default"
subnetwork = "default"
ip_range_pods = ""
ip_range_services = ""
horizontal_pod_autoscaling = true
filestore_csi_driver = false
default_max_pods_per_node = 55
kubernetes_version = var.kubernetes_version
create_service_account = true
release_channel = "STABLE"
node_pools = [
{
name = "${var.node_pool_name}"
machine_type = "e2-standard-4"
node_locations = "${var.region}-a,${var.region}-b"
min_count = 3
max_count = 5
local_ssd_count = 0
spot = false
disk_size_gb = 100
disk_type = "pd-standard"
image_type = "COS_CONTAINERD"
networking_mode = "VPC_NATIVE"
node_version = var.kubernetes_node_version
enable_gcfs = false
enable_gvnic = false
auto_repair = true
release_channel = "STABLE"
auto_upgrade = true
preemptible = false
initial_node_count = 3
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment