157 Commits

Author SHA1 Message Date
Simone Ruffilli
d57c79ac92 Standardize label validation in JSON schemas to conform with GCP platform limits (#4021)
Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2026-06-11 10:56:45 +00:00
Julio Castillo
008a3719ad Support service_agents_config.skip_iam in project-factory and fast stages (#4007)
* Support service_agents_config.skip_iam in project-factory and fast stages

* Fix inventories

* Change service-agent creation/iam order
2026-06-01 10:04:54 +00:00
Julio Castillo
982717188d Avoid tag binding permadiffs for project-factory service accounts (#4006)
* Avoid tag binding permadiffs for service accounts created by project-factory

* Regenerate schema docs
2026-06-01 04:33:53 +00:00
Ludovico Magnocavallo
8e0826a95e prep v56.1.0 2026-05-25 12:27:30 +00:00
Ludovico Magnocavallo
87ede610c4 prep v56.0.0 2026-05-21 09:19:03 +00:00
kovagoadam
1907c38e22 Add IAM deny policies support (#3970)
* Added IAM denial policies

* Moved default to empty, removed trys, added condition vars to expression

* remove redundant null checks

* reduce line length

* boilerplate and principal context expansion

* update readmes

* add explicit validation against null values

* add context tests

* Add missing license headers to examples

---------

Co-authored-by: Julio Castillo <jccb@google.com>
2026-05-21 02:38:06 +00:00
Ludovico Magnocavallo
981e4581ee Add project-factory based data platform dataset to FAST project factory stage (#3957)
* dp rewrite stage 0, projects

* remove plan files

* generalize handling of basepath for projects in project-factory module

* central-0 ---> core-0

* add schemas, validate YAMLs, tags

* aspect types

* data catalog policy tag factory

* add support for data catalog taxonomy to project factory

* complete retrofit of old stage configuration, except networking

* shared vpc networking

* networking

* data platform as pf dataset

* docs

* test

* remove legacy dp stage, fix tests and links

* boilerplate

* tfdoc

* fix unrelated tfdoc

* schemas

* fix errors

* schema

* duplicate schemas

* yamllint

* Fix module naming convention for aspect-types

* Fix factories_config in vpcs.tf for net-vpc-factory compatibility

* Update schema documentation based on schema changes

* Fix false rename conflict in .config.yaml files

* Sync schemas and update documentation

* Fix path expansion for aspect-types and revert projects_input to master

* Restore path expansion for org_policies in projects-iam call

* Fix trailing newlines in schema duplicates to satisfy duplicate-diff

* Fix path expansion for data_catalog_taxonomy in taxonomies.tf

* Update inventory for data-platform test and clean up debug prints

* Add full values to data-platform inventory

* Align Stage 2 VPC Factory integration with Stage 0 and fix tests

TAG=agy

* Fix project factory context resolution and data platform datasets

- Update tag context keys in project factory to use file key without 'projects/' prefix.
- Fix tag reference in product-0.yaml.
- Fix shared_vpc_service_config in shared-0.yaml by moving service account to network_users.
- Set parent for domain-0 folder to data-platform.
- Mock net-dev-0 project ID in tests.
- Update inventories.

TAG=agy
CONV=4b37fa5b-bf59-4604-9e8f-b55353d967a0

* Fix project-level tag keys context resolution in project factory

* Fix commented out tag reference in domain-0 .config.yaml

* Fix merge() calls with empty arguments in project-factory and data-catalog-policy-tag

* Update Data Platform dataset README with prerequisites and customization guide

* Add Table of Contents to Data Platform dataset README

* docs: update Data Platform README with project templates tip

* Document data platform output files and linking sequence in README

* Update data platform README with VPC-SC and delegated IAM details

* Refactor data platform dataset and align stage defaults

* Update test inventory and variables for data platform with new prefix
2026-05-12 16:44:32 +02:00
Ludovico Magnocavallo
a2493caf25 prep v55.4.0 2026-05-10 14:46:23 +00:00
Julio Castillo
8450edbf2b prep v55.3.0 2026-04-27 10:25:51 +02:00
Ludovico Magnocavallo
b069b67909 Fix regressions in FAST v55.2.0 (#3910)
* fix org-setup outputs

* start work on trickling down tag_vars through stages

* fixes

* tflint

* fix vpn context in fast networking stage

* automated review fixes

* review comments
2026-04-27 09:01:03 +02:00
Ludovico Magnocavallo
392ee6bda4 prep v55.2.0 2026-04-25 04:51:39 +00:00
Alberto Oliveira da Silva
4869044b60 Support organization roles in all schemas (#3904)
* Support organization roles in all schemas

* Support legacy domain-scoped project IDs for organization roles

* fix legacy project pattern
2026-04-24 21:11:50 +00:00
Julio Castillo
2eaa0d5e27 Add support for dynamic tags (#3897)
* Allow creation of dynamic tags

* Extend project factory and related modules to support dynamic values

* Extend folder and organization modules

* project and organization readme

* Simplify dynamic tag support and remove unnecessary restrictions

  • Schemas & Validations: Removed the restriction that forbade combining IAM fields with  allowed_values_regex  on tags. Updated validations in  project  and  organization  modules, and
  simplified all relevant JSON schemas.
  • Module Tag Bindings: Simplified the  tag_value  assignment in  folder ,  project ,  gcs ,  bigquery-dataset , and  kms  modules by removing the defensive  can(regex(...))  check and
  calling  templatestring  directly.
  • Outputs: Removed the  tags_dynamic  output from  project  and  organization  modules, as the same information is now available in  tag_keys .
  • Project Factory: Updated  tag_vars_projects  in  projects.tf  to use the native  namespaced_name  attribute and filtered manually for dynamic tags.

* fix(organization, project): fix linting and tests for dynamic tag support

- Align allowed_values_regex and description extraction in _tags_merged
  locals to use lookup() for consistency with other fields.
- Fix spacing in project context variable (alphabetical ordering).
- Update organization tags test to include the new cost_center tag key
  with allowed_values_regex.
- Update project tags test to include the new cost_center tag key and
  reflect the resolved allowed_values_regex on environment.

* refactor(gcs): refine tag bindings and fix context test

- Add _tag_bindings local to pre-resolve context references, enabling
  templatestring to receive a direct map reference (required by Terraform).
- Use var.context.tag_vars instead of the non-existent local.ctx.tag_vars.
- Fix HCL syntax in context.tfvars (escaped inner quotes).
- Update context test inventory to reflect 3 tag bindings including a
  dynamic value resolved via templatestring.

* refactor: align modules with tag binding context pattern

- Add _tag_bindings local + templatestring dance to cloud-run-v2,
  compute-vm, folder, kms modules (bigquery-dataset already had it)
- Exclude tag_vars from local.ctx in cloud-run-v2, compute-vm, folder,
  kms, project modules (bigquery-dataset already had it)
- Add tag_vars to context variable in cloud-run-v2, compute-vm modules
  (others already had it)
- Update all context tests with dynamic tag binding values using
  var.context.tag_vars

* docs: add module-level tftest.yaml test instructions to GEMINI.md

* docs: regenerate READMEs after tag-regex alignment

- Regenerate variable tables in 7 module READMEs to reflect
  line number shifts from prior tag-regex changes
- Add tag_vars exclusion to gcs ctx local
- Fix whitespace alignment in iam-service-account and
  project-factory tag_vars blocks
- Update tftest resource counts for organization and project
- Remove tags_dynamic from organization/project output tables

* fix(project-factory): update test inventory for tag_bindings module split

- Move tag binding address from folder-2 to folder-2-iam in test
  inventory (tag_bindings moved from creation to IAM modules)
- Update module instance count from 34 to 35
- Regenerate README tables after terraform fmt line shifts
- Apply terraform fmt to variables.tf

* refactor(project-factory): remove unnecessary depends_on from folder-iam modules

Folder IAM modules depend on their own folder creation modules, not
on module.projects. The explicit depends_on was leftover from an
earlier design.

* FAST stages

* Address review comments.

- FAST Stages:
  - Added tag_keys to output-files.tf in 0-org-setup to pass org tags via tfvars.
  - Sorted tag_keys and tag_values in output-files.tf.
  - Updated project-factory, networking, and security stages to use tag_keys.
  - Filtered tag_keys for dynamic tags only.
- Modules:
  - Excluded tag_vars from local.ctx in iam-service-account and organization.
  - Simplified tag_value in iam-service-account.
- Tests:
  - Updated test inventories for 0-org-setup and project-factory.

* Fix tf format

* Fix tfdoc

* docs: add ADR for templatestring vars convention and update status of base path ADR

* More tfdoc

* Update schemas

* Use endswith in context loop

* Address review

* Update FAST readmes

* Update last modules

* Terraform fmt

* Revert alloydb

* Fix whitespace

---------

Co-authored-by: Ludovico Magnocavallo <ludo@qix.it>
2026-04-24 20:45:45 +00:00
Alberto Oliveira da Silva
d22320fe62 fix: labels are 'key:value', plain strings, not arrays (#3902) 2026-04-24 07:18:58 +00:00
Liam Nesteroff
f5ee82ab3a Add DNS Armor support (#3874)
* add dns armor module

* add dns armor to pf

* added missing/optional attributes

* Update project schemas

* Set version file copyright year to 2025

* replace module with single resource

* moved into it's own file

* Added tests and defaulting enabled to false

* Add optional name parameter and updated schemas

* make dns_threat_detector.enabled optional in project schemas

---------

Co-authored-by: Luca Prete <preteluca@gmail.com>
2026-04-24 08:58:48 +02:00
Ludovico Magnocavallo
25bd428d17 prep v55.1.0 2026-04-20 14:22:29 +00:00
Luca Prete
f2d4e937d1 Fix pre-commit hook (#3882) 2026-04-18 10:07:14 +02:00
Ludovico Magnocavallo
9c40f56332 prep v55.0.0 2026-04-14 11:42:34 +00:00
Ludovico Magnocavallo
037fcb565b Merge remote-tracking branch 'origin/fast-dev' 2026-04-14 08:53:46 +00:00
Ludovico Magnocavallo
920eaf128b prep v54.4.0 2026-04-14 08:47:07 +00:00
Ludovico Magnocavallo
118b70d456 Remove the FAST data platform stage (#3851)
* chore: remove data platform stage and references

* fix checks
2026-04-10 10:19:20 +02:00
Ludovico Magnocavallo
fa1e390af7 prep v54.3.0 2026-04-09 12:30:25 +00:00
Julio Castillo
bc5b203a8f Add toggle to tfdoc to remove type hints (#3842)
* Add toggle to tfdoc to remove type hints

* Update all readmes

* Fix python formatting
2026-04-08 11:08:18 +00:00
Ludovico Magnocavallo
409c088c2c enforce schema docs in linting (#3843) 2026-04-08 10:20:50 +00:00
Simon Roberts
5e5cfbf736 Add support for bucket custom_placement_config to project-factory (#3839)
* Add support for bucket custom_placement_config to project-factory

* Copy modules/project-factory/schemas/project.schema.json to fast stages

* Add custom_placement_config (only) to schema markdown

* Update module project.schema.md
2026-04-08 06:32:24 +00:00
Ludovico Magnocavallo
0cc97937be prep v54.2.0 2026-04-02 12:56:36 +00:00
Ludovico Magnocavallo
774ca376e6 prep v54.1.0 2026-03-26 15:53:38 +00:00
Samuele Perticarari
bd87710eea feat: Add new compliance regime options for Assured Workloads (#3794)
* feat: Add new compliance regime options to folder schemas for assured workloads configurations.

* terraform fmt

* Update Folder README with `tools/tfdoc.py` tool
2026-03-16 17:59:25 +00:00
Ludovico Magnocavallo
dd95efc53e prep v54.0.0 2026-03-05 11:11:25 +00:00
Ludovico Magnocavallo
a935ab6643 Merge remote-tracking branch 'origin/master' into fast-dev 2026-03-05 11:08:38 +00:00
Ludovico Magnocavallo
e282f4bb4f prep v53.1.0 2026-03-05 10:55:44 +00:00
Ludovico Magnocavallo
7a5664f475 Additional changes to folder module and project factory (#3782)
* allow null name, use basepath for factories in pf folders

* fix id in folder schema
2026-03-05 09:32:35 +00:00
Ludovico Magnocavallo
0be09646b0 Add missing folder features to project factory and align logging across folder/org modules (#3779) 2026-03-04 10:28:48 +01:00
kovagoadam
738e638bbe Added custom prefix support for automation SA (#3757) 2026-02-21 09:54:01 +01:00
Ludovico Magnocavallo
67b1543e90 Support additional attributes for buckets/datasets in project factory module (#3755)
* extend attributes for project factory secondary resources

* remove extra files

* complete

* tf fmt

* tfdoc

* schemas

* fix tests

* tfdoc
2026-02-20 11:57:59 +00:00
Ludovico Magnocavallo
26e622edae prep v53.0.0 2026-02-12 09:12:54 +00:00
Ludovico Magnocavallo
079aac1f88 Merge remote-tracking branch 'origin/master' into fast-dev 2026-02-12 09:07:04 +00:00
Ludovico Magnocavallo
5765b11a87 prep v52.1.0 2026-02-12 09:01:26 +00:00
Ludovico Magnocavallo
fb21f6aaf8 Change factories_config type in FAST and project/vpc factory modules, add YAML schema validation (#3728)
* stage 0

* stage 1

* networking

* security

* pf stage

* tfdoc

* align schemas

* inventory

* fix observability

* pf module

* pf module budgets

* align fast stages

* align project subfactories

* tfdoc

* schema validation

* add missing schemas

* Fix observability types

---------

Co-authored-by: Julio Castillo <jccb@google.com>
2026-02-11 15:29:49 +00:00
Vannick Trinquier
d499dc6928 Add support for bucket logging configuration in module gcs and project-factory (#3699) 2026-02-06 14:14:46 +07:00
Ludovico Magnocavallo
8e7253ba11 add missing IAM interface attributes to service account module (#3700) 2026-02-04 12:07:06 +01:00
Ludovico Magnocavallo
cdc5e7df45 prep v52.0.0 2026-01-30 16:00:47 +00:00
Ludovico Magnocavallo
12fd675c8c Merge remote-tracking branch 'origin/master' into fast-dev 2026-01-30 15:59:10 +00:00
Ludovico Magnocavallo
1f8c2b36da prep v51.1.0 2026-01-30 15:58:47 +00:00
Ludovico Magnocavallo
d95c4fcc3f Merge remote-tracking branch 'origin/master' into fast-dev 2026-01-27 11:55:58 +00:00
lopezvit
6db25b1a08 Add support for the Assured Workloads in the project factory (#3666)
* Add support for the Assured Workloads in the project factory

* Fix test after requiring organization as a var
2026-01-23 13:21:48 +01:00
Julio Castillo
d9e1b924a1 Add asset_feeds to resman modules (#3658)
* Add asset_feeds to resman modules

* Add examples and update readmes

* Extend pubsub_topic context to project and folder modules

* Use pubsub_topic context for pubsub_destination

* Update readmes and add project-factory asset_feed example

* Update context tests

* Update schemas
2026-01-20 14:37:35 +00:00
Ludovico Magnocavallo
9d486022bf Merge remote-tracking branch 'origin/master' into fast-dev 2026-01-20 08:47:01 +00:00
Ludovico Magnocavallo
558e552b5e Support org-level logging cmek config in schema, use context for org-level logging config, update schema docs. (#3657)
* support org-level logging cmek config in schema, update schema docs

* fix org logging identity context
2026-01-19 16:35:44 +01:00
Vannick Trinquier
8342558732 Implement various compliance configuration and principle of least privilege for hardened dataset (#3635) 2026-01-19 15:46:15 +07:00