diff --git a/blueprints/apigee/bigquery-analytics/versions.tf b/blueprints/apigee/bigquery-analytics/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/apigee/bigquery-analytics/versions.tf +++ b/blueprints/apigee/bigquery-analytics/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/apigee/network-patterns/nb-glb-psc-neg-sb-psc-ilbl7-hybrid-neg/versions.tf b/blueprints/apigee/network-patterns/nb-glb-psc-neg-sb-psc-ilbl7-hybrid-neg/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/apigee/network-patterns/nb-glb-psc-neg-sb-psc-ilbl7-hybrid-neg/versions.tf +++ b/blueprints/apigee/network-patterns/nb-glb-psc-neg-sb-psc-ilbl7-hybrid-neg/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/cloud-operations/adfs/versions.tf b/blueprints/cloud-operations/adfs/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/cloud-operations/adfs/versions.tf +++ b/blueprints/cloud-operations/adfs/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/cloud-operations/asset-inventory-feed-remediation/versions.tf b/blueprints/cloud-operations/asset-inventory-feed-remediation/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/cloud-operations/asset-inventory-feed-remediation/versions.tf +++ b/blueprints/cloud-operations/asset-inventory-feed-remediation/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/cloud-operations/dns-fine-grained-iam/versions.tf b/blueprints/cloud-operations/dns-fine-grained-iam/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/cloud-operations/dns-fine-grained-iam/versions.tf +++ b/blueprints/cloud-operations/dns-fine-grained-iam/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/cloud-operations/dns-shared-vpc/versions.tf b/blueprints/cloud-operations/dns-shared-vpc/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/cloud-operations/dns-shared-vpc/versions.tf +++ b/blueprints/cloud-operations/dns-shared-vpc/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/cloud-operations/iam-delegated-role-grants/versions.tf b/blueprints/cloud-operations/iam-delegated-role-grants/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/cloud-operations/iam-delegated-role-grants/versions.tf +++ b/blueprints/cloud-operations/iam-delegated-role-grants/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/cloud-operations/onprem-sa-key-management/versions.tf b/blueprints/cloud-operations/onprem-sa-key-management/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/cloud-operations/onprem-sa-key-management/versions.tf +++ b/blueprints/cloud-operations/onprem-sa-key-management/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/cloud-operations/packer-image-builder/versions.tf b/blueprints/cloud-operations/packer-image-builder/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/cloud-operations/packer-image-builder/versions.tf +++ b/blueprints/cloud-operations/packer-image-builder/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/cloud-operations/quota-monitoring/versions.tf b/blueprints/cloud-operations/quota-monitoring/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/cloud-operations/quota-monitoring/versions.tf +++ b/blueprints/cloud-operations/quota-monitoring/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/cloud-operations/scheduled-asset-inventory-export-bq/versions.tf b/blueprints/cloud-operations/scheduled-asset-inventory-export-bq/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/cloud-operations/scheduled-asset-inventory-export-bq/versions.tf +++ b/blueprints/cloud-operations/scheduled-asset-inventory-export-bq/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/data-solutions/bq-ml/versions.tf b/blueprints/data-solutions/bq-ml/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/data-solutions/bq-ml/versions.tf +++ b/blueprints/data-solutions/bq-ml/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/data-solutions/cmek-via-centralized-kms/versions.tf b/blueprints/data-solutions/cmek-via-centralized-kms/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/data-solutions/cmek-via-centralized-kms/versions.tf +++ b/blueprints/data-solutions/cmek-via-centralized-kms/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/data-solutions/data-playground/versions.tf b/blueprints/data-solutions/data-playground/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/data-solutions/data-playground/versions.tf +++ b/blueprints/data-solutions/data-playground/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/data-solutions/gcs-to-bq-with-least-privileges/versions.tf b/blueprints/data-solutions/gcs-to-bq-with-least-privileges/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/data-solutions/gcs-to-bq-with-least-privileges/versions.tf +++ b/blueprints/data-solutions/gcs-to-bq-with-least-privileges/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/factories/net-vpc-firewall-yaml/versions.tf b/blueprints/factories/net-vpc-firewall-yaml/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/factories/net-vpc-firewall-yaml/versions.tf +++ b/blueprints/factories/net-vpc-firewall-yaml/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/gke/autopilot/cluster.tf b/blueprints/gke/autopilot/cluster.tf index db4f29cc..49409c44 100644 --- a/blueprints/gke/autopilot/cluster.tf +++ b/blueprints/gke/autopilot/cluster.tf @@ -30,9 +30,17 @@ module "cluster" { # autopilot = true # } # monitoring_config = { + # # (Optional) control plane metrics # enable_api_server_metrics = true # enable_controller_manager_metrics = true # enable_scheduler_metrics = true + # # (Optional) kube state metrics + # enable_daemonset_metrics = true + # enable_deployment_metrics = true + # enable_hpa_metrics = true + # enable_pod_metrics = true + # enable_statefulset_metrics = true + # enable_storage_metrics = true # } # cluster_autoscaling = { # auto_provisioning_defaults = { diff --git a/blueprints/gke/multitenant-fleet/README.md b/blueprints/gke/multitenant-fleet/README.md index 8af50bc3..ed89a878 100644 --- a/blueprints/gke/multitenant-fleet/README.md +++ b/blueprints/gke/multitenant-fleet/README.md @@ -245,20 +245,20 @@ module "gke" { | name | description | type | required | default | |---|---|:---:|:---:|:---:| | [billing_account_id](variables.tf#L17) | Billing account ID. | string | ✓ | | -| [folder_id](variables.tf#L148) | Folder used for the GKE project in folders/nnnnnnnnnnn format. | string | ✓ | | -| [prefix](variables.tf#L199) | Prefix used for resource names. | string | ✓ | | -| [project_id](variables.tf#L208) | ID of the project that will contain all the clusters. | string | ✓ | | -| [vpc_config](variables.tf#L220) | Shared VPC project and VPC details. | object({…}) | ✓ | | -| [clusters](variables.tf#L22) | Clusters configuration. Refer to the gke-cluster module for type details. | map(object({…})) | | {} | -| [fleet_configmanagement_clusters](variables.tf#L86) | Config management features enabled on specific sets of member clusters, in config name => [cluster name] format. | map(list(string)) | | {} | -| [fleet_configmanagement_templates](variables.tf#L93) | Sets of config management configurations that can be applied to member clusters, in config name => {options} format. | map(object({…})) | | {} | -| [fleet_features](variables.tf#L128) | Enable and configure fleet features. Set to null to disable GKE Hub if fleet workload identity is not used. | object({…}) | | null | -| [fleet_workload_identity](variables.tf#L141) | Use Fleet Workload Identity for clusters. Enables GKE Hub if set to true. | bool | | false | -| [group_iam](variables.tf#L153) | Project-level IAM bindings for groups. Use group emails as keys, list of roles as values. | map(list(string)) | | {} | -| [iam](variables.tf#L160) | Project-level authoritative IAM bindings for users and service accounts in {ROLE => [MEMBERS]} format. | map(list(string)) | | {} | -| [labels](variables.tf#L167) | Project-level labels. | map(string) | | {} | -| [nodepools](variables.tf#L173) | Nodepools configuration. Refer to the gke-nodepool module for type details. | map(map(object({…}))) | | {} | -| [project_services](variables.tf#L213) | Additional project services to enable. | list(string) | | [] | +| [folder_id](variables.tf#L154) | Folder used for the GKE project in folders/nnnnnnnnnnn format. | string | ✓ | | +| [prefix](variables.tf#L205) | Prefix used for resource names. | string | ✓ | | +| [project_id](variables.tf#L214) | ID of the project that will contain all the clusters. | string | ✓ | | +| [vpc_config](variables.tf#L226) | Shared VPC project and VPC details. | object({…}) | ✓ | | +| [clusters](variables.tf#L22) | Clusters configuration. Refer to the gke-cluster module for type details. | map(object({…})) | | {} | +| [fleet_configmanagement_clusters](variables.tf#L92) | Config management features enabled on specific sets of member clusters, in config name => [cluster name] format. | map(list(string)) | | {} | +| [fleet_configmanagement_templates](variables.tf#L99) | Sets of config management configurations that can be applied to member clusters, in config name => {options} format. | map(object({…})) | | {} | +| [fleet_features](variables.tf#L134) | Enable and configure fleet features. Set to null to disable GKE Hub if fleet workload identity is not used. | object({…}) | | null | +| [fleet_workload_identity](variables.tf#L147) | Use Fleet Workload Identity for clusters. Enables GKE Hub if set to true. | bool | | false | +| [group_iam](variables.tf#L159) | Project-level IAM bindings for groups. Use group emails as keys, list of roles as values. | map(list(string)) | | {} | +| [iam](variables.tf#L166) | Project-level authoritative IAM bindings for users and service accounts in {ROLE => [MEMBERS]} format. | map(list(string)) | | {} | +| [labels](variables.tf#L173) | Project-level labels. | map(string) | | {} | +| [nodepools](variables.tf#L179) | Nodepools configuration. Refer to the gke-nodepool module for type details. | map(map(object({…}))) | | {} | +| [project_services](variables.tf#L219) | Additional project services to enable. | list(string) | | [] | ## Outputs diff --git a/blueprints/gke/multitenant-fleet/variables.tf b/blueprints/gke/multitenant-fleet/variables.tf index 6f100802..5d34440f 100644 --- a/blueprints/gke/multitenant-fleet/variables.tf +++ b/blueprints/gke/multitenant-fleet/variables.tf @@ -50,12 +50,18 @@ variable "clusters" { monitoring_config = optional(object({ enable_system_metrics = optional(bool, true) - # Control plane metrics + # (Optional) control plane metrics enable_api_server_metrics = optional(bool, false) enable_controller_manager_metrics = optional(bool, false) enable_scheduler_metrics = optional(bool, false) - # TODO add kube state metrics + # (Optional) kube state metrics + enable_daemonset_metrics = optional(bool, false) + enable_deployment_metrics = optional(bool, false) + enable_hpa_metrics = optional(bool, false) + enable_pod_metrics = optional(bool, false) + enable_statefulset_metrics = optional(bool, false) + enable_storage_metrics = optional(bool, false) # Google Cloud Managed Service for Prometheus enable_managed_prometheus = optional(bool, true) diff --git a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/versions.tf b/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/versions.tf +++ b/blueprints/networking/__need_fixing/nginx-reverse-proxy-cluster/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/networking/__need_fixing/onprem-google-access-dns/versions.tf b/blueprints/networking/__need_fixing/onprem-google-access-dns/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/__need_fixing/onprem-google-access-dns/versions.tf +++ b/blueprints/networking/__need_fixing/onprem-google-access-dns/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/networking/decentralized-firewall/versions.tf b/blueprints/networking/decentralized-firewall/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/decentralized-firewall/versions.tf +++ b/blueprints/networking/decentralized-firewall/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/networking/filtering-proxy-psc/versions.tf b/blueprints/networking/filtering-proxy-psc/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/filtering-proxy-psc/versions.tf +++ b/blueprints/networking/filtering-proxy-psc/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/networking/filtering-proxy/versions.tf b/blueprints/networking/filtering-proxy/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/filtering-proxy/versions.tf +++ b/blueprints/networking/filtering-proxy/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/networking/hub-and-spoke-peering/versions.tf b/blueprints/networking/hub-and-spoke-peering/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/hub-and-spoke-peering/versions.tf +++ b/blueprints/networking/hub-and-spoke-peering/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/networking/hub-and-spoke-vpn/versions.tf b/blueprints/networking/hub-and-spoke-vpn/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/hub-and-spoke-vpn/versions.tf +++ b/blueprints/networking/hub-and-spoke-vpn/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/networking/ilb-next-hop/versions.tf b/blueprints/networking/ilb-next-hop/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/ilb-next-hop/versions.tf +++ b/blueprints/networking/ilb-next-hop/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/networking/private-cloud-function-from-onprem/versions.tf b/blueprints/networking/private-cloud-function-from-onprem/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/private-cloud-function-from-onprem/versions.tf +++ b/blueprints/networking/private-cloud-function-from-onprem/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/networking/shared-vpc-gke/versions.tf b/blueprints/networking/shared-vpc-gke/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/networking/shared-vpc-gke/versions.tf +++ b/blueprints/networking/shared-vpc-gke/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/blueprints/third-party-solutions/openshift/tf/versions.tf b/blueprints/third-party-solutions/openshift/tf/versions.tf index e4f7404f..91a91a31 100644 --- a/blueprints/third-party-solutions/openshift/tf/versions.tf +++ b/blueprints/third-party-solutions/openshift/tf/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/default-versions.tf b/default-versions.tf index f494b243..91a91a31 100644 --- a/default-versions.tf +++ b/default-versions.tf @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/fast/stages/3-gke-multitenant/dev/README.md b/fast/stages/3-gke-multitenant/dev/README.md index 105add99..f099c10b 100644 --- a/fast/stages/3-gke-multitenant/dev/README.md +++ b/fast/stages/3-gke-multitenant/dev/README.md @@ -163,21 +163,21 @@ Leave all these variables unset (or set to `null`) to disable fleet management. |---|---|:---:|:---:|:---:|:---:| | [automation](variables.tf#L21) | Automation resources created by the bootstrap stage. | object({…}) | ✓ | | 0-bootstrap | | [billing_account](variables.tf#L29) | Billing account id. If billing account is not part of the same org set `is_org_level` to false. | object({…}) | ✓ | | 0-bootstrap | -| [folder_ids](variables.tf#L168) | Folders to be used for the networking resources in folders/nnnnnnnnnnn format. If null, folder will be created. | object({…}) | ✓ | | 1-resman | -| [host_project_ids](variables.tf#L183) | Host project for the shared VPC. | object({…}) | ✓ | | 2-networking | -| [prefix](variables.tf#L236) | Prefix used for resources that need unique names. | string | ✓ | | | -| [vpc_self_links](variables.tf#L252) | Self link for the shared VPC. | object({…}) | ✓ | | 2-networking | -| [clusters](variables.tf#L42) | Clusters configuration. Refer to the gke-cluster-standard module for type details. | map(object({…})) | | {} | | -| [fleet_configmanagement_clusters](variables.tf#L105) | Config management features enabled on specific sets of member clusters, in config name => [cluster name] format. | map(list(string)) | | {} | | -| [fleet_configmanagement_templates](variables.tf#L113) | Sets of config management configurations that can be applied to member clusters, in config name => {options} format. | map(object({…})) | | {} | | -| [fleet_features](variables.tf#L148) | Enable and configure fleet features. Set to null to disable GKE Hub if fleet workload identity is not used. | object({…}) | | null | | -| [fleet_workload_identity](variables.tf#L161) | Use Fleet Workload Identity for clusters. Enables GKE Hub if set to true. | bool | | false | | -| [group_iam](variables.tf#L176) | Project-level authoritative IAM bindings for groups in {GROUP_EMAIL => [ROLES]} format. Use group emails as keys, list of roles as values. | map(list(string)) | | {} | | -| [iam](variables.tf#L191) | Project-level authoritative IAM bindings for users and service accounts in {ROLE => [MEMBERS]} format. | map(list(string)) | | {} | | -| [labels](variables.tf#L198) | Project-level labels. | map(string) | | {} | | -| [nodepools](variables.tf#L204) | Nodepools configuration. Refer to the gke-nodepool module for type details. | map(map(object({…}))) | | {} | | -| [outputs_location](variables.tf#L230) | Path where providers, tfvars files, and lists for the following stages are written. Leave empty to disable. | string | | null | | -| [project_services](variables.tf#L245) | Additional project services to enable. | list(string) | | [] | | +| [folder_ids](variables.tf#L174) | Folders to be used for the networking resources in folders/nnnnnnnnnnn format. If null, folder will be created. | object({…}) | ✓ | | 1-resman | +| [host_project_ids](variables.tf#L189) | Host project for the shared VPC. | object({…}) | ✓ | | 2-networking | +| [prefix](variables.tf#L242) | Prefix used for resources that need unique names. | string | ✓ | | | +| [vpc_self_links](variables.tf#L258) | Self link for the shared VPC. | object({…}) | ✓ | | 2-networking | +| [clusters](variables.tf#L42) | Clusters configuration. Refer to the gke-cluster-standard module for type details. | map(object({…})) | | {} | | +| [fleet_configmanagement_clusters](variables.tf#L111) | Config management features enabled on specific sets of member clusters, in config name => [cluster name] format. | map(list(string)) | | {} | | +| [fleet_configmanagement_templates](variables.tf#L119) | Sets of config management configurations that can be applied to member clusters, in config name => {options} format. | map(object({…})) | | {} | | +| [fleet_features](variables.tf#L154) | Enable and configure fleet features. Set to null to disable GKE Hub if fleet workload identity is not used. | object({…}) | | null | | +| [fleet_workload_identity](variables.tf#L167) | Use Fleet Workload Identity for clusters. Enables GKE Hub if set to true. | bool | | false | | +| [group_iam](variables.tf#L182) | Project-level authoritative IAM bindings for groups in {GROUP_EMAIL => [ROLES]} format. Use group emails as keys, list of roles as values. | map(list(string)) | | {} | | +| [iam](variables.tf#L197) | Project-level authoritative IAM bindings for users and service accounts in {ROLE => [MEMBERS]} format. | map(list(string)) | | {} | | +| [labels](variables.tf#L204) | Project-level labels. | map(string) | | {} | | +| [nodepools](variables.tf#L210) | Nodepools configuration. Refer to the gke-nodepool module for type details. | map(map(object({…}))) | | {} | | +| [outputs_location](variables.tf#L236) | Path where providers, tfvars files, and lists for the following stages are written. Leave empty to disable. | string | | null | | +| [project_services](variables.tf#L251) | Additional project services to enable. | list(string) | | [] | | ## Outputs diff --git a/fast/stages/3-gke-multitenant/dev/variables.tf b/fast/stages/3-gke-multitenant/dev/variables.tf index 4d177938..831f828b 100644 --- a/fast/stages/3-gke-multitenant/dev/variables.tf +++ b/fast/stages/3-gke-multitenant/dev/variables.tf @@ -70,12 +70,18 @@ variable "clusters" { monitoring_config = optional(object({ enable_system_metrics = optional(bool, true) - # Control plane metrics + # (Optional) control plane metrics enable_api_server_metrics = optional(bool, false) enable_controller_manager_metrics = optional(bool, false) enable_scheduler_metrics = optional(bool, false) - # TODO add kube state metrics + # (Optional) kube state metrics + enable_daemonset_metrics = optional(bool, false) + enable_deployment_metrics = optional(bool, false) + enable_hpa_metrics = optional(bool, false) + enable_pod_metrics = optional(bool, false) + enable_statefulset_metrics = optional(bool, false) + enable_storage_metrics = optional(bool, false) # Google Cloud Managed Service for Prometheus enable_managed_prometheus = optional(bool, true) diff --git a/modules/__experimental/net-neg/versions.tf b/modules/__experimental/net-neg/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/__experimental/net-neg/versions.tf +++ b/modules/__experimental/net-neg/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/alloydb-instance/versions.tf b/modules/alloydb-instance/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/alloydb-instance/versions.tf +++ b/modules/alloydb-instance/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/api-gateway/versions.tf b/modules/api-gateway/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/api-gateway/versions.tf +++ b/modules/api-gateway/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/apigee/versions.tf b/modules/apigee/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/apigee/versions.tf +++ b/modules/apigee/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/artifact-registry/versions.tf b/modules/artifact-registry/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/artifact-registry/versions.tf +++ b/modules/artifact-registry/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/bigquery-dataset/versions.tf b/modules/bigquery-dataset/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/bigquery-dataset/versions.tf +++ b/modules/bigquery-dataset/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/bigtable-instance/versions.tf b/modules/bigtable-instance/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/bigtable-instance/versions.tf +++ b/modules/bigtable-instance/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/billing-budget/versions.tf b/modules/billing-budget/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/billing-budget/versions.tf +++ b/modules/billing-budget/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/binauthz/versions.tf b/modules/binauthz/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/binauthz/versions.tf +++ b/modules/binauthz/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-config-container/__need_fixing/onprem/versions.tf b/modules/cloud-config-container/__need_fixing/onprem/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-config-container/__need_fixing/onprem/versions.tf +++ b/modules/cloud-config-container/__need_fixing/onprem/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-config-container/coredns/versions.tf b/modules/cloud-config-container/coredns/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-config-container/coredns/versions.tf +++ b/modules/cloud-config-container/coredns/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-config-container/cos-generic-metadata/versions.tf b/modules/cloud-config-container/cos-generic-metadata/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-config-container/cos-generic-metadata/versions.tf +++ b/modules/cloud-config-container/cos-generic-metadata/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-config-container/envoy-traffic-director/versions.tf b/modules/cloud-config-container/envoy-traffic-director/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-config-container/envoy-traffic-director/versions.tf +++ b/modules/cloud-config-container/envoy-traffic-director/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-config-container/mysql/versions.tf b/modules/cloud-config-container/mysql/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-config-container/mysql/versions.tf +++ b/modules/cloud-config-container/mysql/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-config-container/nginx-tls/versions.tf b/modules/cloud-config-container/nginx-tls/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-config-container/nginx-tls/versions.tf +++ b/modules/cloud-config-container/nginx-tls/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-config-container/nginx/versions.tf b/modules/cloud-config-container/nginx/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-config-container/nginx/versions.tf +++ b/modules/cloud-config-container/nginx/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-config-container/simple-nva/versions.tf b/modules/cloud-config-container/simple-nva/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-config-container/simple-nva/versions.tf +++ b/modules/cloud-config-container/simple-nva/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-config-container/squid/versions.tf b/modules/cloud-config-container/squid/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-config-container/squid/versions.tf +++ b/modules/cloud-config-container/squid/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-function-v1/versions.tf b/modules/cloud-function-v1/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-function-v1/versions.tf +++ b/modules/cloud-function-v1/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-function-v2/versions.tf b/modules/cloud-function-v2/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-function-v2/versions.tf +++ b/modules/cloud-function-v2/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-identity-group/versions.tf b/modules/cloud-identity-group/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-identity-group/versions.tf +++ b/modules/cloud-identity-group/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloud-run/versions.tf b/modules/cloud-run/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloud-run/versions.tf +++ b/modules/cloud-run/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/cloudsql-instance/versions.tf b/modules/cloudsql-instance/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/cloudsql-instance/versions.tf +++ b/modules/cloudsql-instance/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/compute-mig/versions.tf b/modules/compute-mig/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/compute-mig/versions.tf +++ b/modules/compute-mig/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/compute-vm/versions.tf b/modules/compute-vm/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/compute-vm/versions.tf +++ b/modules/compute-vm/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/container-registry/versions.tf b/modules/container-registry/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/container-registry/versions.tf +++ b/modules/container-registry/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/data-catalog-policy-tag/versions.tf b/modules/data-catalog-policy-tag/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/data-catalog-policy-tag/versions.tf +++ b/modules/data-catalog-policy-tag/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/datafusion/versions.tf b/modules/datafusion/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/datafusion/versions.tf +++ b/modules/datafusion/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/dataplex-datascan/versions.tf b/modules/dataplex-datascan/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/dataplex-datascan/versions.tf +++ b/modules/dataplex-datascan/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/dataplex/versions.tf b/modules/dataplex/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/dataplex/versions.tf +++ b/modules/dataplex/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/dataproc/versions.tf b/modules/dataproc/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/dataproc/versions.tf +++ b/modules/dataproc/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/dns-response-policy/versions.tf b/modules/dns-response-policy/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/dns-response-policy/versions.tf +++ b/modules/dns-response-policy/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/dns/versions.tf b/modules/dns/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/dns/versions.tf +++ b/modules/dns/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/endpoints/versions.tf b/modules/endpoints/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/endpoints/versions.tf +++ b/modules/endpoints/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/folder/versions.tf b/modules/folder/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/folder/versions.tf +++ b/modules/folder/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/gcs/versions.tf b/modules/gcs/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/gcs/versions.tf +++ b/modules/gcs/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/gcve-private-cloud/versions.tf b/modules/gcve-private-cloud/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/gcve-private-cloud/versions.tf +++ b/modules/gcve-private-cloud/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/gke-cluster-autopilot/README.md b/modules/gke-cluster-autopilot/README.md index e5677a58..b54588c8 100644 --- a/modules/gke-cluster-autopilot/README.md +++ b/modules/gke-cluster-autopilot/README.md @@ -107,12 +107,12 @@ module "cluster-1" { ### Monitoring configuration > [!NOTE] -> System metrics collection is pre-configured for Autopilot clusters and cannot be disabled. +> [System metrics](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-metrics#enable-system-metrics) collection is pre-configured for Autopilot clusters and cannot be disabled. > [!WARNING] > GKE **workload metrics** is deprecated and removed in GKE 1.24 and later. Workload metrics is replaced by [Google Cloud Managed Service for Prometheus](https://cloud.google.com/stackdriver/docs/managed-prometheus), which is Google's recommended way to monitor Kubernetes applications by using Cloud Monitoring. -This example shows how to [configure collection of Kubernetes control plane metrics](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-metrics#enable-control-plane-metrics). The metrics for these components are not collected by default. +This example shows how to [configure collection of Kubernetes control plane metrics](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-metrics#enable-control-plane-metrics). These metrics are optional and are not collected by default. ```hcl module "cluster-1" { @@ -134,6 +134,36 @@ module "cluster-1" { # tftest modules=1 resources=1 inventory=monitoring-config-control-plane.yaml ``` +The next example shows how to [configure collection of kube state metrics](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-metrics#enable-ksm). These metrics are optional and are not collected by default. + +```hcl +module "cluster-1" { + source = "./fabric/modules/gke-cluster-autopilot" + project_id = var.project_id + name = "cluster-1" + location = "europe-west1" + vpc_config = { + network = var.vpc.self_link + subnetwork = var.subnet.self_link + secondary_range_names = {} # use default names "pods" and "services" + } + monitoring_config = { + enable_daemonset_metrics = true + enable_deployment_metrics = true + enable_hpa_metrics = true + enable_pod_metrics = true + enable_statefulset_metrics = true + enable_storage_metrics = true + # Kube state metrics collection requires Google Cloud Managed Service for Prometheus, + # which is enabled by default. + # enable_managed_prometheus = true + } +} +# tftest modules=1 resources=1 inventory=monitoring-config-kube-state.yaml +``` + +The *control plane metrics* and *kube state metrics* collection can be configured in a single `monitoring_config` block. + ### Backup for GKE > [!NOTE] @@ -177,9 +207,9 @@ module "cluster-1" { | name | description | type | required | default | |---|---|:---:|:---:|:---:| | [location](variables.tf#L110) | Autopilot clusters are always regional. | string | ✓ | | -| [name](variables.tf#L170) | Cluster name. | string | ✓ | | -| [project_id](variables.tf#L196) | Cluster project ID. | string | ✓ | | -| [vpc_config](variables.tf#L225) | VPC-level configuration. | object({…}) | ✓ | | +| [name](variables.tf#L187) | Cluster name. | string | ✓ | | +| [project_id](variables.tf#L213) | Cluster project ID. | string | ✓ | | +| [vpc_config](variables.tf#L242) | VPC-level configuration. | object({…}) | ✓ | | | [backup_configs](variables.tf#L17) | Configuration for Backup for GKE. | object({…}) | | {} | | [description](variables.tf#L37) | Cluster description. | string | | null | | [enable_addons](variables.tf#L43) | Addons enabled in the cluster (true means enabled). | object({…}) | | {…} | @@ -189,12 +219,12 @@ module "cluster-1" { | [logging_config](variables.tf#L115) | Logging configuration. | object({…}) | | {} | | [maintenance_config](variables.tf#L126) | Maintenance window configuration. | object({…}) | | {…} | | [min_master_version](variables.tf#L149) | Minimum version of the master, defaults to the version of the most recent official release. | string | | null | -| [monitoring_config](variables.tf#L155) | Monitoring configuration. System metrics collection cannot be disabled for Autopilot clusters. Control plane metrics are optional. Google Cloud Managed Service for Prometheus is enabled by default. | object({…}) | | {} | -| [node_locations](variables.tf#L175) | Zones in which the cluster's nodes are located. | list(string) | | [] | -| [private_cluster_config](variables.tf#L182) | Private cluster configuration. | object({…}) | | null | -| [release_channel](variables.tf#L201) | Release channel for GKE upgrades. Clusters created in the Autopilot mode must use a release channel. Choose between \"RAPID\", \"REGULAR\", and \"STABLE\". | string | | "REGULAR" | -| [service_account](variables.tf#L212) | The Google Cloud Platform Service Account to be used by the node VMs created by GKE Autopilot. | string | | null | -| [tags](variables.tf#L218) | Network tags applied to nodes. | list(string) | | [] | +| [monitoring_config](variables.tf#L155) | Monitoring configuration. System metrics collection cannot be disabled. Control plane metrics are optional. Kube state metrics are optional. Google Cloud Managed Service for Prometheus is enabled by default. | object({…}) | | {} | +| [node_locations](variables.tf#L192) | Zones in which the cluster's nodes are located. | list(string) | | [] | +| [private_cluster_config](variables.tf#L199) | Private cluster configuration. | object({…}) | | null | +| [release_channel](variables.tf#L218) | Release channel for GKE upgrades. Clusters created in the Autopilot mode must use a release channel. Choose between \"RAPID\", \"REGULAR\", and \"STABLE\". | string | | "REGULAR" | +| [service_account](variables.tf#L229) | The Google Cloud Platform Service Account to be used by the node VMs created by GKE Autopilot. | string | | null | +| [tags](variables.tf#L235) | Network tags applied to nodes. | list(string) | | [] | ## Outputs diff --git a/modules/gke-cluster-autopilot/main.tf b/modules/gke-cluster-autopilot/main.tf index 7948fd58..4ca8ee54 100644 --- a/modules/gke-cluster-autopilot/main.tf +++ b/modules/gke-cluster-autopilot/main.tf @@ -211,6 +211,13 @@ resource "google_container_cluster" "cluster" { var.monitoring_config.enable_api_server_metrics ? "APISERVER" : null, var.monitoring_config.enable_controller_manager_metrics ? "CONTROLLER_MANAGER" : null, var.monitoring_config.enable_scheduler_metrics ? "SCHEDULER" : null, + # Kube state metrics: + var.monitoring_config.enable_daemonset_metrics ? "DAEMONSET" : null, + var.monitoring_config.enable_deployment_metrics ? "DEPLOYMENT" : null, + var.monitoring_config.enable_hpa_metrics ? "HPA" : null, + var.monitoring_config.enable_pod_metrics ? "POD" : null, + var.monitoring_config.enable_statefulset_metrics ? "STATEFULSET" : null, + var.monitoring_config.enable_storage_metrics ? "STORAGE" : null, ])) managed_prometheus { enabled = var.monitoring_config.enable_managed_prometheus diff --git a/modules/gke-cluster-autopilot/variables.tf b/modules/gke-cluster-autopilot/variables.tf index bf410222..24f8cd2b 100644 --- a/modules/gke-cluster-autopilot/variables.tf +++ b/modules/gke-cluster-autopilot/variables.tf @@ -153,18 +153,35 @@ variable "min_master_version" { } variable "monitoring_config" { - description = "Monitoring configuration. System metrics collection cannot be disabled for Autopilot clusters. Control plane metrics are optional. Google Cloud Managed Service for Prometheus is enabled by default." + description = "Monitoring configuration. System metrics collection cannot be disabled. Control plane metrics are optional. Kube state metrics are optional. Google Cloud Managed Service for Prometheus is enabled by default." type = object({ # Control plane metrics enable_api_server_metrics = optional(bool, false) enable_controller_manager_metrics = optional(bool, false) enable_scheduler_metrics = optional(bool, false) - # Google Cloud Managed Service for Prometheus - # GKE Autopilot clusters running GKE version 1.25 or greater must have this on. + # Kube state metrics. Requires managed Prometheus. Requires provider version >= v4.82.0 + enable_daemonset_metrics = optional(bool, false) + enable_deployment_metrics = optional(bool, false) + enable_hpa_metrics = optional(bool, false) + enable_pod_metrics = optional(bool, false) + enable_statefulset_metrics = optional(bool, false) + enable_storage_metrics = optional(bool, false) + # Google Cloud Managed Service for Prometheus. Autopilot clusters version >= 1.25 must have this on. enable_managed_prometheus = optional(bool, true) }) default = {} nullable = false + validation { + condition = anytrue([ + var.monitoring_config.enable_daemonset_metrics, + var.monitoring_config.enable_deployment_metrics, + var.monitoring_config.enable_hpa_metrics, + var.monitoring_config.enable_pod_metrics, + var.monitoring_config.enable_statefulset_metrics, + var.monitoring_config.enable_storage_metrics, + ]) ? var.monitoring_config.enable_managed_prometheus : true + error_message = "Kube state metrics collection requires Google Cloud Managed Service for Prometheus to be enabled." + } } variable "name" { diff --git a/modules/gke-cluster-autopilot/versions.tf b/modules/gke-cluster-autopilot/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/gke-cluster-autopilot/versions.tf +++ b/modules/gke-cluster-autopilot/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/gke-cluster-standard/README.md b/modules/gke-cluster-standard/README.md index da5a8897..3c9b1eb8 100644 --- a/modules/gke-cluster-standard/README.md +++ b/modules/gke-cluster-standard/README.md @@ -118,7 +118,7 @@ module "cluster-1" { ### Monitoring configuration -This example shows how to [configure collection of Kubernetes control plane metrics](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-metrics#enable-control-plane-metrics). The metrics for these components are not collected by default. +This example shows how to [configure collection of Kubernetes control plane metrics](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-metrics#enable-control-plane-metrics). These metrics are optional and are not collected by default. ```hcl module "cluster-1" { @@ -129,7 +129,7 @@ module "cluster-1" { vpc_config = { network = var.vpc.self_link subnetwork = var.subnet.self_link - secondary_range_names = {} + secondary_range_names = {} # use default names "pods" and "services" } monitoring_config = { enable_api_server_metrics = true @@ -140,6 +140,35 @@ module "cluster-1" { # tftest modules=1 resources=1 inventory=monitoring-config-control-plane.yaml ``` +The next example shows how to [configure collection of kube state metrics](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-metrics#enable-ksm). These metrics are optional and are not collected by default. + +```hcl +module "cluster-1" { + source = "./fabric/modules/gke-cluster-standard" + project_id = "myproject" + name = "cluster-1" + location = "europe-west1-b" + vpc_config = { + network = var.vpc.self_link + subnetwork = var.subnet.self_link + secondary_range_names = {} # use default names "pods" and "services" + } + monitoring_config = { + enable_daemonset_metrics = true + enable_deployment_metrics = true + enable_hpa_metrics = true + enable_pod_metrics = true + enable_statefulset_metrics = true + enable_storage_metrics = true + # Kube state metrics collection requires Google Cloud Managed Service for Prometheus, + # which is enabled by default. + # enable_managed_prometheus = true + } +} +# tftest modules=1 resources=1 inventory=monitoring-config-kube-state.yaml +``` + +The *control plane metrics* and *kube state metrics* collection can be configured in a single `monitoring_config` block. ### Disable GKE logs or metrics collection @@ -168,7 +197,7 @@ module "cluster-1" { # tftest modules=1 resources=1 inventory=logging-config-disable-all.yaml ``` -This example shows how to fully disable metrics collection on a zonal GKE Standard cluster. This is not recommended. +The next example shows how to fully disable metrics collection on a zonal GKE Standard cluster. This is not recommended. ```hcl module "cluster-1" { @@ -278,9 +307,9 @@ module "cluster-1" { | name | description | type | required | default | |---|---|:---:|:---:|:---:| | [location](variables.tf#L138) | Cluster zone or region. | string | ✓ | | -| [name](variables.tf#L226) | Cluster name. | string | ✓ | | -| [project_id](variables.tf#L252) | Cluster project id. | string | ✓ | | -| [vpc_config](variables.tf#L269) | VPC-level configuration. | object({…}) | ✓ | | +| [name](variables.tf#L249) | Cluster name. | string | ✓ | | +| [project_id](variables.tf#L275) | Cluster project id. | string | ✓ | | +| [vpc_config](variables.tf#L292) | VPC-level configuration. | object({…}) | ✓ | | | [backup_configs](variables.tf#L17) | Configuration for Backup for GKE. | object({…}) | | {} | | [cluster_autoscaling](variables.tf#L37) | Enable and configure limits for Node Auto-Provisioning with Cluster Autoscaler. | object({…}) | | null | | [description](variables.tf#L58) | Cluster description. | string | | null | @@ -292,11 +321,11 @@ module "cluster-1" { | [maintenance_config](variables.tf#L164) | Maintenance window configuration. | object({…}) | | {…} | | [max_pods_per_node](variables.tf#L187) | Maximum number of pods per node in this cluster. | number | | 110 | | [min_master_version](variables.tf#L193) | Minimum version of the master, defaults to the version of the most recent official release. | string | | null | -| [monitoring_config](variables.tf#L199) | Monitoring configuration. Google Cloud Managed Service for Prometheus is enabled by default. | object({…}) | | {} | -| [node_locations](variables.tf#L231) | Zones in which the cluster's nodes are located. | list(string) | | [] | -| [private_cluster_config](variables.tf#L238) | Private cluster configuration. | object({…}) | | null | -| [release_channel](variables.tf#L257) | Release channel for GKE upgrades. | string | | null | -| [tags](variables.tf#L263) | Network tags applied to nodes. | list(string) | | null | +| [monitoring_config](variables.tf#L199) | Monitoring configuration. Google Cloud Managed Service for Prometheus is enabled by default. | object({…}) | | {} | +| [node_locations](variables.tf#L254) | Zones in which the cluster's nodes are located. | list(string) | | [] | +| [private_cluster_config](variables.tf#L261) | Private cluster configuration. | object({…}) | | null | +| [release_channel](variables.tf#L280) | Release channel for GKE upgrades. | string | | null | +| [tags](variables.tf#L286) | Network tags applied to nodes. | list(string) | | null | ## Outputs diff --git a/modules/gke-cluster-standard/main.tf b/modules/gke-cluster-standard/main.tf index 666de53f..d27f6ab3 100644 --- a/modules/gke-cluster-standard/main.tf +++ b/modules/gke-cluster-standard/main.tf @@ -281,10 +281,17 @@ resource "google_container_cluster" "cluster" { enable_components = toset(compact([ # System metrics is the minimum requirement if any other metrics are enabled. This is checked by input var validation. var.monitoring_config.enable_system_metrics ? "SYSTEM_COMPONENTS" : null, - # Control plane metrics: + # Control plane metrics var.monitoring_config.enable_api_server_metrics ? "APISERVER" : null, var.monitoring_config.enable_controller_manager_metrics ? "CONTROLLER_MANAGER" : null, var.monitoring_config.enable_scheduler_metrics ? "SCHEDULER" : null, + # Kube state metrics + var.monitoring_config.enable_daemonset_metrics ? "DAEMONSET" : null, + var.monitoring_config.enable_deployment_metrics ? "DEPLOYMENT" : null, + var.monitoring_config.enable_hpa_metrics ? "HPA" : null, + var.monitoring_config.enable_pod_metrics ? "POD" : null, + var.monitoring_config.enable_statefulset_metrics ? "STATEFULSET" : null, + var.monitoring_config.enable_storage_metrics ? "STORAGE" : null, ])) managed_prometheus { enabled = var.monitoring_config.enable_managed_prometheus diff --git a/modules/gke-cluster-standard/variables.tf b/modules/gke-cluster-standard/variables.tf index 53875961..6b76efa7 100644 --- a/modules/gke-cluster-standard/variables.tf +++ b/modules/gke-cluster-standard/variables.tf @@ -206,7 +206,13 @@ variable "monitoring_config" { enable_controller_manager_metrics = optional(bool, false) enable_scheduler_metrics = optional(bool, false) - # TODO add kube state metrics and validation + # Kube state metrics + enable_daemonset_metrics = optional(bool, false) + enable_deployment_metrics = optional(bool, false) + enable_hpa_metrics = optional(bool, false) + enable_pod_metrics = optional(bool, false) + enable_statefulset_metrics = optional(bool, false) + enable_storage_metrics = optional(bool, false) # Google Cloud Managed Service for Prometheus enable_managed_prometheus = optional(bool, true) @@ -218,9 +224,26 @@ variable "monitoring_config" { var.monitoring_config.enable_api_server_metrics, var.monitoring_config.enable_controller_manager_metrics, var.monitoring_config.enable_scheduler_metrics, + var.monitoring_config.enable_daemonset_metrics, + var.monitoring_config.enable_deployment_metrics, + var.monitoring_config.enable_hpa_metrics, + var.monitoring_config.enable_pod_metrics, + var.monitoring_config.enable_statefulset_metrics, + var.monitoring_config.enable_storage_metrics, ]) ? var.monitoring_config.enable_system_metrics : true error_message = "System metrics are the minimum required component for enabling metrics collection." } + validation { + condition = anytrue([ + var.monitoring_config.enable_daemonset_metrics, + var.monitoring_config.enable_deployment_metrics, + var.monitoring_config.enable_hpa_metrics, + var.monitoring_config.enable_pod_metrics, + var.monitoring_config.enable_statefulset_metrics, + var.monitoring_config.enable_storage_metrics, + ]) ? var.monitoring_config.enable_managed_prometheus : true + error_message = "Kube state metrics collection requires Google Cloud Managed Service for Prometheus to be enabled." + } } variable "name" { diff --git a/modules/gke-cluster-standard/versions.tf b/modules/gke-cluster-standard/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/gke-cluster-standard/versions.tf +++ b/modules/gke-cluster-standard/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/gke-hub/versions.tf b/modules/gke-hub/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/gke-hub/versions.tf +++ b/modules/gke-hub/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/gke-nodepool/versions.tf b/modules/gke-nodepool/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/gke-nodepool/versions.tf +++ b/modules/gke-nodepool/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/iam-service-account/versions.tf b/modules/iam-service-account/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/iam-service-account/versions.tf +++ b/modules/iam-service-account/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/kms/versions.tf b/modules/kms/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/kms/versions.tf +++ b/modules/kms/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/logging-bucket/versions.tf b/modules/logging-bucket/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/logging-bucket/versions.tf +++ b/modules/logging-bucket/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/ncc-spoke-ra/versions.tf b/modules/ncc-spoke-ra/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/ncc-spoke-ra/versions.tf +++ b/modules/ncc-spoke-ra/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-address/versions.tf b/modules/net-address/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-address/versions.tf +++ b/modules/net-address/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-cloudnat/versions.tf b/modules/net-cloudnat/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-cloudnat/versions.tf +++ b/modules/net-cloudnat/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-firewall-policy/versions.tf b/modules/net-firewall-policy/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-firewall-policy/versions.tf +++ b/modules/net-firewall-policy/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-ipsec-over-interconnect/versions.tf b/modules/net-ipsec-over-interconnect/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-ipsec-over-interconnect/versions.tf +++ b/modules/net-ipsec-over-interconnect/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-lb-app-ext/versions.tf b/modules/net-lb-app-ext/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-lb-app-ext/versions.tf +++ b/modules/net-lb-app-ext/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-lb-app-int/versions.tf b/modules/net-lb-app-int/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-lb-app-int/versions.tf +++ b/modules/net-lb-app-int/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-lb-ext/versions.tf b/modules/net-lb-ext/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-lb-ext/versions.tf +++ b/modules/net-lb-ext/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-lb-int/versions.tf b/modules/net-lb-int/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-lb-int/versions.tf +++ b/modules/net-lb-int/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-lb-proxy-int/versions.tf b/modules/net-lb-proxy-int/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-lb-proxy-int/versions.tf +++ b/modules/net-lb-proxy-int/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-swp/versions.tf b/modules/net-swp/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-swp/versions.tf +++ b/modules/net-swp/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-vlan-attachment/versions.tf b/modules/net-vlan-attachment/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-vlan-attachment/versions.tf +++ b/modules/net-vlan-attachment/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-vpc-firewall/versions.tf b/modules/net-vpc-firewall/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-vpc-firewall/versions.tf +++ b/modules/net-vpc-firewall/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-vpc-peering/versions.tf b/modules/net-vpc-peering/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-vpc-peering/versions.tf +++ b/modules/net-vpc-peering/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-vpc/versions.tf b/modules/net-vpc/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-vpc/versions.tf +++ b/modules/net-vpc/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-vpn-dynamic/versions.tf b/modules/net-vpn-dynamic/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-vpn-dynamic/versions.tf +++ b/modules/net-vpn-dynamic/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-vpn-ha/versions.tf b/modules/net-vpn-ha/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-vpn-ha/versions.tf +++ b/modules/net-vpn-ha/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/net-vpn-static/versions.tf b/modules/net-vpn-static/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/net-vpn-static/versions.tf +++ b/modules/net-vpn-static/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/organization/versions.tf b/modules/organization/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/organization/versions.tf +++ b/modules/organization/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/project/versions.tf b/modules/project/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/project/versions.tf +++ b/modules/project/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/projects-data-source/versions.tf b/modules/projects-data-source/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/projects-data-source/versions.tf +++ b/modules/projects-data-source/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/pubsub/versions.tf b/modules/pubsub/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/pubsub/versions.tf +++ b/modules/pubsub/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/secret-manager/versions.tf b/modules/secret-manager/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/secret-manager/versions.tf +++ b/modules/secret-manager/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/service-directory/versions.tf b/modules/service-directory/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/service-directory/versions.tf +++ b/modules/service-directory/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/source-repository/versions.tf b/modules/source-repository/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/source-repository/versions.tf +++ b/modules/source-repository/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/modules/vpc-sc/versions.tf b/modules/vpc-sc/versions.tf index e4f7404f..91a91a31 100644 --- a/modules/vpc-sc/versions.tf +++ b/modules/vpc-sc/versions.tf @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } google-beta = { source = "hashicorp/google-beta" - version = ">= 4.80.0" # tftest + version = ">= 4.82.0" # tftest } } } diff --git a/tests/modules/gke_cluster_autopilot/examples/monitoring-config-kube-state.yaml b/tests/modules/gke_cluster_autopilot/examples/monitoring-config-kube-state.yaml new file mode 100644 index 00000000..32e5bad5 --- /dev/null +++ b/tests/modules/gke_cluster_autopilot/examples/monitoring-config-kube-state.yaml @@ -0,0 +1,30 @@ +# Copyright 2023 Google LLC +# +# Licensed 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 +# +# http://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. + +values: + module.cluster-1.google_container_cluster.cluster: + monitoring_config: + - enable_components: + - DAEMONSET + - DEPLOYMENT + - HPA + - POD + - STATEFULSET + - STORAGE + - SYSTEM_COMPONENTS + managed_prometheus: + - enabled: true + +counts: + google_container_cluster: 1 diff --git a/tests/modules/gke_cluster_standard/examples/monitoring-config-kube-state.yaml b/tests/modules/gke_cluster_standard/examples/monitoring-config-kube-state.yaml new file mode 100644 index 00000000..32e5bad5 --- /dev/null +++ b/tests/modules/gke_cluster_standard/examples/monitoring-config-kube-state.yaml @@ -0,0 +1,30 @@ +# Copyright 2023 Google LLC +# +# Licensed 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 +# +# http://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. + +values: + module.cluster-1.google_container_cluster.cluster: + monitoring_config: + - enable_components: + - DAEMONSET + - DEPLOYMENT + - HPA + - POD + - STATEFULSET + - STORAGE + - SYSTEM_COMPONENTS + managed_prometheus: + - enabled: true + +counts: + google_container_cluster: 1