Add support for billing export in 0-org-setup (#3347)

* Add support for billing export in 0-org-setup

* Merge branch 'master' into add-billing-export-support

* Refactored billing export with adding support for bigquery_datasets in project_factory

* Renamed bigquery_dataset to datasets

* Fixed defaults.schema.md

* Fixed default.schema.md again

* Cleanup md's

* Fixed boilerplate

* Fixed JSON schema

* reword README, rename project file

* Moved dataset_id to the key of the map

---------

Co-authored-by: Julio Castillo <jccb@google.com>
Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
This commit is contained in:
kovagoadam
2025-10-01 12:12:45 +02:00
committed by GitHub
parent e205b11954
commit 505ee02fef
15 changed files with 234 additions and 15 deletions

View File

@@ -29,6 +29,7 @@ projects:
defaults:
prefix: ft0
storage_location: europe-west1
bigquery_location: europe-west1
overrides: {}
output_files:
local_path: /tmp/fast-config

View File

@@ -472,6 +472,26 @@ values:
condition: []
member: serviceAccount:iac-security-rw@ft0-prod-iac-core-0.iam.gserviceaccount.com
role: roles/billing.user
module.factory.module.bigquery-datasets["billing-0/billing_export"].google_bigquery_dataset.default:
dataset_id: billing_export
default_encryption_configuration: []
default_partition_expiration_ms: null
default_table_expiration_ms: null
delete_contents_on_destroy: false
description: Terraform managed.
effective_labels:
goog-terraform-provisioned: 'true'
external_catalog_dataset_options: []
external_dataset_reference: []
friendly_name: Billing export
labels: null
location: europe-west1
max_time_travel_hours: '168'
project: ft0-prod-billing-exp-0
resource_tags: null
terraform_labels:
goog-terraform-provisioned: 'true'
timeouts: null
module.billing-accounts["default"].google_billing_account_iam_member.bindings["billing_viewer_org_ro"]:
billing_account_id: 012345-012345-012345
condition: []
@@ -1013,6 +1033,18 @@ values:
locked: null
project: ft0-prod-audit-logs-0
retention_days: 31
module.factory.module.projects-iam["billing-0"].google_project_iam_binding.authoritative["roles/owner"]:
condition: []
members:
- serviceAccount:iac-org-rw@ft0-prod-iac-core-0.iam.gserviceaccount.com
project: ft0-prod-billing-exp-0
role: roles/owner
module.factory.module.projects-iam["billing-0"].google_project_iam_binding.authoritative["roles/viewer"]:
condition: []
members:
- serviceAccount:iac-org-ro@ft0-prod-iac-core-0.iam.gserviceaccount.com
project: ft0-prod-billing-exp-0
role: roles/viewer
module.factory.module.projects-iam["iac-0"].google_project_iam_binding.authoritative["$custom_roles:storage_viewer"]:
condition: []
members:
@@ -1098,6 +1130,52 @@ values:
- serviceAccount:iac-org-ro@ft0-prod-iac-core-0.iam.gserviceaccount.com
project: ft0-prod-audit-logs-0
role: roles/viewer
module.factory.module.projects["billing-0"].data.google_bigquery_default_service_account.bq_sa[0]:
project: ft0-prod-billing-exp-0
module.factory.module.projects["billing-0"].data.google_storage_project_service_account.gcs_sa[0]:
project: ft0-prod-billing-exp-0
user_project: null
module.factory.module.projects["billing-0"].google_project.project[0]:
auto_create_network: false
billing_account: 012345-012345-012345
deletion_policy: DELETE
effective_labels:
goog-terraform-provisioned: 'true'
folder_id: null
labels: null
name: ft0-prod-billing-exp-0
org_id: '1234567890'
project_id: ft0-prod-billing-exp-0
tags: null
terraform_labels:
goog-terraform-provisioned: 'true'
timeouts: null
module.factory.module.projects["billing-0"].google_project_iam_member.service_agents["bigquerydatatransfer"]:
condition: []
project: ft0-prod-billing-exp-0
role: roles/bigquerydatatransfer.serviceAgent
module.factory.module.projects["billing-0"].google_project_service.project_services["bigquery.googleapis.com"]:
disable_dependent_services: false
disable_on_destroy: false
project: ft0-prod-billing-exp-0
service: bigquery.googleapis.com
timeouts: null
module.factory.module.projects["billing-0"].google_project_service.project_services["bigquerydatatransfer.googleapis.com"]:
disable_dependent_services: false
disable_on_destroy: false
project: ft0-prod-billing-exp-0
service: bigquerydatatransfer.googleapis.com
timeouts: null
module.factory.module.projects["billing-0"].google_project_service.project_services["storage.googleapis.com"]:
disable_dependent_services: false
disable_on_destroy: false
project: ft0-prod-billing-exp-0
service: storage.googleapis.com
timeouts: null
module.factory.module.projects["billing-0"].google_project_service_identity.default["bigquerydatatransfer.googleapis.com"]:
project: ft0-prod-billing-exp-0
service: bigquerydatatransfer.googleapis.com
timeouts: null
module.factory.module.projects["iac-0"].data.google_bigquery_default_service_account.bq_sa[0]:
project: ft0-prod-iac-core-0
module.factory.module.projects["iac-0"].data.google_storage_project_service_account.gcs_sa[0]:
@@ -2682,7 +2760,8 @@ values:
output: null
triggers_replace: null
counts:
google_bigquery_default_service_account: 1
google_bigquery_dataset: 1
google_bigquery_default_service_account: 2
google_billing_account_iam_member: 6
google_folder: 8
google_folder_iam_binding: 44
@@ -2695,11 +2774,11 @@ counts:
google_org_policy_policy: 37
google_organization_iam_binding: 35
google_organization_iam_custom_role: 7
google_project: 2
google_project_iam_binding: 14
google_project_iam_member: 14
google_project_service: 30
google_project_service_identity: 8
google_project: 3
google_project_iam_binding: 16
google_project_iam_member: 15
google_project_service: 33
google_project_service_identity: 9
google_service_account: 16
google_service_account_iam_member: 4
google_storage_bucket: 3
@@ -2707,12 +2786,12 @@ counts:
google_storage_bucket_object: 9
google_storage_managed_folder: 5
google_storage_managed_folder_iam_binding: 10
google_storage_project_service_account: 2
google_storage_project_service_account: 3
google_tags_tag_binding: 5
google_tags_tag_key: 3
google_tags_tag_value: 5
google_tags_tag_value_iam_binding: 4
local_file: 9
modules: 43
resources: 297
modules: 46
resources: 308
terraform_data: 2