Manage independent node pools in a GKE cluster.
Work in Progress - May get redesigned before it's finished
- Manage any number of node pools
Basic usage of this module is as follows:
module "example" {
source = "notablehealth/<module-name>/google"
# Recommend pinning every module to a specific version
# version = "x.x.x"
# Required variables
cluster_location =
cluster_name =
node_pools =
project_id =
}
Name | Version |
---|---|
terraform | >= 1.5.7 |
~> 5.0 | |
random | ~> 3.5 |
Name | Version |
---|---|
5.1.0 | |
random | 3.5.1 |
No modules.
Name | Type |
---|---|
google_container_node_pool.self | resource |
random_shuffle.available_zones | resource |
google_compute_zones.available | data source |
google_container_cluster.existing | data source |
Name | Description | Type | Default | Required |
---|---|---|---|---|
cluster_location | Location of the existing GKE cluster | string |
n/a | yes |
cluster_name | Name of the existing GKE cluster to add node pools too | string |
n/a | yes |
default_auto_repair | Default value for auto_repair in node pools | bool |
true |
no |
default_auto_upgrade | Default value for auto_upgrade in node pools | bool |
true |
no |
disable_legacy_metadata_endpoints | Disable the /0.1/ and /v1beta1/ metadata server endpoints on the node. Changing this value will cause all node pools to be recreated. | bool |
true |
no |
node_metadata | Specifies how node metadata is exposed to the workload running on the node | string |
"GKE_METADATA" |
no |
node_pools | Map of node pool objects | map(object({ # list(map(any)) |
n/a | yes |
node_pools_labels | Map of maps containing node labels by node-pool name | map(map(any)) |
{ |
no |
node_pools_linux_node_configs_sysctls | Map of maps containing linux node config sysctls by node-pool name | map(map(string)) |
{ |
no |
node_pools_metadata | Map of maps containing node metadata by node-pool name | map(map(string)) |
{ |
no |
node_pools_oauth_scopes | Map of lists containing node oauth scopes by node-pool name | map(list(string)) |
{ |
no |
node_pools_resource_labels | Map of maps containing resource labels by node-pool name | map(map(string)) |
{ |
no |
node_pools_tags | Map of lists containing node network tags by node-pool name | map(list(string)) |
{ |
no |
node_pools_taints | Map of lists containing node taints by node-pool name | map(list(object({ key = string, value = string, effect = string }))) |
{ |
no |
project_id | The ID of the project in which the resource belongs. | string |
n/a | yes |
release_channel | The release channel of this cluster. Accepted values are UNSPECIFIED , RAPID , REGULAR and STABLE . Defaults to REGULAR . |
string |
"REGULAR" |
no |
timeouts | Timeout for cluster operations. | map(string) |
{} |
no |
Name | Description |
---|---|
cluster_default_node_zones | The default zones for node pools in the cluster |
instance_group_urls | List of GKE generated instance groups |
zones | Available zones |
zones_random | Available zones - randomized |