Skip to content

Commit 148c50c

Browse files
authored
Merge branch 'main' into b-416254132-2
2 parents 794322a + c60aa2b commit 148c50c

File tree

145 files changed

+3759
-364
lines changed

Some content is hidden

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

145 files changed

+3759
-364
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
/build/ @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/cft-admins @terraform-google-modules/cloud-samples-infra
88

99
/bigquery/ @terraform-google-modules/bigquery-terraform-swe @terraform-google-modules/terraform-samples-reviewers
10-
/cloud_sql/ @terraform-google-modules/terraform-samples-reviewers
10+
/cloud_sql/ @terraform-google-modules/cloudsql-connectivity @terraform-google-modules/terraform-samples-reviewers
1111
/cloudvpn/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
1212
/composer/ @terraform-google-modules/cloud-dpes-composer @terraform-google-modules/terraform-samples-reviewers
1313
/compute/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
@@ -17,8 +17,10 @@
1717
/looker/ @terraform-google-modules/cloud-looker-docs @terraform-google-modules/terraform-samples-reviewers
1818
/media_cdn/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
1919
/network_connectivity/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
20+
/network_security/intercept/ @terraform-google-modules/pm2-team @terraform-google-modules/terraform-samples-reviewers
2021
/network_security/mirroring/ @terraform-google-modules/pm2-team @terraform-google-modules/terraform-samples-reviewers
2122
/privateca/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
23+
/securitycenter/ @terraform-google-modules/gcp-security-command-center @terraform-google-modules/terraform-samples-reviewers
2224
/storage/ @terraform-google-modules/cloud-storage-dpe @terraform-google-modules/terraform-samples-reviewers
2325
/traffic_director/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
2426
/vpc/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers

.terraform.lock

Whitespace-only changes.

Makefile

Lines changed: 1 addition & 1 deletion
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.23
21+
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.25
2222
DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools
2323
REGISTRY_URL := gcr.io/cloud-foundation-cicd
2424
DOCKER_BIN ?= docker

backupdr/backup_plan/main.tf

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ resource "google_backup_dr_backup_vault" "default" {
3232
annotations2 = "baz1"
3333
}
3434

35-
force_update = "true"
36-
force_delete = "true"
37-
allow_missing = "true"
35+
force_update = "true"
36+
ignore_inactive_datasources = "true"
37+
allow_missing = "true"
3838
}
3939

4040
# [END backupdr_create_backupvault]
@@ -67,3 +67,32 @@ resource "google_backup_dr_backup_plan" "default" {
6767
}
6868

6969
# [END backupdr_create_backupplan]
70+
71+
# [START backupdr_create_backupplan_disk]
72+
73+
# Before creating a backup plan, you need to create backup vault (google_backup_dr_backup_vault).
74+
resource "google_backup_dr_backup_plan" "disk_default" {
75+
provider = google-beta
76+
location = "us-central1"
77+
backup_plan_id = "my-disk-bp"
78+
resource_type = "compute.googleapis.com/Disk"
79+
backup_vault = google_backup_dr_backup_vault.default.name
80+
81+
backup_rules {
82+
rule_id = "rule-1"
83+
backup_retention_days = 5
84+
85+
standard_schedule {
86+
recurrence_type = "HOURLY"
87+
hourly_frequency = 1
88+
time_zone = "UTC"
89+
90+
backup_window {
91+
start_hour_of_day = 0
92+
end_hour_of_day = 6
93+
}
94+
}
95+
}
96+
}
97+
98+
# [END backupdr_create_backupplan_disk]

backupdr/backup_plan_association/main.tf

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@ resource "google_compute_instance" "default" {
5353
}
5454
}
5555

