Skip to content

Commit 72e227c

Browse files
daniel-citapeabody
andauthored
feat: upgrade module version to allow Terraform Google provider v6 (#1350)
Co-authored-by: Andrew Peabody <[email protected]>
1 parent aca3400 commit 72e227c

Some content is hidden

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

76 files changed

+365
-78
lines changed

0-bootstrap/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,12 +361,14 @@ Each step has instructions for this change.
361361
| default\_region\_2 | Secondary default region to create resources where applicable. | `string` | `"us-west1"` | no |
362362
| default\_region\_gcs | Case-Sensitive default region to create gcs resources where applicable. | `string` | `"US"` | no |
363363
| default\_region\_kms | Secondary default region to create kms resources where applicable. | `string` | `"us"` | no |
364+
| folder\_deletion\_protection | Prevent Terraform from destroying or recreating the folder. | `string` | `true` | no |
364365
| folder\_prefix | Name prefix to use for folders created. Should be the same in all steps. | `string` | `"fldr"` | no |
365366
| groups | Contain the details of the Groups to be created. | <pre>object({<br> create_required_groups = optional(bool, false)<br> create_optional_groups = optional(bool, false)<br> billing_project = optional(string, null)<br> required_groups = object({<br> group_org_admins = string<br> group_billing_admins = string<br> billing_data_users = string<br> audit_data_users = string<br> })<br> optional_groups = optional(object({<br> gcp_security_reviewer = optional(string, "")<br> gcp_network_viewer = optional(string, "")<br> gcp_scc_admin = optional(string, "")<br> gcp_global_secrets_admin = optional(string, "")<br> gcp_kms_admin = optional(string, "")<br> }), {})<br> })</pre> | n/a | yes |
366367
| initial\_group\_config | Define the group configuration when it is initialized. Valid values are: WITH\_INITIAL\_OWNER, EMPTY and INITIAL\_GROUP\_CONFIG\_UNSPECIFIED. | `string` | `"WITH_INITIAL_OWNER"` | no |
367368
| org\_id | GCP Organization ID | `string` | n/a | yes |
368369
| org\_policy\_admin\_role | Additional Org Policy Admin role for admin group. You can use this for testing purposes. | `bool` | `false` | no |
369370
| parent\_folder | Optional - for an organization with existing projects or for development/validation. It will place all the example foundation resources under the provided folder instead of the root organization. The value is the numeric folder ID. The folder must already exist. | `string` | `""` | no |
371+
| project\_deletion\_policy | The deletion policy for the project created. | `string` | `"PREVENT"` | no |
370372
| project\_prefix | Name prefix to use for projects created. Should be the same in all steps. Max size is 3 characters. | `string` | `"prj"` | no |
371373

372374
## Outputs

0-bootstrap/cb.tf

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ resource "random_string" "suffix" {
7070

7171
module "gcp_projects_state_bucket" {
7272
source = "terraform-google-modules/cloud-storage/google//modules/simple_bucket"
73-
version = "~> 6.0"
73+
version = "~> 8.0"
7474

7575
name = "${var.bucket_prefix}-${module.seed_bootstrap.seed_project_id}-gcp-projects-tfstate"
7676
project_id = module.seed_bootstrap.seed_project_id
@@ -86,7 +86,7 @@ module "gcp_projects_state_bucket" {
8686

8787
module "tf_source" {
8888
source = "terraform-google-modules/bootstrap/google//modules/tf_cloudbuild_source"
89-
version = "~> 8.0"
89+
version = "~> 9.0"
9090

9191
org_id = var.org_id
9292
folder_id = google_folder.bootstrap.id
@@ -96,6 +96,8 @@ module "tf_source" {
9696
group_org_admins = var.groups.required_groups.group_org_admins
9797
buckets_force_destroy = var.bucket_force_destroy
9898

99+
project_deletion_policy = var.project_deletion_policy
100+
99101
activate_apis = [
100102
"serviceusage.googleapis.com",
101103
"servicenetworking.googleapis.com",
@@ -134,6 +136,15 @@ module "tf_source" {
134136
depends_on = [module.seed_bootstrap]
135137
}
136138

139+
resource "google_project_service_identity" "workflows_identity" {
140+
provider = google-beta
141+
142+
project = module.tf_source.cloudbuild_project_id
143+
service = "workflows.googleapis.com"
144+
145+
depends_on = [module.tf_source]
146+
}
147+
137148
module "tf_private_pool" {
138149
source = "./modules/cb-private-pool"
139150

@@ -155,7 +166,7 @@ module "tf_private_pool" {
155166

156167
module "tf_cloud_builder" {
157168
source = "terraform-google-modules/bootstrap/google//modules/tf_cloudbuild_builder"
158-
version = "~> 8.0"
169+
version = "~> 9.0"
159170

160171
project_id = module.tf_source.cloudbuild_project_id
161172
dockerfile_repo_uri = module.tf_source.csr_repos[local.cloudbuilder_repo].url
@@ -206,7 +217,7 @@ module "build_terraform_image" {
206217

207218
module "tf_workspace" {
208219
source = "terraform-google-modules/bootstrap/google//modules/tf_cloudbuild_workspace"
209-
version = "~> 8.0"
220+
version = "~> 9.0"
210221
for_each = local.granular_sa
211222

212223
project_id = module.tf_source.cloudbuild_project_id

0-bootstrap/github.tf.example

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ locals {
7070

7171
module "gh_cicd" {
7272
source = "terraform-google-modules/project-factory/google"
73-
version = "~> 15.0"
73+
version = "~> 17.0"
7474

7575
name = "${var.project_prefix}-b-cicd-wif-gh"
7676
random_project_id = true
@@ -87,6 +87,8 @@ module "gh_cicd" {
8787
"cloudresourcemanager.googleapis.com",
8888
"iamcredentials.googleapis.com",
8989
]
90+
91+
deletion_policy = var.project_deletion_policy
9092
}
9193

9294
module "gh_oidc" {

0-bootstrap/gitlab.tf.example

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ provider "gitlab" {
8181

8282
module "gitlab_cicd" {
8383
source = "terraform-google-modules/project-factory/google"
84-
version = "~> 15.0"
84+
version = "~> 17.0"
8585

8686
name = "${var.project_prefix}-b-cicd-wif-gl"
8787
random_project_id = true
@@ -100,8 +100,9 @@ module "gitlab_cicd" {
100100
"sts.googleapis.com",
101101
"dns.googleapis.com",
102102
"secretmanager.googleapis.com",
103-
104103
]
104+
105+
deletion_policy = var.project_deletion_policy
105106
}
106107

107108
module "gitlab_oidc" {

0-bootstrap/groups.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ data "google_organization" "org" {
3434

3535
module "required_group" {
3636
source = "terraform-google-modules/group/google"
37-
version = "~> 0.6"
37+
version = "~> 0.7"
3838
for_each = local.required_groups_to_create
3939

4040
id = each.value
@@ -46,7 +46,7 @@ module "required_group" {
4646

4747
module "optional_group" {
4848
source = "terraform-google-modules/group/google"
49-
version = "~> 0.6"
49+
version = "~> 0.7"
5050
for_each = local.optional_groups_to_create
5151

5252
id = each.value

0-bootstrap/jenkins.tf.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ module "jenkins_bootstrap" {
4646
tunnel0_bgp_session_range = var.tunnel0_bgp_session_range
4747
tunnel1_bgp_peer_address = var.tunnel1_bgp_peer_address
4848
tunnel1_bgp_session_range = var.tunnel1_bgp_session_range
49+
project_deletion_policy = var.project_deletion_policy
4950
}
5051

5152
resource "google_organization_iam_member" "org_jenkins_sa_browser" {

0-bootstrap/main.tf

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,14 @@ locals {
3535
}
3636

3737
resource "google_folder" "bootstrap" {
38-
display_name = "${var.folder_prefix}-bootstrap"
39-
parent = local.parent
38+
display_name = "${var.folder_prefix}-bootstrap"
39+
parent = local.parent
40+
deletion_protection = var.folder_deletion_protection
4041
}
4142

4243
module "seed_bootstrap" {
4344
source = "terraform-google-modules/bootstrap/google"
44-
version = "~> 8.0"
45+
version = "~> 9.0"
4546

4647
org_id = var.org_id
4748
folder_id = google_folder.bootstrap.id
@@ -61,6 +62,7 @@ module "seed_bootstrap" {
6162
encrypt_gcs_bucket_tfstate = true
6263
key_rotation_period = "7776000s"
6364
kms_prevent_destroy = !var.bucket_tfstate_kms_force_destroy
65+
project_deletion_policy = var.project_deletion_policy
6466

6567
project_labels = {
6668
environment = "bootstrap"

0-bootstrap/modules/gitlab-oidc/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ terraform {
2020

2121
google = {
2222
source = "hashicorp/google"
23-
version = ">= 3.64, < 6"
23+
version = ">= 3.64, < 7"
2424
}
2525
}
2626

0-bootstrap/modules/jenkins-agent/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ module "jenkins_bootstrap" {
6868
| on\_prem\_vpn\_public\_ip\_address | The public IP Address of the Jenkins Controller. | `string` | n/a | yes |
6969
| on\_prem\_vpn\_public\_ip\_address2 | The secondpublic IP Address of the Jenkins Controller. | `string` | n/a | yes |
7070
| org\_id | GCP Organization ID | `string` | n/a | yes |
71+
| project\_deletion\_policy | The deletion policy for the project created. | `string` | `"PREVENT"` | no |
7172
| project\_labels | Labels to apply to the project. | `map(string)` | `{}` | no |
7273
| project\_prefix | Name prefix to use for projects created. | `string` | `"prj"` | no |
7374
| router\_asn | BGP ASN for cloud routes. | `number` | `"64515"` | no |

0-bootstrap/modules/jenkins-agent/main.tf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ resource "random_id" "suffix" {
2929
*******************************************/
3030
module "cicd_project" {
3131
source = "terraform-google-modules/project-factory/google"
32-
version = "~> 15.0"
32+
version = "~> 17.0"
3333

3434
name = local.cicd_project_name
3535
random_project_id = true
@@ -40,6 +40,8 @@ module "cicd_project" {
4040
billing_account = var.billing_account
4141
activate_apis = local.activate_apis
4242
labels = var.project_labels
43+
44+
deletion_policy = var.project_deletion_policy
4345
}
4446

4547
/******************************************

0 commit comments

Comments
 (0)