Skip to content

Commit 71e7067

Browse files
jroiseuxbharathkkb
andauthored
feat: Allow enabling managed Prometheus in beta cluster submodules (#1307)
* add ability to enable managed prometheus in beta cluster * check if enable managed prometheus is set * set enabled_components to null if not specified Co-authored-by: Bharath KKB <[email protected]>
1 parent 425bf93 commit 71e7067

File tree

26 files changed

+96
-22
lines changed

26 files changed

+96
-22
lines changed

autogen/main/cluster.tf.tmpl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,18 @@ resource "google_container_cluster" "primary" {
8989
}
9090
monitoring_service = local.cluster_telemetry_type_is_set || local.logmon_config_is_set ? null : var.monitoring_service
9191
dynamic "monitoring_config" {
92-
for_each = length(var.monitoring_enabled_components) > 0 ? [1] : []
92+
for_each = length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus ? [1] : []
9393

9494
content {
95-
enable_components = var.monitoring_enabled_components
95+
enable_components = length(var.monitoring_enabled_components) > 0 ? var.monitoring_enabled_components : null
96+
97+
dynamic "managed_prometheus" {
98+
for_each = var.monitoring_enable_managed_prometheus ? [1] : []
99+
100+
content {
101+
enabled = var.monitoring_enable_managed_prometheus
102+
}
103+
}
96104
}
97105
}
98106
{% else %}

autogen/main/main.tf.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ locals {
108108
] : []
109109
cluster_cloudrun_enabled = var.cloudrun
110110
cluster_gce_pd_csi_config = var.gce_pd_csi_driver ? [{ enabled = true }] : [{ enabled = false }]
111-
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0
111+
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus
112112
{% endif %}
113113

114114
cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{

autogen/main/variables.tf.tmpl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,12 @@ variable "monitoring_enabled_components" {
603603
default = []
604604
}
605605

606+
variable "monitoring_enable_managed_prometheus" {
607+
type = bool
608+
description = "(Beta) Configuration for Managed Service for Prometheus. Whether or not the managed collection is enabled."
609+
default = false
610+
}
611+
606612
variable "istio" {
607613
description = "(Beta) Enable Istio addon"
608614
default = false

autogen/main/versions.tf.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ terraform {
2424
required_providers {
2525
google-beta = {
2626
source = "hashicorp/google-beta"
27-
version = ">= 4.10.0, < 5.0"
27+
version = ">= 4.25.0, < 5.0"
2828
}
2929
kubernetes = {
3030
source = "hashicorp/kubernetes"

modules/beta-autopilot-private-cluster/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ terraform {
2121
required_providers {
2222
google-beta = {
2323
source = "hashicorp/google-beta"
24-
version = ">= 4.10.0, < 5.0"
24+
version = ">= 4.25.0, < 5.0"
2525
}
2626
kubernetes = {
2727
source = "hashicorp/kubernetes"

modules/beta-autopilot-public-cluster/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ terraform {
2121
required_providers {
2222
google-beta = {
2323
source = "hashicorp/google-beta"
24-
version = ">= 4.10.0, < 5.0"
24+
version = ">= 4.25.0, < 5.0"
2525
}
2626
kubernetes = {
2727
source = "hashicorp/kubernetes"

modules/beta-private-cluster-update-variant/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ Then perform the following commands on the root folder:
221221
| master\_authorized\_networks | List of master authorized networks. If none are provided, disallow external access (except the cluster node IPs, which GKE automatically whitelists). | `list(object({ cidr_block = string, display_name = string }))` | `[]` | no |
222222
| master\_global\_access\_enabled | (Beta) Whether the cluster master is accessible globally (from any region) or only within the same region as the private endpoint. | `bool` | `true` | no |
223223
| master\_ipv4\_cidr\_block | (Beta) The IP range in CIDR notation to use for the hosted master network | `string` | `"10.0.0.0/28"` | no |
224+
| monitoring\_enable\_managed\_prometheus | (Beta) Configuration for Managed Service for Prometheus. Whether or not the managed collection is enabled. | `bool` | `false` | no |
224225
| monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, WORKLOADS (provider version >= 3.89.0). Empty list is default GKE configuration. | `list(string)` | `[]` | no |
225226
| monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no |
226227
| name | The name of the cluster (required) | `string` | n/a | yes |

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,18 @@ resource "google_container_cluster" "primary" {
7878
}
7979
monitoring_service = local.cluster_telemetry_type_is_set || local.logmon_config_is_set ? null : var.monitoring_service
8080
dynamic "monitoring_config" {
81-
for_each = length(var.monitoring_enabled_components) > 0 ? [1] : []
81+
for_each = length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus ? [1] : []
8282

8383
content {
84-
enable_components = var.monitoring_enabled_components
84+
enable_components = length(var.monitoring_enabled_components) > 0 ? var.monitoring_enabled_components : null
85+
86+
dynamic "managed_prometheus" {
87+
for_each = var.monitoring_enable_managed_prometheus ? [1] : []
88+
89+
content {
90+
enabled = var.monitoring_enable_managed_prometheus
91+
}
92+
}
8593
}
8694
}
8795
cluster_autoscaling {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ locals {
9393
] : []
9494
cluster_cloudrun_enabled = var.cloudrun
9595
cluster_gce_pd_csi_config = var.gce_pd_csi_driver ? [{ enabled = true }] : [{ enabled = false }]
96-
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0
96+
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus
9797

9898
cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{
9999
security_group = var.authenticator_security_group

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,12 @@ variable "monitoring_enabled_components" {
572572
default = []
573573
}
574574

575+
variable "monitoring_enable_managed_prometheus" {
576+
type = bool
577+
description = "(Beta) Configuration for Managed Service for Prometheus. Whether or not the managed collection is enabled."
578+
default = false
579+
}
580+
575581
variable "istio" {
576582
description = "(Beta) Enable Istio addon"
577583
default = false

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ terraform {
2121
required_providers {
2222
google-beta = {
2323
source = "hashicorp/google-beta"
24-
version = ">= 4.10.0, < 5.0"
24+
version = ">= 4.25.0, < 5.0"
2525
}
2626
kubernetes = {
2727
source = "hashicorp/kubernetes"

modules/beta-private-cluster/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ Then perform the following commands on the root folder:
199199
| master\_authorized\_networks | List of master authorized networks. If none are provided, disallow external access (except the cluster node IPs, which GKE automatically whitelists). | `list(object({ cidr_block = string, display_name = string }))` | `[]` | no |
200200
| master\_global\_access\_enabled | (Beta) Whether the cluster master is accessible globally (from any region) or only within the same region as the private endpoint. | `bool` | `true` | no |
201201
| master\_ipv4\_cidr\_block | (Beta) The IP range in CIDR notation to use for the hosted master network | `string` | `"10.0.0.0/28"` | no |
202+
| monitoring\_enable\_managed\_prometheus | (Beta) Configuration for Managed Service for Prometheus. Whether or not the managed collection is enabled. | `bool` | `false` | no |
202203
| monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, WORKLOADS (provider version >= 3.89.0). Empty list is default GKE configuration. | `list(string)` | `[]` | no |
203204
| monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no |
204205
| name | The name of the cluster (required) | `string` | n/a | yes |

modules/beta-private-cluster/cluster.tf

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,18 @@ resource "google_container_cluster" "primary" {
7878
}
7979
monitoring_service = local.cluster_telemetry_type_is_set || local.logmon_config_is_set ? null : var.monitoring_service
8080
dynamic "monitoring_config" {
81-
for_each = length(var.monitoring_enabled_components) > 0 ? [1] : []
81+
for_each = length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus ? [1] : []
8282

8383
content {
84-
enable_components = var.monitoring_enabled_components
84+
enable_components = length(var.monitoring_enabled_components) > 0 ? var.monitoring_enabled_components : null
85+
86+
dynamic "managed_prometheus" {
87+
for_each = var.monitoring_enable_managed_prometheus ? [1] : []
88+
89+
content {
90+
enabled = var.monitoring_enable_managed_prometheus
91+
}
92+
}
8593
}
8694
}
8795
cluster_autoscaling {

modules/beta-private-cluster/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ locals {
9393
] : []
9494
cluster_cloudrun_enabled = var.cloudrun
9595
cluster_gce_pd_csi_config = var.gce_pd_csi_driver ? [{ enabled = true }] : [{ enabled = false }]
96-
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0
96+
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus
9797

9898
cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{
9999
security_group = var.authenticator_security_group

modules/beta-private-cluster/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,12 @@ variable "monitoring_enabled_components" {
572572
default = []
573573
}
574574

575+
variable "monitoring_enable_managed_prometheus" {
576+
type = bool
577+
description = "(Beta) Configuration for Managed Service for Prometheus. Whether or not the managed collection is enabled."
578+
default = false
579+
}
580+
575581
variable "istio" {
576582
description = "(Beta) Enable Istio addon"
577583
default = false

modules/beta-private-cluster/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ terraform {
2121
required_providers {
2222
google-beta = {
2323
source = "hashicorp/google-beta"
24-
version = ">= 4.10.0, < 5.0"
24+
version = ">= 4.25.0, < 5.0"
2525
}
2626
kubernetes = {
2727
source = "hashicorp/kubernetes"

modules/beta-public-cluster-update-variant/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ Then perform the following commands on the root folder:
210210
| maintenance\_recurrence | Frequency of the recurring maintenance window in RFC5545 format. | `string` | `""` | no |
211211
| maintenance\_start\_time | Time window specified for daily or recurring maintenance operations in RFC3339 format | `string` | `"05:00"` | no |
212212
| master\_authorized\_networks | List of master authorized networks. If none are provided, disallow external access (except the cluster node IPs, which GKE automatically whitelists). | `list(object({ cidr_block = string, display_name = string }))` | `[]` | no |
213+
| monitoring\_enable\_managed\_prometheus | (Beta) Configuration for Managed Service for Prometheus. Whether or not the managed collection is enabled. | `bool` | `false` | no |
213214
| monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, WORKLOADS (provider version >= 3.89.0). Empty list is default GKE configuration. | `list(string)` | `[]` | no |
214215
| monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no |
215216
| name | The name of the cluster (required) | `string` | n/a | yes |

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

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,18 @@ resource "google_container_cluster" "primary" {
7878
}
7979
monitoring_service = local.cluster_telemetry_type_is_set || local.logmon_config_is_set ? null : var.monitoring_service
8080
dynamic "monitoring_config" {
81-
for_each = length(var.monitoring_enabled_components) > 0 ? [1] : []
81+
for_each = length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus ? [1] : []
8282

8383
content {
84-
enable_components = var.monitoring_enabled_components
84+
enable_components = length(var.monitoring_enabled_components) > 0 ? var.monitoring_enabled_components : null
85+
86+
dynamic "managed_prometheus" {
87+
for_each = var.monitoring_enable_managed_prometheus ? [1] : []
88+
89+
content {
90+
enabled = var.monitoring_enable_managed_prometheus
91+
}
92+
}
8593
}
8694
}
8795
cluster_autoscaling {

modules/beta-public-cluster-update-variant/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ locals {
9393
] : []
9494
cluster_cloudrun_enabled = var.cloudrun
9595
cluster_gce_pd_csi_config = var.gce_pd_csi_driver ? [{ enabled = true }] : [{ enabled = false }]
96-
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0
96+
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus
9797

9898
cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{
9999
security_group = var.authenticator_security_group

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,12 @@ variable "monitoring_enabled_components" {
541541
default = []
542542
}
543543

544+
variable "monitoring_enable_managed_prometheus" {
545+
type = bool
546+
description = "(Beta) Configuration for Managed Service for Prometheus. Whether or not the managed collection is enabled."
547+
default = false
548+
}
549+
544550
variable "istio" {
545551
description = "(Beta) Enable Istio addon"
546552
default = false

modules/beta-public-cluster-update-variant/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ terraform {
2121
required_providers {
2222
google-beta = {
2323
source = "hashicorp/google-beta"
24-
version = ">= 4.10.0, < 5.0"
24+
version = ">= 4.25.0, < 5.0"
2525
}
2626
kubernetes = {
2727
source = "hashicorp/kubernetes"

modules/beta-public-cluster/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ Then perform the following commands on the root folder:
188188
| maintenance\_recurrence | Frequency of the recurring maintenance window in RFC5545 format. | `string` | `""` | no |
189189
| maintenance\_start\_time | Time window specified for daily or recurring maintenance operations in RFC3339 format | `string` | `"05:00"` | no |
190190
| master\_authorized\_networks | List of master authorized networks. If none are provided, disallow external access (except the cluster node IPs, which GKE automatically whitelists). | `list(object({ cidr_block = string, display_name = string }))` | `[]` | no |
191+
| monitoring\_enable\_managed\_prometheus | (Beta) Configuration for Managed Service for Prometheus. Whether or not the managed collection is enabled. | `bool` | `false` | no |
191192
| monitoring\_enabled\_components | List of services to monitor: SYSTEM\_COMPONENTS, WORKLOADS (provider version >= 3.89.0). Empty list is default GKE configuration. | `list(string)` | `[]` | no |
192193
| monitoring\_service | The monitoring service that the cluster should write metrics to. Automatically send metrics from pods in the cluster to the Google Cloud Monitoring API. VM metrics will be collected by Google Compute Engine regardless of this setting Available options include monitoring.googleapis.com, monitoring.googleapis.com/kubernetes (beta) and none | `string` | `"monitoring.googleapis.com/kubernetes"` | no |
193194
| name | The name of the cluster (required) | `string` | n/a | yes |

modules/beta-public-cluster/cluster.tf

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,18 @@ resource "google_container_cluster" "primary" {
7878
}
7979
monitoring_service = local.cluster_telemetry_type_is_set || local.logmon_config_is_set ? null : var.monitoring_service
8080
dynamic "monitoring_config" {
81-
for_each = length(var.monitoring_enabled_components) > 0 ? [1] : []
81+
for_each = length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus ? [1] : []
8282

8383
content {
84-
enable_components = var.monitoring_enabled_components
84+
enable_components = length(var.monitoring_enabled_components) > 0 ? var.monitoring_enabled_components : null
85+
86+
dynamic "managed_prometheus" {
87+
for_each = var.monitoring_enable_managed_prometheus ? [1] : []
88+
89+
content {
90+
enabled = var.monitoring_enable_managed_prometheus
91+
}
92+
}
8593
}
8694
}
8795
cluster_autoscaling {

modules/beta-public-cluster/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ locals {
9393
] : []
9494
cluster_cloudrun_enabled = var.cloudrun
9595
cluster_gce_pd_csi_config = var.gce_pd_csi_driver ? [{ enabled = true }] : [{ enabled = false }]
96-
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0
96+
logmon_config_is_set = length(var.logging_enabled_components) > 0 || length(var.monitoring_enabled_components) > 0 || var.monitoring_enable_managed_prometheus
9797

9898
cluster_authenticator_security_group = var.authenticator_security_group == null ? [] : [{
9999
security_group = var.authenticator_security_group

modules/beta-public-cluster/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,12 @@ variable "monitoring_enabled_components" {
541541
default = []
542542
}
543543

544+
variable "monitoring_enable_managed_prometheus" {
545+
type = bool
546+
description = "(Beta) Configuration for Managed Service for Prometheus. Whether or not the managed collection is enabled."
547+
default = false
548+
}
549+
544550
variable "istio" {
545551
description = "(Beta) Enable Istio addon"
546552
default = false

modules/beta-public-cluster/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ terraform {
2121
required_providers {
2222
google-beta = {
2323
source = "hashicorp/google-beta"
24-
version = ">= 4.10.0, < 5.0"
24+
version = ">= 4.25.0, < 5.0"
2525
}
2626
kubernetes = {
2727
source = "hashicorp/kubernetes"

0 commit comments

Comments
 (0)