56+
resource "google_compute_disk" "default" {
57+
name = "disk-data"
58+
type = "pd-standard"
59+
zone = "us-central1-a"
60+
}
61+
5662
resource "google_backup_dr_backup_vault" "default" {
5763
provider = google-beta
5864
location = "us-central1"
@@ -70,9 +76,9 @@ resource "google_backup_dr_backup_vault" "default" {
7076
annotations2 = "baz1"
7177
}
7278

73-
force_update = "true"
74-
force_delete = "true"
75-
allow_missing = "true"
79+
force_update = "true"
80+
ignore_inactive_datasources = "true"
81+
allow_missing = "true"
7682
}
7783

7884
resource "google_backup_dr_backup_plan" "default" {
@@ -99,6 +105,30 @@ resource "google_backup_dr_backup_plan" "default" {
99105
}
100106
}
101107

108+
resource "google_backup_dr_backup_plan" "disk_default" {
109+
provider = google-beta
110+
location = "us-central1"
111+
backup_plan_id = "my-disk-bp"
112+
resource_type = "compute.googleapis.com/Disk"
113+
backup_vault = google_backup_dr_backup_vault.default.name
114+
115+
backup_rules {
116+
rule_id = "rule-1"
117+
backup_retention_days = 5
118+
119+
standard_schedule {
120+
recurrence_type = "HOURLY"
121+
hourly_frequency = 1
122+
time_zone = "UTC"
123+
124+
backup_window {
125+
start_hour_of_day = 0
126+
end_hour_of_day = 6
127+
}
128+
}
129+
}
130+
}
131+
102132
# [START backupdr_create_backupplanassociation]
103133

104134
# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
@@ -113,3 +143,18 @@ resource "google_backup_dr_backup_plan_association" "default" {
113143
}
114144

115145
# [END backupdr_create_backupplanassociation]
146+
147+
# [START backupdr_create_backupplanassociation_disk]
148+
149+
# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
150+
# and compute disk (google_compute_disk or google_compute_region_disk).
151+
resource "google_backup_dr_backup_plan_association" "disk_association" {
152+
provider = google-beta
153+
location = "us-central1"
154+
backup_plan_association_id = "my-disk-bpa"
155+
resource = google_compute_disk.default.id
156+
resource_type = "compute.googleapis.com/Disk"
157+
backup_plan = google_backup_dr_backup_plan.disk_default.name
158+
}
159+
160+
# [END backupdr_create_backupplanassociation_disk]

