5.2 KiB
5.2 KiB
GKE nodepool module
This module allows simplified creation and management of individual GKE nodepools, setting sensible defaults (eg a service account is created for nodes if none is set) and allowing for less verbose usage in most use cases.
Example usage
module "cluster-1-nodepool-1" {
source = "../modules/gke-nodepool"
project_id = "myproject"
cluster_name = "cluster-1"
location = "europe-west1-b"
name = "nodepool-1"
}
Variables
name | description | type | required | default |
---|---|---|---|---|
cluster_name | Cluster name. | string |
✓ | |
location | Cluster location. | string |
✓ | |
project_id | Cluster project id. | string |
✓ | |
autoscaling_config | Optional autoscaling configuration. | object({...}) |
null |
|
gke_version | Kubernetes nodes version. Ignored if auto_upgrade is set in management_config. | string |
null |
|
initial_node_count | Initial number of nodes for the pool. | number |
1 |
|
management_config | Optional node management configuration. | object({...}) |
null |
|
max_pods_per_node | Maximum number of pods per node. | number |
null |
|
name | Optional nodepool name. | string |
null |
|
node_config_disk_size | Node disk size, defaults to 100GB. | number |
100 |
|
node_config_disk_type | Node disk type, defaults to pd-standard. | string |
pd-standard |
|
node_config_guest_accelerator | Map of type and count of attached accelerator cards. | map(number) |
{} |
|
node_config_image_type | Nodes image type. | string |
null |
|
node_config_labels | Kubernetes labels attached to nodes. | map(string) |
{} |
|
node_config_local_ssd_count | Number of local SSDs attached to nodes. | number |
0 |
|
node_config_machine_type | Nodes machine type. | string |
n1-standard-1 |
|
node_config_metadata | Metadata key/value pairs assigned to nodes. Set disable-legacy-endpoints to true when using this variable. | map(string) |
null |
|
node_config_min_cpu_platform | Minimum CPU platform for nodes. | string |
null |
|
node_config_oauth_scopes | Set of Google API scopes for the nodes service account. Include logging-write, monitoring, and storage-ro when using this variable. | list(string) |
["logging-write", "monitoring", "monitoring-write", "storage-ro"] |
|
node_config_preemptible | Use preemptible VMs for nodes. | bool |
null |
|
node_config_sandbox_config | GKE Sandbox configuration. Needs image_type set to COS_CONTAINERD and node_version set to 1.12.7-gke.17 when using this variable. | string |
null |
|
node_config_service_account | Service account used for nodes. | string |
null |
|
node_config_shielded_instance_config | Shielded instance options. | object({...}) |
null |
|
node_config_tags | Network tags applied to nodes. | list(string) |
null |
|
node_count | Number of nodes per instance group, can be updated after creation. Ignored when autoscaling is set. | number |
null |
|
node_locations | Optional list of zones in which nodes should be located. Uses cluster locations if unset. | list(string) |
null |
|
upgrade_config | Optional node upgrade configuration. | object({...}) |
null |
|
workload_metadata_config | Metadata configuration to expose to workloads on the node pool. | string |
GKE_METADATA_SERVER |
Outputs
name | description | sensitive |
---|---|---|
name | Nodepool name. |