Skip to content

Commit 9357725

Browse files
authored
Merge branch 'master' into feat_vpc_gcs_config
2 parents 5369271 + 392453e commit 9357725

File tree

55 files changed

+197
-90
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+197
-90
lines changed

CHANGELOG.md

+23
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
Extending the adopted spec, each change should have a link to its corresponding pull request appended.
88

9+
## [16.0.1](https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v16.0.0...v16.0.1) (2024-08-28)
10+
11+
12+
### Bug Fixes
13+
14+
* switch svpc access to explicit dep on service enablement ([#934](https://github.com/terraform-google-modules/terraform-google-project-factory/issues/934)) ([105be42](https://github.com/terraform-google-modules/terraform-google-project-factory/commit/105be421c9a57f2f29adcaa6fd74377d33652d3a))
15+
16+
## [16.0.0](https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v15.0.1...v16.0.0) (2024-08-14)
17+
18+
19+
### ⚠ BREAKING CHANGES
20+
21+
* **TPG>=5.33:** add support for setting cloud armor tier of the project ([#921](https://github.com/terraform-google-modules/terraform-google-project-factory/issues/921))
22+
23+
### Features
24+
25+
* **TPG>=5.33:** add support for setting cloud armor tier of the project ([#921](https://github.com/terraform-google-modules/terraform-google-project-factory/issues/921)) ([895b501](https://github.com/terraform-google-modules/terraform-google-project-factory/commit/895b501edb3f6b21e2ad6b8f9656a4994b501dd3))
26+
27+
28+
### Bug Fixes
29+
30+
* ignore changes on firebase label ([#931](https://github.com/terraform-google-modules/terraform-google-project-factory/issues/931)) ([e424a35](https://github.com/terraform-google-modules/terraform-google-project-factory/commit/e424a3531381d71d1ba37300de3e94eca89209ae))
31+
932
## [15.0.1](https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v15.0.0...v15.0.1) (2024-05-17)
1033

1134

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# Make will use bash instead of sh
1919
SHELL := /usr/bin/env bash
2020

21-
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.21
21+
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.22
2222
DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools
2323
REGISTRY_URL := gcr.io/cloud-foundation-cicd
2424

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ determining that location is as follows:
137137
| create\_project\_sa | Whether the default service account for the project shall be created | `bool` | `true` | no |
138138
| 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 |
139139
| default\_service\_account | Project default service account setting: can be one of `delete`, `deprivilege`, `disable`, or `keep`. | `string` | `"disable"` | no |
140+
| deletion\_policy | The deletion policy for the project. | `string` | `"PREVENT"` | no |
140141
| 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 |
141142
| disable\_services\_on\_destroy | Whether project services will be disabled when the resources are destroyed | `bool` | `true` | no |
142143
| domain | The domain name (optional). | `string` | `""` | no |

build/int.cloudbuild.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ tags:
188188
- 'integration'
189189
substitutions:
190190
_DOCKER_IMAGE_DEVELOPER_TOOLS: 'cft/developer-tools'
191-
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.21'
191+
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.22'
192192
options:
193193
machineType: 'N1_HIGHCPU_8'
194194
env:

build/lint.cloudbuild.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@ tags:
2121
- 'lint'
2222
substitutions:
2323
_DOCKER_IMAGE_DEVELOPER_TOOLS: 'cft/developer-tools'
24-
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.21'
24+
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.22'
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Upgrading to Project Factory v17.0
2+
3+
The v17.0 release of Project Factory is a backwards incompatible release.
4+
5+
### Google Cloud Provider Project deletion_policy
6+
7+
The `deletion_policy` for projects now defaults to `"PREVENT"` rather than `"DELETE"`. This aligns with the behavior in Google Cloud Platform Provider v6+. To maintain the old behavior you can set `deletion_policy = "DELETE"`.
8+
9+
```diff
10+
module "project" {
11+
- version = "~> 16.0"
12+
+ version = "~> 17.0"
13+
14+
+ deletion_policy = "DELETE"
15+
}
16+
```
17+
18+
### Google Cloud Platform Provider upgrade
19+
20+
The Project Factory module now requires version `5.41` or higher of the Google Cloud Platform Provider and `5.41` or higher of the Google Cloud Platform Beta Provider.

examples/app_engine/main.tf

+4-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ resource "random_string" "suffix" {
2222

2323
module "app-engine-project" {
2424
source = "terraform-google-modules/project-factory/google"
25-
version = "~> 15.0"
25+
version = "~> 16.0"
2626

2727
name = "appeng-${random_string.suffix.result}"
2828
random_project_id = true
@@ -32,11 +32,13 @@ module "app-engine-project" {
3232
activate_apis = [
3333
"appengine.googleapis.com",
3434
]
35+
36+
deletion_policy = "DELETE"
3537
}
3638

3739
module "app-engine" {
3840
source = "terraform-google-modules/project-factory/google//modules/app_engine"
39-
version = "~> 15.0"
41+
version = "~> 16.0"
4042

4143
project_id = module.app-engine-project.project_id
4244
location_id = "us-east4"

examples/budget_project/main.tf

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ resource "random_string" "suffix" {
2222

2323
module "budget_project" {
2424
source = "terraform-google-modules/project-factory/google"
25-
version = "~> 15.0"
25+
version = "~> 16.0"
2626

2727
name = "budget-project-${random_string.suffix.result}"
2828
random_project_id = true
@@ -38,6 +38,7 @@ module "budget_project" {
3838
"billingbudgets.googleapis.com"
3939
]
4040

41+
deletion_policy = "DELETE"
4142
}
4243

4344

@@ -49,7 +50,7 @@ resource "google_pubsub_topic" "budget" {
4950

5051
module "additional_budget" {
5152
source = "terraform-google-modules/project-factory/google//modules/budget"
52-
version = "~> 15.0"
53+
version = "~> 16.0"
5354

5455
billing_account = var.billing_account
5556
projects = [var.parent_project_id, module.budget_project.project_id]

examples/essential_contacts/main.tf

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
module "project-factory" {
1818
source = "terraform-google-modules/project-factory/google"
19-
version = "~> 15.0"
19+
version = "~> 16.0"
2020

2121
name = "pf-ci-test-ec-${var.random_string_for_testing}"
2222
random_project_id = true
@@ -41,4 +41,6 @@ module "project-factory" {
4141

4242
default_service_account = "DISABLE"
4343
disable_services_on_destroy = false
44+
45+
deletion_policy = "DELETE"
4446
}

examples/fabric_project/main.tf

+3-1
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@ resource "random_string" "prefix" {
2727

2828
module "fabric-project" {
2929
source = "terraform-google-modules/project-factory/google//modules/fabric-project"
30-
version = "~> 15.0"
30+
version = "~> 16.0"
3131

3232
activate_apis = var.activate_apis
3333
billing_account = var.billing_account
3434
name = var.name
3535
owners = var.owners
3636
parent = var.parent
3737
prefix = local.prefix
38+
39+
deletion_policy = "DELETE"
3840
}

examples/gke_shared_vpc/main.tf

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
module "project-factory" {
1818
source = "terraform-google-modules/project-factory/google"
19-
version = "~> 15.0"
19+
version = "~> 16.0"
2020

2121
random_project_id = true
2222
name = "sample-gke-shared-project"
@@ -26,4 +26,6 @@ module "project-factory" {
2626
activate_apis = ["compute.googleapis.com", "container.googleapis.com", "cloudbilling.googleapis.com"]
2727
shared_vpc_subnets = var.shared_vpc_subnets
2828
default_network_tier = var.default_network_tier
29+
30+
deletion_policy = "DELETE"
2931
}

examples/group_project/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ provider "gsuite" {
2929

3030
module "project-factory" {
3131
source = "terraform-google-modules/project-factory/google//modules/gsuite_enabled"
32-
version = "~> 15.0"
32+
version = "~> 16.0"
3333

3434
random_project_id = true
3535
name = "group-sample-project"

examples/project-hierarchy/main.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ resource "google_folder" "prod" {
3333

3434
module "project-prod-gke" {
3535
source = "terraform-google-modules/project-factory/google//modules/gsuite_enabled"
36-
version = "~> 15.0"
36+
version = "~> 16.0"
3737

3838
random_project_id = true
3939
name = "hierarchy-sample-prod-gke"
@@ -44,7 +44,7 @@ module "project-prod-gke" {
4444

4545
module "project-factory" {
4646
source = "terraform-google-modules/project-factory/google//modules/gsuite_enabled"
47-
version = "~> 15.0"
47+
version = "~> 16.0"
4848

4949
random_project_id = true
5050
name = "hierarchy-sample-factory"

examples/project_services/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
*****************************************/
2020
module "project-services" {
2121
source = "terraform-google-modules/project-factory/google//modules/project_services"
22-
version = "~> 15.0"
22+
version = "~> 16.0"
2323

2424
project_id = var.project_id
2525
enable_apis = var.enable

examples/quota_project/main.tf

+3-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ resource "random_string" "suffix" {
2626

2727
module "quota-project" {
2828
source = "terraform-google-modules/project-factory/google"
29-
version = "~> 15.0"
29+
version = "~> 16.0"
3030

3131
name = "pf-ci-test-quota-${random_string.suffix.result}"
3232
random_project_id = true
@@ -58,4 +58,6 @@ module "quota-project" {
5858
value = "95"
5959
}
6060
]
61+
62+
deletion_policy = "DELETE"
6163
}

examples/shared_vpc/main.tf

+8-4
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ locals {
2424
*****************************************/
2525
module "host-project" {
2626
source = "terraform-google-modules/project-factory/google"
27-
version = "~> 15.0"
27+
version = "~> 16.0"
2828

2929
random_project_id = true
3030
name = var.host_project_name
@@ -39,6 +39,7 @@ module "host-project" {
3939
"cloudresourcemanager.googleapis.com"
4040
]
4141

42+
deletion_policy = "DELETE"
4243
}
4344

4445
/******************************************
@@ -93,7 +94,7 @@ module "vpc" {
9394
*****************************************/
9495
module "service-project" {
9596
source = "terraform-google-modules/project-factory/google//modules/svpc_service_project"
96-
version = "~> 15.0"
97+
version = "~> 16.0"
9798

9899
name = var.service_project_name
99100
random_project_id = false
@@ -113,14 +114,15 @@ module "service-project" {
113114
]
114115

115116
disable_services_on_destroy = false
117+
deletion_policy = "DELETE"
116118
}
117119

118120
/******************************************
119121
Second Service Project Creation
120122
*****************************************/
121123
module "service-project-b" {
122124
source = "terraform-google-modules/project-factory/google//modules/svpc_service_project"
123-
version = "~> 15.0"
125+
version = "~> 16.0"
124126

125127
name = "b-${var.service_project_name}"
126128
random_project_id = false
@@ -146,6 +148,7 @@ module "service-project-b" {
146148
}]
147149

148150
disable_services_on_destroy = false
151+
deletion_policy = "DELETE"
149152
}
150153

151154
/******************************************
@@ -154,7 +157,7 @@ module "service-project-b" {
154157
*****************************************/
155158
module "service-project-c" {
156159
source = "terraform-google-modules/project-factory/google//modules/svpc_service_project"
157-
version = "~> 15.0"
160+
version = "~> 16.0"
158161

159162
name = "c-${var.service_project_name}"
160163
random_project_id = false
@@ -184,6 +187,7 @@ module "service-project-c" {
184187

185188
disable_services_on_destroy = false
186189
grant_network_role = false
190+
deletion_policy = "DELETE"
187191
}
188192

189193
/******************************************

examples/simple_project/main.tf

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
module "project-factory" {
1818
source = "terraform-google-modules/project-factory/google"
19-
version = "~> 15.0"
19+
version = "~> 16.0"
2020

2121
random_project_id = true
2222
name = "simple-sample-project"
@@ -31,4 +31,6 @@ module "project-factory" {
3131
"roles/bigquery.jobUser",
3232
]
3333
}]
34+
35+
deletion_policy = "DELETE"
3436
}

examples/tags_project/main.tf

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
module "project-factory" {
1818
source = "terraform-google-modules/project-factory/google"
19-
version = "~> 15.0"
19+
version = "~> 16.0"
2020

2121
random_project_id = true
2222
name = "simple-tag-project"
@@ -25,4 +25,6 @@ module "project-factory" {
2525
billing_account = var.billing_account
2626
default_service_account = "deprivilege"
2727
tag_binding_values = [var.tag_value]
28+
29+
deletion_policy = "DELETE"
2830
}

main.tf

+5-1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ module "project-factory" {
7272
default_network_tier = var.default_network_tier
7373
tag_binding_values = var.tag_binding_values
7474
cloud_armor_tier = var.cloud_armor_tier
75+
deletion_policy = var.deletion_policy
7576
}
7677

7778
/******************************************
@@ -82,12 +83,15 @@ module "shared_vpc_access" {
8283
enable_shared_vpc_service_project = var.svpc_host_project_id != "" ? true : false
8384
host_project_id = var.svpc_host_project_id
8485
service_project_id = module.project-factory.project_id
85-
active_apis = module.project-factory.enabled_apis
86+
active_apis = var.activate_apis
8687
shared_vpc_subnets = var.shared_vpc_subnets
8788
service_project_number = module.project-factory.project_number
8889
lookup_project_numbers = false
8990
grant_services_security_admin_role = var.grant_services_security_admin_role
9091
grant_network_role = var.grant_network_role
92+
# Workaround for import complaining about count cannot determine resource instances
93+
# until apply. https://github.com/hashicorp/terraform/issues/24690
94+
depends_on = [module.project-factory.enabled_apis]
9195
}
9296

9397
/******************************************

metadata.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ spec:
2323
source:
2424
repo: https://github.com/terraform-google-modules/terraform-google-project-factory.git
2525
sourceType: git
26-
version: 15.0.1
26+
version: 16.0.1
2727
actuationTool:
2828
type: Terraform
2929
version: '>=0.13.0'

modules/app_engine/versions.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ terraform {
2020
required_providers {
2121
google = {
2222
source = "hashicorp/google"
23-
version = ">= 3.43, < 6"
23+
version = ">= 3.43, < 7"
2424
}
2525
}
2626
}

modules/budget/metadata.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ spec:
2323
source:
2424
repo: https://github.com/terraform-google-modules/terraform-google-project-factory.git
2525
sourceType: git
26-
version: 15.0.1
26+
version: 16.0.1
2727
actuationTool:
2828
type: Terraform
2929
version: '>= 0.13'

0 commit comments

Comments
 (0)