backupdr/backup_vault/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ resource "google_backup_dr_backup_vault" "default" {
2323
description = "This vault is created usingTerraform."
2424
backup_minimum_enforced_retention_duration = "100000s"
2525
force_update = "true"
26-
force_delete = "true"
26+
ignore_inactive_datasources = "true"
2727
allow_missing = "true"
2828
}
2929

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/**
2+
* Copyright 2025 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
18+
# [START bigquery_authorized_view_tutorial]
19+
# Creates an authorized view.
20+
21+
# Create a dataset to contain the view.
22+
resource "google_bigquery_dataset" "view_dataset" {
23+
dataset_id = "view_dataset"
24+
description = "Dataset that contains the view"
25+
location = "us-west1"
26+
}
27+
28+
# Create the view to authorize.
29+
resource "google_bigquery_table" "movie_view" {
30+
project = google_bigquery_dataset.view_dataset.project
31+
dataset_id = google_bigquery_dataset.view_dataset.dataset_id
32+
table_id = "movie_view"
33+
description = "View to authorize"
34+
35+
view {
36+
query = "SELECT item_id, avg(rating) FROM `movie_project.movie_dataset.movie_ratings` GROUP BY item_id ORDER BY item_id;"
37+
use_legacy_sql = false
38+
}
39+
}
40+
41+
42+
# Authorize the view to access the dataset
43+
# that the query data originates from.
44+
resource "google_bigquery_dataset_access" "view_authorization" {
45+
project = "movie_project"
46+
dataset_id = "movie_dataset"
47+
48+
view {
49+
project_id = google_bigquery_table.movie_view.project
50+
dataset_id = google_bigquery_table.movie_view.dataset_id
51+
table_id = google_bigquery_table.movie_view.table_id
52+
}
53+
}
54+
55+
# Specify the IAM policy for principals that can access
56+
# the authorized view. These users should already
57+
# have the roles/bigqueryUser role at the project level.
58+
data "google_iam_policy" "principals_policy" {
59+
binding {
60+
role = "roles/bigquery.dataViewer"
61+
members = [
62+
63+
]
64+
}
65+
}
66+
67+
# Set the IAM policy on the authorized view.
68+
resource "google_bigquery_table_iam_policy" "authorized_view_policy" {
69+
project = google_bigquery_table.movie_view.project
70+
dataset_id = google_bigquery_table.movie_view.dataset_id
71+
table_id = google_bigquery_table.movie_view.table_id
72+
policy_data = data.google_iam_policy.principals_policy.policy_data
73+
}
74+
# [END bigquery_authorized_view_tutorial]
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Copyright 2025 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
apiVersion: blueprints.cloud.google.com/v1alpha1
16+
kind: BlueprintTest
17+
metadata:
18+
name: bigquery_authorized_view_tutorial
19+
spec:
20+
skip: true

build/int.cloudbuild.yaml

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,13 @@ steps:
3535
cat _changed_folders
3636
3737
# Do not prune if changing tests themselves
38-
while read d; do
39-
if [[ "build test .github" =~ "${d%/}" ]]; then
40-
echo "Infrastructure folder ${d%/} has changed; no tests will be pruned."
38+
set +e
39+
_build_changes=$(git diff origin/main build test .github/workflows)
40+
set -e
41+
if [[ -n "${_build_changes}" ]]; then
42+
echo "Infrastructure folders have changed; no tests will be pruned."
4143
exit 0 # do not prune
42-
fi
43-
done < _changed_folders
44+
fi
4445
4546
# Remove base folders without changes
4647
for d in *; do
@@ -63,6 +64,21 @@ steps:
6364
echo -n "Folders in scope for tests:"
6465
find . -type d -printf '%P\n'
6566
67+
- id: resource specific fixups
68+
name: golang:1.23
69+
entrypoint: bash
70+
args:
71+
- -c
72+
- |
73+
set -e
74+
go install github.com/minamijoyo/[email protected]
75+
76+
# Add `deletion_protection = false` to google_container_cluster.default resources
77+
find ./gke -name "*.tf" -print | xargs -t -I {} $$GOPATH/bin/hcledit attribute append resource.google_container_cluster.default.deletion_protection 'false' -u -f {} || true
78+
79+
# Add `deletion_protection = false` to google_sql_database_instance.default resources
80+
find ./cloud_sql -name "*.tf" -print | xargs -t -I {} $$GOPATH/bin/hcledit attribute append resource.google_sql_database_instance.default.deletion_protection 'false' -u -f {} || true
81+
6682
- id: prepare
6783
name: 'gcr.io/cloud-foundation-cicd/$_DOCKER_IMAGE_DEVELOPER_TOOLS:$_DOCKER_TAG_VERSION_DEVELOPER_TOOLS'
6884
args: ['/bin/bash', '-c', 'source /usr/local/bin/task_helper_functions.sh && prepare_environment']
@@ -105,4 +121,4 @@ tags:
105121
- 'integration'
106122
substitutions:
107123
_DOCKER_IMAGE_DEVELOPER_TOOLS: 'cft/developer-tools'
108-
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.23'
124+
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.25'

build/lint.cloudbuild.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ tags:
2222
- 'lint'
2323
substitutions:
2424
_DOCKER_IMAGE_DEVELOPER_TOOLS: 'cft/developer-tools'
25-
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.23'
25+
_DOCKER_TAG_VERSION_DEVELOPER_TOOLS: '1.25'

0 commit comments

Comments
 (0)