Skip to content

Commit 9df12d0

Browse files
Merge branch 'master' into dns-refactory
2 parents f7c4d14 + 779f8dd commit 9df12d0

File tree

78 files changed

+370
-83
lines changed

Some content is hidden

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

78 files changed

+370
-83
lines changed

.github/workflows/go-lint.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ jobs:
3636
matrix:
3737
folder: [helpers/foundation-deployer]
3838
steps:
39-
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
40-
- uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
39+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
40+
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
4141
with:
4242
go-version-file: ${{ matrix.folder }}/go.mod
4343
cache-dependency-path: ${{ matrix.folder }}/go.sum
4444
- name: golangci-lint
45-
uses: golangci/golangci-lint-action@aaa42aa0628b4ae2578232a66b541047968fac86 # v6.1.0
45+
uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1
4646
with:
4747
version: latest
4848
working-directory: ${{ matrix.folder }}

.github/workflows/go-test.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ jobs:
3838
matrix:
3939
folder: [helpers/foundation-deployer]
4040
steps:
41-
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
42-
- uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
41+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
42+
- uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
4343
with:
4444
go-version-file: ${{ matrix.folder }}/go.mod
4545
cache-dependency-path: ${{ matrix.folder }}/go.sum

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 commit comments

Comments
 (0)