diff --git a/README.md b/README.md index a4290e0a..1d4cab01 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,7 @@ determining that location is as follows: | create\_project\_sa | Whether the default service account for the project shall be created | `bool` | `true` | no | | default\_network\_tier | Default Network Service Tier for resources created in this project. If unset, the value will not be modified. See https://cloud.google.com/network-tiers/docs/using-network-service-tiers and https://cloud.google.com/network-tiers. | `string` | `""` | no | | default\_service\_account | Project default service account setting: can be one of `delete`, `deprivilege`, `disable`, or `keep`. | `string` | `"disable"` | no | +| deletion\_policy | The deletion policy for the project. | `string` | `null` | no | | disable\_dependent\_services | Whether services that are enabled and which depend on this service should also be disabled when this service is destroyed. | `bool` | `true` | no | | disable\_services\_on\_destroy | Whether project services will be disabled when the resources are destroyed | `bool` | `true` | no | | domain | The domain name (optional). | `string` | `""` | no | diff --git a/main.tf b/main.tf index cff8d323..6f3da1da 100644 --- a/main.tf +++ b/main.tf @@ -71,6 +71,7 @@ module "project-factory" { default_network_tier = var.default_network_tier tag_binding_values = var.tag_binding_values cloud_armor_tier = var.cloud_armor_tier + deletion_policy = var.deletion_policy } /****************************************** diff --git a/modules/core_project_factory/main.tf b/modules/core_project_factory/main.tf index b899de09..8520d2fd 100644 --- a/modules/core_project_factory/main.tf +++ b/modules/core_project_factory/main.tf @@ -77,6 +77,7 @@ resource "google_project" "main" { folder_id = local.project_folder_id billing_account = var.billing_account auto_create_network = var.auto_create_network + deletion_policy = var.deletion_policy labels = var.labels diff --git a/modules/core_project_factory/variables.tf b/modules/core_project_factory/variables.tf index f298bb1d..a110f57f 100644 --- a/modules/core_project_factory/variables.tf +++ b/modules/core_project_factory/variables.tf @@ -276,3 +276,9 @@ variable "cloud_armor_tier" { type = string default = null } + +variable "deletion_policy" { + description = "The deletion policy for the project." + type = string + default = null +} diff --git a/modules/core_project_factory/versions.tf b/modules/core_project_factory/versions.tf index ae8d364e..fb596f59 100644 --- a/modules/core_project_factory/versions.tf +++ b/modules/core_project_factory/versions.tf @@ -20,11 +20,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.33, < 6" + version = ">= 5.41, < 6" } google-beta = { source = "hashicorp/google-beta" - version = ">= 5.33, < 6" + version = ">= 5.41, < 6" } null = { source = "hashicorp/null" diff --git a/modules/fabric-project/README.md b/modules/fabric-project/README.md index 30685c37..dbe10494 100644 --- a/modules/fabric-project/README.md +++ b/modules/fabric-project/README.md @@ -38,6 +38,7 @@ module "project_myproject" { | auto\_create\_network | Whether to create the default network for the project | `bool` | `false` | no | | billing\_account | Billing account id. | `string` | `""` | no | | custom\_roles | Map of role name => comma-delimited list of permissions to create in this project. | `map(string)` | `{}` | no | +| deletion\_policy | The deletion policy for the project. | `string` | `null` | no | | editors | Optional list of IAM-format members to set as project editor. | `list(string)` | `[]` | no | | extra\_bindings\_members | List of comma-delimited IAM-format members for additional IAM bindings, one item per role. | `list(string)` | `[]` | no | | extra\_bindings\_roles | List of roles for additional IAM bindings, pair with members list below. | `list(string)` | `[]` | no | diff --git a/modules/fabric-project/main.tf b/modules/fabric-project/main.tf index 5ac29186..7855a996 100644 --- a/modules/fabric-project/main.tf +++ b/modules/fabric-project/main.tf @@ -35,6 +35,7 @@ resource "google_project" "project" { billing_account = var.billing_account auto_create_network = var.auto_create_network labels = var.labels + deletion_policy = var.deletion_policy } resource "google_project_service" "project_services" { diff --git a/modules/fabric-project/variables.tf b/modules/fabric-project/variables.tf index dc0baa7d..8f486f6a 100644 --- a/modules/fabric-project/variables.tf +++ b/modules/fabric-project/variables.tf @@ -122,3 +122,8 @@ variable "labels" { default = {} } +variable "deletion_policy" { + description = "The deletion policy for the project." + type = string + default = null +} diff --git a/modules/fabric-project/versions.tf b/modules/fabric-project/versions.tf index f0bb4389..df48321a 100644 --- a/modules/fabric-project/versions.tf +++ b/modules/fabric-project/versions.tf @@ -20,7 +20,7 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 3.43, < 6" + version = ">= 5.41, < 6" } } provider_meta "google" { diff --git a/variables.tf b/variables.tf index 672ddf12..30879775 100644 --- a/variables.tf +++ b/variables.tf @@ -360,9 +360,14 @@ variable "tag_binding_values" { default = [] } - variable "cloud_armor_tier" { description = "Managed protection tier to be set. Possible values are: CA_STANDARD, CA_ENTERPRISE_PAYGO" type = string default = null } + +variable "deletion_policy" { + description = "The deletion policy for the project." + type = string + default = null +} diff --git a/versions.tf b/versions.tf index 1b976833..888770ea 100644 --- a/versions.tf +++ b/versions.tf @@ -19,11 +19,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = ">= 5.33, < 6" + version = ">= 5.41, < 6" } google-beta = { source = "hashicorp/google-beta" - version = ">= 5.33, < 6" + version = ">= 5.41, < 6" } } provider_meta "google" {