Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
6d72e6d
Adding BV,BP,BPA resources to terraform samples
niharika-98 Nov 11, 2024
7a4c06c
Updating scripts
niharika-98 Nov 11, 2024
0861f25
Adding code owners and required api enablement
niharika-98 Nov 11, 2024
9e1ceea
Adding gcbdr team as code owners
niharika-98 Nov 11, 2024
a3eb6eb
Fixing code owners
niharika-98 Nov 12, 2024
b258a10
Fixing resource name to default
niharika-98 Nov 12, 2024
859aeb8
Fixing commit
niharika-98 Nov 12, 2024
de0fa63
Merge branch 'main' into gcbdr-samples
niharika-98 Nov 12, 2024
ed8c284
Fixing reviewers
niharika-98 Nov 12, 2024
6a027b1
Adding comment
niharika-98 Nov 13, 2024
6ce52a0
Fixing lint to codeowners
niharika-98 Nov 14, 2024
39393c7
Update gcbdr/backupvault/main.tf
niharika-98 Nov 14, 2024
0c7dd09
Update gcbdr/backupplanassociation/main.tf
niharika-98 Nov 14, 2024
aadf7be
Update gcbdr/backupplan/main.tf
niharika-98 Nov 14, 2024
8ca3519
FIxing lint for resources
niharika-98 Nov 14, 2024
25e8286
Fixing lint in BP and BPA resource files
niharika-98 Nov 18, 2024
9561661
Merge branch 'main' into gcbdr-samples
niharika-98 Nov 20, 2024
71ede18
Update code owners with gcbdr team
niharika-98 Nov 20, 2024
3791fbd
Fixing group name
niharika-98 Nov 20, 2024
e8f6405
Update gcbdr/backupvault/main.tf
niharika-98 Nov 20, 2024
49751f2
FIxing naming issues
niharika-98 Nov 20, 2024
755ab7b
changing backupdr to gcbdr
niharika-98 Nov 20, 2024
31c6293
Updating region tag
niharika-98 Nov 21, 2024
7879467
Updating folder name to backupdr
niharika-98 Nov 21, 2024
35e8005
Fixing code owners and description
niharika-98 Nov 21, 2024
12cf18c
Merge branch 'main' into gcbdr-samples
glasnt Nov 21, 2024
ba1f9ff
Fix labels for backup vault
niharika-98 Nov 21, 2024
1a04f7e
Update backupdr/backup_vault/main.tf
glasnt Nov 21, 2024
9e59fc8
Fixing lint
niharika-98 Nov 21, 2024
46008ef
Introducing restore code for backupdr
niharika-98 Sep 7, 2025
563256c
fix(backupdr): ensure service account id is long enough (#763)
glasnt Nov 21, 2024
3521cf1
chore(deps): Update dependency go to v1.22.9 (#760)
renovate[bot] Nov 21, 2024
33ad64d
docs: Update GMK resource examples now that Clusters and Topic resour…
jessdejong Nov 26, 2024
72eb50a
feat(bigquery): Add example for creating a external dataset (#769)
misiek1984 Dec 5, 2024
0831f57
chore(deps): Update go modules (#767)
renovate[bot] Dec 6, 2024
c5ba32d
feat(gke): add config_sync cluster samples (#765)
apeabody Dec 6, 2024
09059fb
docs: Update README.md (#776)
arnoldmashava Dec 9, 2024
d810483
feat(compute): add terraform sample for instanceflexibilitypolicy of …
chayankumar999 Dec 9, 2024
52b5464
feat(compute): create sample for Disk Async Replication feature (#770)
ujjwalranjan1 Dec 10, 2024
54c6035
feat(compute): modify region tag to make them unique and as similar a…
chayankumar999 Dec 10, 2024
6833acf
feat(vector search): Add examples for mutate, PSC, and VPC (#755)
ericgribkoff Dec 10, 2024
1454877
fix: add deletion_protection to google workflow resources (#779)
glasnt Dec 11, 2024
4fc0ca3
feat(compute): create sample for Consistency Group Disk Attachment fe…
ujjwalranjan1 Dec 11, 2024
5c6b19e
chore(CI): completely remove unchanged base folders (#782)
apeabody Dec 16, 2024
dec3024
Added fix to use basename of kms config (#786)
manojburi-google2 Dec 19, 2024
d12aacc
feat(VPC Flow Logs): Prepare VPC Flow Logs for inclusion in C.G.C. do…
alkobi-google Dec 19, 2024
f17ca70
chore(CI): fix test pruner (#789)
apeabody Jan 6, 2025
48524f3
docs: Create main.tf to support quickstart in Eventarc docset (#784)
camiekim Jan 6, 2025
b290ebf
docs: Update main.tf to support how-to guide in Eventarc docset (#783)
camiekim Jan 6, 2025
a23a02b
feat(gke): add mesh samples (#788)
apeabody Jan 6, 2025
6922563
feat(gke): add policycontroller samples (#792)
apeabody Jan 8, 2025
65149e8
feat(gke): add config_sync (fleet) example (#793)
apeabody Jan 8, 2025
66b233c
chore(deps): bump golang.org/x/crypto in /test/integration (#795)
dependabot[bot] Jan 9, 2025
79f1428
Remove "provider = google-beta" tag from examples from VPC Flow Logs.…
alkobi-google Jan 12, 2025
7198047
chore: Update CODEOWNERS (#796)
enocom Jan 12, 2025
a3a43e6
feat: Create SQL Server PITR sample (#794)
rebecca-pete Jan 14, 2025
ef18c98
Revert "feat: Create SQL Server PITR sample (#794)" (#801)
glasnt Jan 15, 2025
414e45c
feat(gke): add node system config (#802)
apeabody Jan 16, 2025
d8538ee
chore(deps): Update Terraform terraform-google-modules/project-factor…
renovate[bot] Jan 16, 2025
b5dfe80
chore(deps): Update go modules and/or dev-tools (#774)
renovate[bot] Jan 16, 2025
eb59042
feat(compute): Remove "provider=google-beta" tag from mig standby_pol…
chayankumar999 Jan 17, 2025
8db57fc
feat(gke): add gemma tgi standard cluster (#805)
apeabody Jan 17, 2025
f2315bb
feat: pre configure networksecurity samples (#806)
glasnt Jan 19, 2025
2b3bb11
feat(networksecurity): Add examples for creating consumer and produce…
duvni Jan 19, 2025
814e3ef
feat(networksecurity): add tags for all resources in Mirroring docs (…
duvni Jan 21, 2025
18af6bf
chore(deps): Update dependency go to v1.23.5 (#804)
renovate[bot] Jan 21, 2025
bf5a25f
chore(deps): Update module github.com/GoogleCloudPlatform/cloud-found…
renovate[bot] Feb 3, 2025
b0d2c19
feat(cloud_sql): Add cloud sql psa+psc connectivity samples (#808)
loeng2023 Feb 5, 2025
8e52559
feat(GKE): add node_system_config node pool (#810)
apeabody Feb 5, 2025
f988ef8
feat(cloud_sql): Add Cloud SQL Server PITR (#812)
rebecca-pete Feb 11, 2025
fd9e7b7
chore(deps): Update dependency go to v1.23.6 (#811)
renovate[bot] Feb 12, 2025
0bc022c
feat(cloud_sql): Add samples for Advanced DR switchover for MySQL and…
seviet Feb 26, 2025
719ebdb
chore(deps): Update module github.com/GoogleCloudPlatform/cloud-found…
renovate[bot] Feb 27, 2025
53b2538
Prepared name-of-snippet for inclusion in C.G.C. documentation (#818)
nahurfonseca Feb 28, 2025
fbc148d
fix: update all functions to recent runtimes (#813)
glasnt Mar 7, 2025
2f8bad2
docs: update code sample to use a sub-CA to issue leaf certificates (…
gfxcc Mar 10, 2025
2c621ac
feat: Add no channel to release channel samples for GKE (#820)
cslink Mar 13, 2025
48d5f1c
chore(deps): Update dependency go to v1.23.7 (#821)
renovate[bot] Mar 13, 2025
ecdbeb4
chore(deps): bump golang.org/x/net in /test/integration (#822)
dependabot[bot] Mar 13, 2025
ad9926b
feat: Clarify maintenance exclusion usage in no channel to release ch…
cslink Mar 14, 2025
a600909
feat: pre configure networksecurity/intercept samples (#824)
duvni Mar 20, 2025
8cdb0ad
feat(networksecurity): Add examples for creating consumer and produce…
duvni Mar 23, 2025
38bb104
docs: Add CMEK for Eventarc (#827)
camiekim Mar 31, 2025
73ad518
fix: unset min_master_version (outdated for all channels except EXTEN…
glasnt Mar 31, 2025
ae2a58b
feat(networksecurity): Remove google-beta provider from mirroring sam…
duvni Apr 6, 2025
3c3881e
docs: clarify placeholder values in custom_domain_mapping example (#833)
hivanalejandro Apr 6, 2025
ec30525
feat: add cloudsql-connectivity team as cloud_sql/ reviewer (#837)
loeng2023 Apr 9, 2025
396ea47
feat(networksecurity): Add samples for intercept firewall rule creati…
duvni Apr 9, 2025
830df31
feat(networksecurity): Add samples for mirroring rule creation (#840)
duvni Apr 9, 2025
291d803
feat(cloud_sql): add disabling psc on PSA+PSC instances examples (#836)
loeng2023 Apr 10, 2025
c6d4853
feat(GKE): add hpa_logs (#841)
apeabody Apr 10, 2025
5dce975
chore(deps): Update dependency go to v1.23.8 (#838)
renovate[bot] Apr 11, 2025
c7884d0
chore: remove deprecated sample (#831)
glasnt Apr 16, 2025
703882d
fix: remove deprecated force_delete (#830)
glasnt Apr 16, 2025
d1770e7
chore: add hcledit for TF resource fixup (#843)
apeabody Apr 17, 2025
c1a0668
fix(gke): update ray & binauthz sample (#845)
apeabody Apr 18, 2025
6d01e84
feat(cloud_sql): Add samples for Google/Customer-managed CAS instance…
feng-zhe Apr 22, 2025
e577627
chore(deps): bump golang.org/x/net in /test/integration (#844)
dependabot[bot] Apr 24, 2025
2768856
fix(gke): update rc example for del_protection (#847)
apeabody Apr 28, 2025
f310ac3
fix(cloud_sql): remove deletion_protection from default (#848)
apeabody Apr 28, 2025
451d57c
feat(gke): add sample for flex reservation (#849)
raushan2016 Apr 30, 2025
1bf53d5
feat: add Media CDN sample for custom headers (#851)
kevpong May 6, 2025
6bc008f
docs: Custom SAN examples (#850)
pandirigoog May 8, 2025
593bffb
fix(deps)!: Update dependency @google-cloud/functions-framework to v4…
renovate[bot] May 9, 2025
1fda2b2
chore(ci): Run all tests for .github/workflows, not .github/* (#854)
glasnt May 12, 2025
fb424c9
chore(ci): adjust validation of test changes (#855)
glasnt May 13, 2025
16c8f30
feat(securitycenter): add sample for setting custom endpoint (#853)
hegemonic May 13, 2025
05a25d2
feat(networksecurity): Use google provider for intercept samples. (#859)
duvni May 21, 2025
6427f1a
feat(cloud_sql): add creation of PSC SA instances examples (#860)
yyzou-bot May 22, 2025
b520927
feat(backupdr): Add disks example code for backup-plan and backup-pla…
dishaagarwal03-google May 23, 2025
dd4deba
ci: enable backupdr tests (#862)
glasnt Jun 5, 2025
336d289
feat(cloud_sql): add MCP instances examples (#867)
xuebaoZ Jun 18, 2025
6f8b214
fix(storage): fix the lifecycle storage sample (#865)
gurusai-voleti Jun 19, 2025
d6efda8
chore(deps): Update go modules and/or dev-tools (#856)
renovate[bot] Jun 23, 2025
e54c89f
feat(cloud_sql): Add ipv6 PSC endpoint examples for Cloud SQL PSC ins…
loeng2023 Jul 3, 2025
78f51f1
feat: Add samples for custom node service account (#869)
shannonxtreme Jul 20, 2025
7addf06
feat: Add TF samples for creating a Looker (Google Cloud core) Enterp…
ronnieplooker Jul 20, 2025
875ece4
chore(deps): Update dependency go to v1.24.5 (#873)
renovate[bot] Jul 25, 2025
9dbee97
feat(bigquery): Add example for creating an authorized view (#872)
ccarpentiere Jul 27, 2025
67d7ea2
chore(deps): Update module github.com/GoogleCloudPlatform/cloud-found…
renovate[bot] Jul 31, 2025
9496d6c
docs: Add Managed Kafka Connect terraform sample for Clusters (#876)
salmany Aug 7, 2025
5caa29b
docs: Add MKC Samples for Creating Connectors (#878)
salmany Aug 14, 2025
514ee6b
fix(managedkafka): use data resources for project IDs (#887)
glasnt Aug 14, 2025
b3c96a8
feat(cloud_sql): Add samples for SQL Server Advanced DR switchover (#…
seviet Aug 14, 2025
04945f1
feat(cloud_sql): add MySQL and PG samples for Read Pool (#886)
psung Aug 14, 2025
55b5e3d
chore(deps): Update dependency go to v1.24.6 (#885)
renovate[bot] Aug 21, 2025
d8e0ea8
chore(deps): Update module github.com/stretchr/testify to v1.11.0 (#888)
renovate[bot] Aug 25, 2025
081a884
docs: added parent region tags for custom SAN examples (#889)
seviet Aug 29, 2025
c536301
chore(deps): bump github.com/ulikunitz/xz in /test/integration (#890)
dependabot[bot] Aug 29, 2025
7bcd70d
Add samples for dual-stack and ipv6-only subnet creation (#891)
jarzynskila Sep 4, 2025
ca2bf0a
chore(deps): Update module github.com/stretchr/testify to v1.11.1 (#892)
renovate[bot] Sep 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 25 additions & 21 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
# Overall sample owners

* @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/terraform-samples-reviewers
/* @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/terraform-samples-reviewers @terraform-google-modules/cloud-samples-infra
/.github/ @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/cloud-samples-infra
/test/ @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/cft-admins @terraform-google-modules/cloud-samples-infra
/build/ @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/cft-admins @terraform-google-modules/cloud-samples-infra
* @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/terraform-samples-reviewers
/* @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/terraform-samples-reviewers @terraform-google-modules/cloud-samples-infra
/.github/ @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/cloud-samples-infra
/test/ @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/cft-admins @terraform-google-modules/cloud-samples-infra
/build/ @terraform-google-modules/terraform-samples-git-admins @terraform-google-modules/cft-admins @terraform-google-modules/cloud-samples-infra

/bigquery/ @terraform-google-modules/bigquery-terraform-swe @terraform-google-modules/terraform-samples-reviewers
/cloud_sql/ @terraform-google-modules/infra-db-sdk @terraform-google-modules/terraform-samples-reviewers
/cloudvpn/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/composer/ @terraform-google-modules/cloud-dpes-composer @terraform-google-modules/terraform-samples-reviewers
/compute/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/dns/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/gke/ @terraform-google-modules/eks-team @terraform-google-modules/terraform-samples-reviewers
/lb/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/looker/ @terraform-google-modules/cloud-looker-docs @terraform-google-modules/terraform-samples-reviewers
/media_cdn/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/network_connectivity/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/privateca/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/storage/ @terraform-google-modules/cloud-storage-dpe @terraform-google-modules/terraform-samples-reviewers
/traffic_director/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/vpc/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/managedkafka/ @terraform-google-modules/managedkafka-dev-team @terraform-google-modules/terraform-samples-reviewers
/bigquery/ @terraform-google-modules/bigquery-terraform-swe @terraform-google-modules/terraform-samples-reviewers
/cloud_sql/ @terraform-google-modules/cloudsql-connectivity @terraform-google-modules/terraform-samples-reviewers
/cloudvpn/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/composer/ @terraform-google-modules/cloud-dpes-composer @terraform-google-modules/terraform-samples-reviewers
/compute/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/dns/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/gke/ @terraform-google-modules/eks-team @terraform-google-modules/terraform-samples-reviewers
/lb/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/looker/ @terraform-google-modules/cloud-looker-docs @terraform-google-modules/terraform-samples-reviewers
/media_cdn/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/network_connectivity/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/network_security/intercept/ @terraform-google-modules/pm2-team @terraform-google-modules/terraform-samples-reviewers
/network_security/mirroring/ @terraform-google-modules/pm2-team @terraform-google-modules/terraform-samples-reviewers
/privateca/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/securitycenter/ @terraform-google-modules/gcp-security-command-center @terraform-google-modules/terraform-samples-reviewers
/storage/ @terraform-google-modules/cloud-storage-dpe @terraform-google-modules/terraform-samples-reviewers
/traffic_director/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/vpc/ @terraform-google-modules/dee-infra @terraform-google-modules/terraform-samples-reviewers
/managedkafka/ @terraform-google-modules/managedkafka-dev-team @terraform-google-modules/terraform-samples-reviewers
/backupdr/ @terraform-google-modules/gcbdr-samples-team @terraform-google-modules/terraform-samples-reviewers
Empty file added .terraform.lock
Empty file.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
# Make will use bash instead of sh
SHELL := /usr/bin/env bash

DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.22
DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 1.25
DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools
REGISTRY_URL := gcr.io/cloud-foundation-cicd
DOCKER_BIN ?= docker
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ authenticates Terraform, letting you get started with less setup.

1. Clone this repository:

git clone https://github.com/GoogleCloudPlatform/terraform-docs-samples.git
`git clone https://github.com/terraform-google-modules/terraform-docs-samples`

## How to run a sample

Expand Down
6 changes: 3 additions & 3 deletions application_integration/provision_region/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ resource "google_integrations_client" "example" {
run_as_service_account = google_service_account.default.email
cloud_kms_config {
kms_location = "us-east1"
kms_ring = google_kms_key_ring.default.id
key = google_kms_crypto_key.default.id
key_version = google_kms_crypto_key_version.default.id
kms_ring = basename(google_kms_key_ring.default.id)
key = basename(google_kms_crypto_key.default.id)
key_version = basename(google_kms_crypto_key_version.default.id)
kms_project_id = data.google_project.default.project_id
}
}
Expand Down
98 changes: 98 additions & 0 deletions backupdr/backup_plan/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
/**
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
# [START backupdr_create_backupvault]

resource "google_backup_dr_backup_vault" "default" {
provider = google-beta
location = "us-central1"
backup_vault_id = "my-vault"
description = "This is a second backup vault built by Terraform."
backup_minimum_enforced_retention_duration = "100000s"

labels = {
foo = "bar1"
bar = "baz1"
}

annotations = {
annotations1 = "bar1"
annotations2 = "baz1"
}

force_update = "true"
ignore_inactive_datasources = "true"
allow_missing = "true"
}

# [END backupdr_create_backupvault]

# [START backupdr_create_backupplan]

# Before creating a backup plan, you need to create backup vault (google_backup_dr_backup_vault).
resource "google_backup_dr_backup_plan" "default" {
provider = google-beta
location = "us-central1"
backup_plan_id = "my-bp"
resource_type = "compute.googleapis.com/Instance"
backup_vault = google_backup_dr_backup_vault.default.name

backup_rules {
rule_id = "rule-1"
backup_retention_days = 5

standard_schedule {
recurrence_type = "HOURLY"
hourly_frequency = 6
time_zone = "UTC"

backup_window {
start_hour_of_day = 0
end_hour_of_day = 24
}
}
}
}

# [END backupdr_create_backupplan]

# [START backupdr_create_backupplan_disk]

# Before creating a backup plan, you need to create backup vault (google_backup_dr_backup_vault).
resource "google_backup_dr_backup_plan" "disk_default" {
provider = google-beta
location = "us-central1"
backup_plan_id = "my-disk-bp"
resource_type = "compute.googleapis.com/Disk"
backup_vault = google_backup_dr_backup_vault.default.name

backup_rules {
rule_id = "rule-1"
backup_retention_days = 5

standard_schedule {
recurrence_type = "HOURLY"
hourly_frequency = 1
time_zone = "UTC"

backup_window {
start_hour_of_day = 0
end_hour_of_day = 6
}
}
}
}

# [END backupdr_create_backupplan_disk]
160 changes: 160 additions & 0 deletions backupdr/backup_plan_association/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
/**
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

resource "google_service_account" "default" {
account_id = "my-serviceaccount"
display_name = "Custom SA for VM Instance"
}

resource "google_compute_instance" "default" {
name = "my-instance"
machine_type = "n2-standard-2"
zone = "us-central1-a"
tags = ["foo", "bar"]

boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
labels = {
my_label = "value"
}
}
}

// Local SSD disk
scratch_disk {
interface = "NVME"
}

network_interface {
network = "default"
access_config {
// Ephemeral public IP
}
}

service_account {
# Google recommends custom service accounts that have cloud-platform scope and permissions granted via IAM Roles.
email = google_service_account.default.email
scopes = ["cloud-platform"]
}
}

resource "google_compute_disk" "default" {
name = "disk-data"
type = "pd-standard"
zone = "us-central1-a"
}

resource "google_backup_dr_backup_vault" "default" {
provider = google-beta
location = "us-central1"
backup_vault_id = "my-vault"
description = "This is a second backup vault built by Terraform."
backup_minimum_enforced_retention_duration = "100000s"

labels = {
foo = "bar1"
bar = "baz1"
}

annotations = {
annotations1 = "bar1"
annotations2 = "baz1"
}

force_update = "true"
ignore_inactive_datasources = "true"
allow_missing = "true"
}

resource "google_backup_dr_backup_plan" "default" {
provider = google-beta
location = "us-central1"
backup_plan_id = "my-bp"
resource_type = "compute.googleapis.com/Instance"
backup_vault = google_backup_dr_backup_vault.default.name

backup_rules {
rule_id = "rule-1"
backup_retention_days = 2

standard_schedule {
recurrence_type = "HOURLY"
hourly_frequency = 6
time_zone = "UTC"

backup_window {
start_hour_of_day = 12
end_hour_of_day = 18
}
}
}
}

resource "google_backup_dr_backup_plan" "disk_default" {
provider = google-beta
location = "us-central1"
backup_plan_id = "my-disk-bp"
resource_type = "compute.googleapis.com/Disk"
backup_vault = google_backup_dr_backup_vault.default.name

backup_rules {
rule_id = "rule-1"
backup_retention_days = 5

standard_schedule {
recurrence_type = "HOURLY"
hourly_frequency = 1
time_zone = "UTC"

backup_window {
start_hour_of_day = 0
end_hour_of_day = 6
}
}
}
}

# [START backupdr_create_backupplanassociation]

# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
# and compute instance (google_compute_instance).
resource "google_backup_dr_backup_plan_association" "default" {
provider = google-beta
location = "us-central1"
backup_plan_association_id = "my-bpa"
resource = google_compute_instance.default.id
resource_type = "compute.googleapis.com/Instance"
backup_plan = google_backup_dr_backup_plan.default.name
}

# [END backupdr_create_backupplanassociation]

# [START backupdr_create_backupplanassociation_disk]

# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
# and compute disk (google_compute_disk or google_compute_region_disk).
resource "google_backup_dr_backup_plan_association" "disk_association" {
provider = google-beta
location = "us-central1"
backup_plan_association_id = "my-disk-bpa"
resource = google_compute_disk.default.id
resource_type = "compute.googleapis.com/Disk"
backup_plan = google_backup_dr_backup_plan.disk_default.name
}

# [END backupdr_create_backupplanassociation_disk]
30 changes: 30 additions & 0 deletions backupdr/backup_vault/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* Copyright 2024 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

# [START backupdr_create_backupvault]

resource "google_backup_dr_backup_vault" "default" {
provider = google-beta
location = "us-central1"
backup_vault_id = "my-vault"
description = "This vault is created usingTerraform."
backup_minimum_enforced_retention_duration = "100000s"
force_update = "true"
ignore_inactive_datasources = "true"
allow_missing = "true"
}

# [END backupdr_create_backupvault]
Loading
Loading