Create Cluster (Terraform) #
Steps to create a GKE cluster using terraform
Install Terraform #
sudo yum install wget zip
wget https://releases.hashicorp.com/terraform/0.11.11/terraform_0.11.11_linux_amd64.zip
unzip terraform_0.11.11_linux_amd64.zip
sudo mv terraform /usr/local/bin/
Folder structure #
Create a folder name gke-cluster
main.tf
modules/
gke-cluster/
main.tf
variables.tf
Create gke-cluster/main.tf #
# Create a GKE cluster
resource "google_container_cluster" "gke-cluster" {
count = 1
name = "${var.gke_cluster_name}"
network = "${var.network_name}"
subnetwork = "${var.subnetwork_name}"
region = "${var.gke_cluster_region}"
additional_zones = "${var.gke_cluster_zones}"
master_authorized_networks_config {
cidr_blocks = [
{ cidr_block = "172.25.0.0/19", display_name = "app" },
]
}
node_pool {
name = "core-node-pool"
initial_node_count = "${var.num_nodes}"
node_config {
machine_type = "${var.node_machine_type}"
preemptible = false
oauth_scopes = [
"https://www.googleapis.com/auth/compute",
"https://www.googleapis.com/auth/devstorage.read_only",
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring.write",
"https://www.googleapis.com/auth/monitoring",
"https://www.googleapis.com/auth/cloud_debugger",
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/service.management.readonly",
"https://www.googleapis.com/auth/servicecontrol",
"https://www.googleapis.com/auth/trace.append",
]
labels {
cluster = "${var.gke_cluster_name}"
}
tags = ["${var.gke_cluster_name}"]
}
management {
auto_upgrade = true
auto_repair = true
}
}
}