Skip to content

Instantly share code, notes, and snippets.

@pentago
Created February 15, 2019 21:24
Show Gist options
  • Save pentago/b9db081bc5d0130fadd1bedad0d338f8 to your computer and use it in GitHub Desktop.
Save pentago/b9db081bc5d0130fadd1bedad0d338f8 to your computer and use it in GitHub Desktop.
data "google_container_engine_versions" "versions" {
zone = "${var.zone}"
}
resource "google_compute_address" "ip" {
name = "${var.cluster_name}-ip"
project = "${var.project}"
}
resource "google_container_cluster" "cluster" {
name = "${var.cluster_name}"
description = "${var.cluster_description}"
project = "${var.project}"
zone = "${var.zone}"
min_master_version = "${data.google_container_engine_versions.versions.latest_master_version}"
node_version = "${data.google_container_engine_versions.versions.latest_node_version}"
remove_default_node_pool = true
enable_legacy_abac = false
lifecycle {
ignore_changes = ["network", "node_pool"]
}
node_pool {
name = "default-pool"
}
ip_allocation_policy {
}
private_cluster_config {
enable_private_endpoint = false
enable_private_nodes = false
master_ipv4_cidr_block = "172.16.0.0/28"
}
network_policy {
enabled = true
}
addons_config {
http_load_balancing {
disabled = true
}
horizontal_pod_autoscaling {
disabled = true
}
kubernetes_dashboard {
disabled = true
}
}
maintenance_policy {
daily_maintenance_window {
start_time = "03:00"
}
}
}
resource "google_container_node_pool" "node_pool" {
name = "primary-pool"
project = "${var.project}"
cluster = "${google_container_cluster.cluster.name}"
zone = "${var.zone}"
node_count = "${var.node_count}"
node_config {
machine_type = "${var.machine_type}"
disk_type = "${var.disk_type}"
disk_size_gb = "${var.disk_size_gb}"
image_type = "COS"
# https://developers.google.com/identity/protocols/googlescopes
oauth_scopes = [
"compute-rw",
"storage-ro",
"logging-write",
"monitoring",
"https://www.googleapis.com/auth/service.management",
"https://www.googleapis.com/auth/sqlservice.admin"
]
}
management {
auto_repair = true
auto_upgrade = false
}
autoscaling {
min_node_count = "${var.node_count}"
max_node_count = "${var.node_count + var.node_count}"
}
provisioner "local-exec" {
command = "./setup/setup.sh ${google_container_cluster.cluster.name} ${var.zone} ${var.project} ${google_compute_address.ip.address}"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment