Skip to content

Commit 1ac2c5c

Browse files
authored
feat: Added support for specifying autoscaling_profile in var.cluster_autoscaling (#456)
* add autoscaling_profile * default to balanced if autoscaling_profile is null * default to balanced if autoscaling_profile is null
1 parent 9695e05 commit 1ac2c5c

File tree

19 files changed

+86
-70
lines changed

19 files changed

+86
-70
lines changed

autogen/main/cluster.tf.tmpl

+2-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ resource "google_container_cluster" "primary" {
6868

6969
{% if beta_cluster %}
7070
cluster_autoscaling {
71-
enabled = var.cluster_autoscaling.enabled
71+
enabled = var.cluster_autoscaling.enabled
72+
autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
7273
dynamic "resource_limits" {
7374
for_each = local.autoscalling_resource_limits
7475
content {

autogen/main/variables.tf.tmpl

+12-10
Original file line numberDiff line numberDiff line change
@@ -198,18 +198,20 @@ variable "enable_kubernetes_alpha" {
198198

199199
variable "cluster_autoscaling" {
200200
type = object({
201-
enabled = bool
202-
min_cpu_cores = number
203-
max_cpu_cores = number
204-
min_memory_gb = number
205-
max_memory_gb = number
201+
enabled = bool
202+
autoscaling_profile = string
203+
min_cpu_cores = number
204+
max_cpu_cores = number
205+
min_memory_gb = number
206+
max_memory_gb = number
206207
})
207208
default = {
208-
enabled = false
209-
max_cpu_cores = 0
210-
min_cpu_cores = 0
211-
max_memory_gb = 0
212-
min_memory_gb = 0
209+
enabled = false
210+
autoscaling_profile = "BALANCED"
211+
max_cpu_cores = 0
212+
min_cpu_cores = 0
213+
max_memory_gb = 0
214+
min_memory_gb = 0
213215
}
214216
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
215217
}

examples/node_pool/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ locals {
1919
}
2020

2121
provider "google-beta" {
22-
version = "~> 3.3.0"
22+
version = "~> 3.12.0"
2323
region = var.region
2424
}
2525

examples/node_pool/variables.tf

+12-10
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,20 @@ variable "compute_engine_service_account" {
5454

5555
variable "cluster_autoscaling" {
5656
type = object({
57-
enabled = bool
58-
min_cpu_cores = number
59-
max_cpu_cores = number
60-
min_memory_gb = number
61-
max_memory_gb = number
57+
enabled = bool
58+
autoscaling_profile = string
59+
min_cpu_cores = number
60+
max_cpu_cores = number
61+
min_memory_gb = number
62+
max_memory_gb = number
6263
})
6364
default = {
64-
enabled = false
65-
max_cpu_cores = 0
66-
min_cpu_cores = 0
67-
max_memory_gb = 0
68-
min_memory_gb = 0
65+
enabled = false
66+
autoscaling_profile = "BALANCED"
67+
max_cpu_cores = 0
68+
min_cpu_cores = 0
69+
max_memory_gb = 0
70+
min_memory_gb = 0
6971
}
7072
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
7173
}

examples/node_pool_update_variant/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ locals {
1919
}
2020

2121
provider "google" {
22-
version = "~> 3.3.0"
22+
version = "~> 3.12.0"
2323
region = var.region
2424
}
2525

examples/node_pool_update_variant_beta/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ locals {
1919
}
2020

2121
provider "google-beta" {
22-
version = "~> 3.3.0"
22+
version = "~> 3.12.0"
2323
credentials = file(var.credentials_path)
2424
region = var.region
2525
}

examples/safer_cluster/main.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ locals {
3030
}
3131

3232
provider "google" {
33-
version = "~> 3.3.0"
33+
version = "~> 3.12.0"
3434
}
3535

3636
provider "google-beta" {
37-
version = "~> 3.3.0"
37+
version = "~> 3.12.0"
3838
}
3939

4040
module "gke" {

examples/simple_regional_beta/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ locals {
1919
}
2020

2121
provider "google-beta" {
22-
version = "~> 3.3.0"
22+
version = "~> 3.12.0"
2323
region = var.region
2424
}
2525

examples/simple_regional_private_beta/main.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ locals {
1919
}
2020

2121
provider "google" {
22-
version = "~> 3.3.0"
22+
version = "~> 3.12.0"
2323
region = var.region
2424
}
2525

2626
provider "google-beta" {
27-
version = "~> 3.3.0"
27+
version = "~> 3.12.0"
2828
region = var.region
2929
}
3030

examples/workload_identity/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ locals {
1919
}
2020

2121
provider "google" {
22-
version = "~> 2.20.1"
22+
version = "~> 3.12.0"
2323
region = var.region
2424
}
2525

examples/workload_metadata_config/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ locals {
1919
}
2020

2121
provider "google-beta" {
22-
version = "~> 3.3.0"
22+
version = "~> 3.12.0"
2323
region = var.region
2424
}
2525

modules/beta-private-cluster-update-variant/cluster.tf

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ resource "google_container_cluster" "primary" {
5757
monitoring_service = var.monitoring_service
5858

5959
cluster_autoscaling {
60-
enabled = var.cluster_autoscaling.enabled
60+
enabled = var.cluster_autoscaling.enabled
61+
autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
6162
dynamic "resource_limits" {
6263
for_each = local.autoscalling_resource_limits
6364
content {

modules/beta-private-cluster-update-variant/variables.tf

+12-10
Original file line numberDiff line numberDiff line change
@@ -195,18 +195,20 @@ variable "enable_kubernetes_alpha" {
195195

196196
variable "cluster_autoscaling" {
197197
type = object({
198-
enabled = bool
199-
min_cpu_cores = number
200-
max_cpu_cores = number
201-
min_memory_gb = number
202-
max_memory_gb = number
198+
enabled = bool
199+
autoscaling_profile = string
200+
min_cpu_cores = number
201+
max_cpu_cores = number
202+
min_memory_gb = number
203+
max_memory_gb = number
203204
})
204205
default = {
205-
enabled = false
206-
max_cpu_cores = 0
207-
min_cpu_cores = 0
208-
max_memory_gb = 0
209-
min_memory_gb = 0
206+
enabled = false
207+
autoscaling_profile = "BALANCED"
208+
max_cpu_cores = 0
209+
min_cpu_cores = 0
210+
max_memory_gb = 0
211+
min_memory_gb = 0
210212
}
211213
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
212214
}

modules/beta-private-cluster/cluster.tf

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ resource "google_container_cluster" "primary" {
5757
monitoring_service = var.monitoring_service
5858

5959
cluster_autoscaling {
60-
enabled = var.cluster_autoscaling.enabled
60+
enabled = var.cluster_autoscaling.enabled
61+
autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
6162
dynamic "resource_limits" {
6263
for_each = local.autoscalling_resource_limits
6364
content {

modules/beta-private-cluster/variables.tf

+12-10
Original file line numberDiff line numberDiff line change
@@ -195,18 +195,20 @@ variable "enable_kubernetes_alpha" {
195195

196196
variable "cluster_autoscaling" {
197197
type = object({
198-
enabled = bool
199-
min_cpu_cores = number
200-
max_cpu_cores = number
201-
min_memory_gb = number
202-
max_memory_gb = number
198+
enabled = bool
199+
autoscaling_profile = string
200+
min_cpu_cores = number
201+
max_cpu_cores = number
202+
min_memory_gb = number
203+
max_memory_gb = number
203204
})
204205
default = {
205-
enabled = false
206-
max_cpu_cores = 0
207-
min_cpu_cores = 0
208-
max_memory_gb = 0
209-
min_memory_gb = 0
206+
enabled = false
207+
autoscaling_profile = "BALANCED"
208+
max_cpu_cores = 0
209+
min_cpu_cores = 0
210+
max_memory_gb = 0
211+
min_memory_gb = 0
210212
}
211213
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
212214
}

modules/beta-public-cluster/cluster.tf

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ resource "google_container_cluster" "primary" {
5757
monitoring_service = var.monitoring_service
5858

5959
cluster_autoscaling {
60-
enabled = var.cluster_autoscaling.enabled
60+
enabled = var.cluster_autoscaling.enabled
61+
autoscaling_profile = var.cluster_autoscaling.autoscaling_profile != null ? var.cluster_autoscaling.autoscaling_profile : "BALANCED"
6162
dynamic "resource_limits" {
6263
for_each = local.autoscalling_resource_limits
6364
content {

modules/beta-public-cluster/variables.tf

+12-10
Original file line numberDiff line numberDiff line change
@@ -195,18 +195,20 @@ variable "enable_kubernetes_alpha" {
195195

196196
variable "cluster_autoscaling" {
197197
type = object({
198-
enabled = bool
199-
min_cpu_cores = number
200-
max_cpu_cores = number
201-
min_memory_gb = number
202-
max_memory_gb = number
198+
enabled = bool
199+
autoscaling_profile = string
200+
min_cpu_cores = number
201+
max_cpu_cores = number
202+
min_memory_gb = number
203+
max_memory_gb = number
203204
})
204205
default = {
205-
enabled = false
206-
max_cpu_cores = 0
207-
min_cpu_cores = 0
208-
max_memory_gb = 0
209-
min_memory_gb = 0
206+
enabled = false
207+
autoscaling_profile = "BALANCED"
208+
max_cpu_cores = 0
209+
min_cpu_cores = 0
210+
max_memory_gb = 0
211+
min_memory_gb = 0
210212
}
211213
description = "Cluster autoscaling configuration. See [more details](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#clusterautoscaling)"
212214
}

test/fixtures/node_pool/example.tf

+6-5
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,12 @@ module "example" {
2828
compute_engine_service_account = var.compute_engine_service_accounts[0]
2929

3030
cluster_autoscaling = {
31-
enabled = true
32-
max_cpu_cores = 20
33-
min_cpu_cores = 5
34-
max_memory_gb = 30
35-
min_memory_gb = 10
31+
enabled = true
32+
autoscaling_profile = "OPTIMIZE_UTILIZATION"
33+
max_cpu_cores = 20
34+
min_cpu_cores = 5
35+
max_memory_gb = 30
36+
min_memory_gb = 10
3637
}
3738
}
3839

test/integration/node_pool/controls/gcloud.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
control "gcloud" do
2323
title "Google Compute Engine GKE configuration"
24-
describe command("gcloud --project=#{project_id} container clusters --zone=#{location} describe #{cluster_name} --format=json") do
24+
describe command("gcloud beta --project=#{project_id} container clusters --zone=#{location} describe #{cluster_name} --format=json") do
2525
its(:exit_status) { should eq 0 }
2626
its(:stderr) { should eq '' }
2727

@@ -40,6 +40,7 @@
4040
"oauthScopes" => %w(https://www.googleapis.com/auth/logging.write https://www.googleapis.com/auth/monitoring),
4141
"serviceAccount" => "default"
4242
},
43+
"autoscalingProfile" => "OPTIMIZE_UTILIZATION",
4344
"enableNodeAutoprovisioning" => true,
4445
"resourceLimits" => [
4546
{

0 commit comments

Comments
 (0)