Skip to content

Commit ff99caa

Browse files
authored
Merge branch 'master' into feat_vpc_gcs_config
2 parents 5a9a7b7 + 895b501 commit ff99caa

File tree

42 files changed

+132
-75
lines changed

Some content is hidden

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

42 files changed

+132
-75
lines changed

CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ 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+
## [15.0.1](https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v15.0.0...v15.0.1) (2024-05-17)
10+
11+
12+
### Bug Fixes
13+
14+
* **core_project_factory:** ignore if SA already exists ([#910](https://github.com/terraform-google-modules/terraform-google-project-factory/issues/910)) ([cfd7f3f](https://github.com/terraform-google-modules/terraform-google-project-factory/commit/cfd7f3f15e0866fe09cc5ec4a2f8e94398c773d9))
15+
916
## [15.0.0](https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v14.5.0...v15.0.0) (2024-05-02)
1017

1118

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.20
21+
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.21
2222
DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools
2323
REGISTRY_URL := gcr.io/cloud-foundation-cicd
2424

README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ There are multiple examples included in the [examples](./examples/) folder but s
2929
```hcl
3030
module "project-factory" {
3131
source = "terraform-google-modules/project-factory/google"
32-
version = "~> 15.0"
32+
version = "~> 16.0"
3333
3434
name = "pf-test-1"
3535
random_project_id = true
@@ -132,6 +132,7 @@ determining that location is as follows:
132132
| budget\_display\_name | The display name of the budget. If not set defaults to `Budget For <projects[0]|All Projects>` | `string` | `null` | no |
133133
| budget\_labels | A single label and value pair specifying that usage from only this set of labeled resources should be included in the budget. | `map(string)` | `{}` | no |
134134
| budget\_monitoring\_notification\_channels | A list of monitoring notification channels in the form `[projects/{project_id}/notificationChannels/{channel_id}]`. A maximum of 5 channels are allowed. | `list(string)` | `[]` | no |
135+
| cloud\_armor\_tier | Managed protection tier to be set. Possible values are: CA\_STANDARD, CA\_ENTERPRISE\_PAYGO | `string` | `null` | no |
135136
| consumer\_quotas | The quotas configuration you want to override for the project. | <pre>list(object({<br> service = string,<br> metric = string,<br> dimensions = map(string),<br> limit = string,<br> value = string,<br> }))</pre> | `[]` | no |
136137
| create\_project\_sa | Whether the default service account for the project shall be created | `bool` | `true` | no |
137138
| 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 |
@@ -200,8 +201,8 @@ determining that location is as follows:
200201
- [gcloud sdk](https://cloud.google.com/sdk/install) >= 269.0.0
201202
- [jq](https://stedolan.github.io/jq/) >= 1.6
202203
- [Terraform](https://www.terraform.io/downloads.html) >= 0.13.0
203-
- [terraform-provider-google] plugin >= 5.22
204-
- [terraform-provider-google-beta] plugin >= 5.22
204+
- [terraform-provider-google] plugin >= 5.33
205+
- [terraform-provider-google-beta] plugin >= 5.33
205206
- [terraform-provider-gsuite] plugin ~> 0.1.x if GSuite functionality is desired
206207

207208
### Permissions

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.20'
191+
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.21'
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.20'
24+
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.21'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Upgrading to Project Factory v16.0
2+
3+
The v16.0 release of Project Factory is a backwards incompatible release.
4+
5+
### Google Cloud Platform Provider upgrade
6+
7+
The Project Factory module now requires version `5.33` or higher of the Google Cloud Platform Provider and `5.33` or higher of the Google Cloud Platform Beta Provider.

examples/app_engine/main.tf

+2-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 = "~> 14.0"
25+
version = "~> 15.0"
2626

2727
name = "appeng-${random_string.suffix.result}"
2828
random_project_id = true
@@ -36,7 +36,7 @@ module "app-engine-project" {
3636

3737
module "app-engine" {
3838
source = "terraform-google-modules/project-factory/google//modules/app_engine"
39-
version = "~> 14.0"
39+
version = "~> 15.0"
4040

4141
project_id = module.app-engine-project.project_id
4242
location_id = "us-east4"

examples/budget_project/main.tf

+2-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 = "~> 14.0"
25+
version = "~> 15.0"
2626

2727
name = "budget-project-${random_string.suffix.result}"
2828
random_project_id = true
@@ -49,7 +49,7 @@ resource "google_pubsub_topic" "budget" {
4949

5050
module "additional_budget" {
5151
source = "terraform-google-modules/project-factory/google//modules/budget"
52-
version = "~> 14.0"
52+
version = "~> 15.0"
5353

5454
billing_account = var.billing_account
5555
projects = [var.parent_project_id, module.budget_project.project_id]

examples/essential_contacts/main.tf

+1-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 = "~> 14.0"
19+
version = "~> 15.0"
2020

2121
name = "pf-ci-test-ec-${var.random_string_for_testing}"
2222
random_project_id = true

examples/fabric_project/main.tf

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

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

3232
activate_apis = var.activate_apis
3333
billing_account = var.billing_account

examples/gke_shared_vpc/main.tf

+1-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 = "~> 14.0"
19+
version = "~> 15.0"
2020

2121
random_project_id = true
2222
name = "sample-gke-shared-project"

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 = "~> 14.0"
32+
version = "~> 15.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 = "~> 14.0"
36+
version = "~> 15.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 = "~> 14.0"
47+
version = "~> 15.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 = "~> 14.0"
22+
version = "~> 15.0"
2323

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

examples/quota_project/main.tf

+1-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 = "~> 14.0"
29+
version = "~> 15.0"
3030

3131
name = "pf-ci-test-quota-${random_string.suffix.result}"
3232
random_project_id = true

examples/shared_vpc/main.tf

+4-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 = "~> 14.0"
27+
version = "~> 15.0"
2828

2929
random_project_id = true
3030
name = var.host_project_name
@@ -93,7 +93,7 @@ module "vpc" {
9393
*****************************************/
9494
module "service-project" {
9595
source = "terraform-google-modules/project-factory/google//modules/svpc_service_project"
96-
version = "~> 14.0"
96+
version = "~> 15.0"
9797

9898
name = var.service_project_name
9999
random_project_id = false
@@ -120,7 +120,7 @@ module "service-project" {
120120
*****************************************/
121121
module "service-project-b" {
122122
source = "terraform-google-modules/project-factory/google//modules/svpc_service_project"
123-
version = "~> 14.0"
123+
version = "~> 15.0"
124124

125125
name = "b-${var.service_project_name}"
126126
random_project_id = false
@@ -154,7 +154,7 @@ module "service-project-b" {
154154
*****************************************/
155155
module "service-project-c" {
156156
source = "terraform-google-modules/project-factory/google//modules/svpc_service_project"
157-
version = "~> 14.0"
157+
version = "~> 15.0"
158158

159159
name = "c-${var.service_project_name}"
160160
random_project_id = false

examples/simple_project/main.tf

+1-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 = "~> 14.0"
19+
version = "~> 15.0"
2020

2121
random_project_id = true
2222
name = "simple-sample-project"

examples/tags_project/main.tf

+1-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 = "~> 14.0"
19+
version = "~> 15.0"
2020

2121
random_project_id = true
2222
name = "simple-tag-project"

main.tf

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ module "project-factory" {
7171
vpc_service_control_sleep_duration = var.vpc_service_control_sleep_duration
7272
default_network_tier = var.default_network_tier
7373
tag_binding_values = var.tag_binding_values
74+
cloud_armor_tier = var.cloud_armor_tier
7475
}
7576

7677
/******************************************

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.0
26+
version: 15.0.1
2727
actuationTool:
2828
type: Terraform
2929
version: '>=0.13.0'

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.0
26+
version: 15.0.1
2727
actuationTool:
2828
type: Terraform
2929
version: '>= 0.13'

modules/budget/versions.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ terraform {
2525
}
2626

2727
provider_meta "google" {
28-
module_name = "blueprints/terraform/terraform-google-project-factory:budget/v15.0.0"
28+
module_name = "blueprints/terraform/terraform-google-project-factory:budget/v15.0.1"
2929
}
3030
provider_meta "google-beta" {
31-
module_name = "blueprints/terraform/terraform-google-project-factory:budget/v15.0.0"
31+
module_name = "blueprints/terraform/terraform-google-project-factory:budget/v15.0.1"
3232
}
3333
}

modules/core_project_factory/main.tf

+16-4
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,11 @@ resource "google_project_default_service_accounts" "default_service_accounts" {
143143
Default Service Account configuration
144144
*****************************************/
145145
resource "google_service_account" "default_service_account" {
146-
count = var.create_project_sa ? 1 : 0
147-
account_id = var.project_sa_name
148-
display_name = "${var.name} Project Service Account"
149-
project = google_project.main.project_id
146+
count = var.create_project_sa ? 1 : 0
147+
account_id = var.project_sa_name
148+
display_name = "${var.name} Project Service Account"
149+
project = google_project.main.project_id
150+
create_ignore_already_exists = true
150151
}
151152

152153
/**************************************************
@@ -394,3 +395,14 @@ resource "google_tags_tag_binding" "bindings" {
394395
parent = "//cloudresourcemanager.googleapis.com/projects/${google_project.main.number}"
395396
tag_value = "tagValues/${each.value}"
396397
}
398+
399+
/******************************************
400+
Cloud Armor tier of the project
401+
*****************************************/
402+
403+
resource "google_compute_project_cloud_armor_tier" "cloud_armor_tier_config" {
404+
count = var.cloud_armor_tier == null ? 0 : 1
405+
406+
project = var.project_id
407+
cloud_armor_tier = var.cloud_armor_tier
408+
}

modules/core_project_factory/variables.tf

+6
Original file line numberDiff line numberDiff line change
@@ -278,3 +278,9 @@ variable "tag_binding_values" {
278278
type = list(string)
279279
default = []
280280
}
281+
282+
variable "cloud_armor_tier" {
283+
description = "Managed protection tier to be set. Possible values are: CA_STANDARD, CA_ENTERPRISE_PAYGO"
284+
type = string
285+
default = null
286+
}

modules/core_project_factory/versions.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ terraform {
2020
required_providers {
2121
google = {
2222
source = "hashicorp/google"
23-
version = ">= 5.22, < 6"
23+
version = ">= 5.33, < 6"
2424
}
2525
google-beta = {
2626
source = "hashicorp/google-beta"
27-
version = ">= 5.22, < 6"
27+
version = ">= 5.33, < 6"
2828
}
2929
null = {
3030
source = "hashicorp/null"

modules/essential_contacts/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.0
26+
version: 15.0.1
2727
actuationTool:
2828
type: Terraform
2929
version: '>= 0.13'

modules/essential_contacts/versions.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ terraform {
2727
}
2828
}
2929
provider_meta "google" {
30-
module_name = "blueprints/terraform/terraform-google-project-factory:essential_contacts/v15.0.0"
30+
module_name = "blueprints/terraform/terraform-google-project-factory:essential_contacts/v15.0.1"
3131
}
3232
provider_meta "google-beta" {
33-
module_name = "blueprints/terraform/terraform-google-project-factory:essential_contacts/v15.0.0"
33+
module_name = "blueprints/terraform/terraform-google-project-factory:essential_contacts/v15.0.1"
3434
}
3535
}

modules/fabric-project/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.0
26+
version: 15.0.1
2727
actuationTool:
2828
type: Terraform
2929
version: '>= 0.13'

modules/fabric-project/versions.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ terraform {
2424
}
2525
}
2626
provider_meta "google" {
27-
module_name = "blueprints/terraform/terraform-google-project-factory:fabric-project/v15.0.0"
27+
module_name = "blueprints/terraform/terraform-google-project-factory:fabric-project/v15.0.1"
2828
}
2929
provider_meta "google-beta" {
30-
module_name = "blueprints/terraform/terraform-google-project-factory:fabric-project/v15.0.0"
30+
module_name = "blueprints/terraform/terraform-google-project-factory:fabric-project/v15.0.1"
3131
}
3232
}

modules/gsuite_enabled/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.0
26+
version: 15.0.1
2727
actuationTool:
2828
type: Terraform
2929
version: '>= 0.13'

modules/gsuite_enabled/versions.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ terraform {
3131
}
3232
}
3333
provider_meta "google" {
34-
module_name = "blueprints/terraform/terraform-google-project-factory:gsuite_enabled/v15.0.0"
34+
module_name = "blueprints/terraform/terraform-google-project-factory:gsuite_enabled/v15.0.1"
3535
}
3636
provider_meta "google-beta" {
37-
module_name = "blueprints/terraform/terraform-google-project-factory:gsuite_enabled/v15.0.0"
37+
module_name = "blueprints/terraform/terraform-google-project-factory:gsuite_enabled/v15.0.1"
3838
}
3939
}

0 commit comments

Comments
 (0)