Skip to content

Terraform module which creates Google Kubernetes Engine resources on GCP.

License

Notifications You must be signed in to change notification settings

padok-team/terraform-google-gke

Repository files navigation

Google GKE Terraform module

Terraform module which creates Google Kubernetes Engine resources on GCP.

Modules

No modules.

Inputs

Name Description Type Default Required
location The zone or region to deploy the cluster to. It defines if cluster is regional or zonal string n/a yes
name The name of the GKE cluster. string n/a yes
network The network parameters used to deploy the resources
object({
private = bool // Determines if the control plane has a public IP or not.
subnet_self_link = string // The self link for subnetwork. It's required for shared VPC.
pods_range_name = string // The name of pod range created in network.
services_range_name = string // The name of service range created in network.
master_cidr = string // The private ip range to use for control plane. It can not be created in network module.
master_allowed_ips = list(map(string)) // The ips to whitelist to access master.
webhook_ports = list(string) // The ports to open to allow GKE master nodes to connect to admission controllers/webhooks.
})
n/a yes
project_id The project to deploy the ressources to. string n/a yes
registry_project_ids The project ids on which registry access will be granted. list(string) n/a yes
logging Enables Stackdriver logging for workloads bool false no
maintenance_start_time Time window specified for daily maintenance operations. Specify start_time in RFC3339 format 'HH:MM', where HH : [00-23] and MM : [00-59] GMT. string "00:00" no
node_pools The node pools to create and add to the cluster.
map(object({
name = string
locations = list(string) // Zones to deploy the nodes into
min_size = string
max_size = string
machine_type = string // The GCE machine type the pool is made of.
preemptible = bool
taints = list(map(string))
labels = map(string)
}))
{} no
release_channel The release channel to look for latest versions on. string "REGULAR" no
workload_identity_pool Custom workload identity pool to be used, default will be the project default one string "" no

Outputs

Name Description
command_to_connect The gcloud command to run to connect to the cluster.
node_network_tag If you want to create firewall rules on node pools, use this network tag
workload_identity_pool Identity pool for the GKE cluster, used to give access to GCP SA from K8S SA

License

License

See LICENSE for full details.

Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.