Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions tools/kubernetes/terraform/examples/v5e/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ variable "project_id" {}
variable "resource_name_prefix" {}
variable "region" {}
variable "tpu_node_pools" {}
variable "default_pool" {}
variable "maintenance_interval" {}


Expand All @@ -11,5 +12,6 @@ module "tpu-gke" {
resource_name_prefix = var.resource_name_prefix
region = var.region
tpu_node_pools = var.tpu_node_pools
default_pool = var.default_pool
maintenance_interval = var.maintenance_interval
}
7 changes: 7 additions & 0 deletions tools/kubernetes/terraform/examples/v5e/terraform.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,11 @@ tpu_node_pools = [{
topology = "16x16"
policy = "sb-compact-1"
}]
default_pool = {
zone = ["us-east5-a", "us-east5-b", "us-east5-c"]
machine_type = "e2-standard-32",
initial_node_count_per_zone = 1,
min_node_count_per_zone = 1,
max_node_count_per_zone = 10
}
maintenance_interval = "PERIODIC"
27 changes: 27 additions & 0 deletions tools/kubernetes/terraform/module/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,30 @@ resource "google_container_node_pool" "multihost_tpu" {
policy_name = var.tpu_node_pools[count.index].policy
}
}

resource "google_container_node_pool" "default_pool" {
provider = google-beta
project = var.project_id
name = "default-pool"
location = var.region
node_locations = var.default_pool.zone
cluster = google_container_cluster.tpu_cluster.name
initial_node_count = var.default_pool.initial_node_count_per_zone
autoscaling {
min_node_count = var.default_pool.min_node_count_per_zone
max_node_count = var.default_pool.max_node_count_per_zone
}
node_config {
oauth_scopes = [
"https://www.googleapis.com/auth/cloud-platform"
]
machine_type = var.default_pool.machine_type

metadata = {
disable-legacy-endpoints = "true"
}
gcfs_config {
enabled = true
}
}
}
7 changes: 7 additions & 0 deletions tools/kubernetes/terraform/module/terraform.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,11 @@ tpu_node_pools = [{
machine_type = "ct4p-hightpu-4t"
topology = "2x2x2"
}]
default_pool = {
zone = ["us-central2-a", "us-central2-b", "us-central2-c"]
machine_type = "e2-standard-32",
initial_node_count_per_zone = 1,
min_node_count_per_zone = 1,
max_node_count_per_zone = 10
}
maintenance_interval = "AS_NEEDED"
17 changes: 17 additions & 0 deletions tools/kubernetes/terraform/module/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,23 @@ variable "tpu_node_pools" {
}))
}

variable "default_pool" {
description = "default nodepool config"
type = object({
zone = list(string),
machine_type = string,
initial_node_count_per_zone = number,
min_node_count_per_zone = number,
max_node_count_per_zone = number
})
validation {
condition = (
(var.default_pool.min_node_count_per_zone >=0 && var.default_pool.min_node_count_per_zone <= var.default_pool.max_node_count_per_zone)
)
error_message = "default_pool.min_node_count_per_zone must be >= 0 and <= default_pool.max_node_count_per_zone."
}
}

variable "maintenance_interval" {
default = "AS_NEEDED"
description = "maintenance interval for TPU machines."
Expand Down