Commit Graph

916 Commits

Author SHA1 Message Date
Simon Roberts
26dbaa2d6e Enable terraform_naming_convention in tflint (#3930)
* Draft terraform_naming_convention

* Two fast/stages fixes for terraform_naming_convention

* Disable terraform_naming_convention for resources for now

* module fixes for terraform_naming_convention

* tfdoc

* Remove "moved" from recipe and needs-fixing

* Fix moved for spoke_ra

* fix tests

* Use default (snake_case) for resources

* factory.terraform_data.project-preconditions

* First-pass migration of resources + tests

* Fix tests/modules/organization

* Require snake_case for variables; Add annotations for _testing

* permit _fast_debug variable

* Fix net_vpc_factory and net_vpc_firewall tests

* tfdoc addons and recipe

* Fix more tests

* Fix some net-global -> net_global tests

---------

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2026-05-06 06:06:26 +00:00
Luca Prete
ba56d9afbc Add Agent Engine identity type (#3875) 2026-05-05 10:22:21 +02:00
Luca Prete
4cf46f2dd9 Agent Engine: remove unnecesary permission after bug fix (#3926) 2026-05-04 09:05:48 +02:00
Samuele Perticarari
c0ee6842c6 feat(alloydb): Implement track_client_address field in AlloyDB module (#3916)
* Implement track_client_address field in AlloyDB

* Bump Google TF providers to 7.29
2026-04-28 07:40:25 +00:00
Sven Schliesing
be6eea5d6d Add example "Remote Docker registry with credentials" for artifact-registry (#3887)
* Add example "Remote Docker registry with credentials" for artifact-registry

* Add inventory

(cherry picked from commit 903c4c423c0264bf270f1da13245fa01e58163d9)

Add inventory

(cherry picked from commit fd439be6412c2ea281578ee49f61cb3399850521)

---------

Co-authored-by: Julio Castillo <jccb@google.com>
2026-04-27 18:05:29 +02:00
Vijay Kumar Singh
a727a2ea02 feat(cloud-function-v2): add support for auto_update_policy (#3881)
Co-authored-by: Julio Castillo <jccb@google.com>
Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2026-04-25 06:48:40 +02: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
Ludovico Magnocavallo
fb33752d8d Support context interpolation for PAM email recipients (#3903) 2026-04-24 18:29:31 +02: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
Luca Prete
427d9a3298 Add more context to dns-response-policy module (#3899) 2026-04-23 13:49:30 +02:00
Luca Prete
275dd6a9ea Add enable_deletion_protection variable to agent engine module (#3898) 2026-04-22 14:05:09 +00:00
Hemanand
eaa420534b Add agent engine BYOC support (#3885)
* feat(agent-engine): add support for container and custom image specs

- Add container_config to deployment_files.
- Add image_spec with build_args to source_config.
- Make agent_framework optional and document supported values.
- Implement dynamic specs for container and source deployments.
- Add examples and automated tests for new deployment types.

* chore: update Google provider version to 7.28.0 across modules

Mechanical update of versions.tf and versions.tofu files using tools/versions.py.

* feat(agent-engine): refactor for container deployments and API alignment

- Group deployment settings under 'deployment_config' (renamed from 'deployment_files').
- Support container-based deployments via 'container_config' and 'image_spec'.
- Refactor 'source_files_config' (renamed from 'source_config') to include mutually exclusive 'python_spec' and 'image_spec'.
- Support 'developer_connect_config' as a source code type.
- Group engine settings (framework, env, secrets) under 'agent_engine_config'.
- Add support for 'memory_bank_config' persistent memory.
- Overhaul reasoning engine resources with dynamic blocks to match provider schema.
- Update all documentation examples, add TOC, and refresh test inventories.

* Update dynamic python_spec block and related example yamls

* Ignore changes setting for developer_connect_source under lifecycle management

* fixing review comments for `try` and default path for `source_path`

---------

Co-authored-by: Hemanand <hemr@google.com>
Co-authored-by: Julio Castillo <jccb@google.com>
2026-04-21 17:46:20 +00:00
Simone Ruffilli
c8886b4d88 Support context interpolation for psc_allowed_consumer_projects in module cloudsql-instance (#3894) 2026-04-21 15:22:48 +00:00
Julio Castillo
c995ffba07 Skip IAM for the Agent Gateway Service Agent (#3893) 2026-04-21 10:33:14 +00:00
Luca Prete
0abf021f04 Add more context and tests to agent-engine module (#3886) 2026-04-20 15:15:29 +02:00
Luca Prete
f2d4e937d1 Fix pre-commit hook (#3882) 2026-04-18 10:07:14 +02:00
Luca Prete
7a31a07df9 Add context to net-lb-app-int module (#3880) 2026-04-17 15:00:00 +02:00
Luca Prete
5ca68a3de0 Add context to net-lb-app-ext module (#3879) 2026-04-17 14:00:56 +02:00
Luca Prete
a851638f15 Add example for context on net-lb-int readme; updated copyright (#3878) 2026-04-17 09:43:53 +00:00
Luca Prete
cee2a48c87 Add context to net-address module (#3876) 2026-04-17 11:23:47 +02:00
Julio Castillo
ad912d795a Enable creation of organization- and folder-level service agents (#3877)
* Enable creation of organization- and folder-level service agents

* formatting

* Add folder test

* Add org tests

* linting

* more linting

* Fix tests
2026-04-16 17:35:17 +00:00
jta-ofr
2cb67b3532 Add data_api_access attribute to cloudsql-instance module (#3866)
* add data-api-access to clousql instance module

* fix readme

* updates to follow guidelines

* update test module

* add validation for data_api_access variable

* regenerate readme.md

* allow data_api_access to be nullable

* set default to null

* update readme

---------

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2026-04-16 09:24:02 +00:00
Ludovico Magnocavallo
8076220648 Fix regression in compute-vm module (#3872)
* fix(compute-vm): purge key_revocation_action_type from tests and update schema link

* fix schema link
2026-04-15 17:17:42 +00:00
Ludovico Magnocavallo
1cd7176a72 remove source md5 hash from inventories 2026-04-14 11:33:06 +00:00
Ludovico Magnocavallo
037fcb565b Merge remote-tracking branch 'origin/fast-dev' 2026-04-14 08:53:46 +00:00
kovagoadam
1050daff71 Add support for creating multiple workforce identity pools (#3846)
* Added support for multiple workforce identity pools

* Fixed organization module workforce identity federation outputs

* tfdoc

---------

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
Co-authored-by: Julio Castillo <jccb@google.com>
2026-04-14 06:55:18 +00:00
Wiktor Niesiobędzki
6bfa7077a2 Recreate subscription of topic replacement, fix tests 2026-04-13 14:47:37 +02:00
Ludovico Magnocavallo
85b0871085 Add net-vpc-factory and starter-gcd dataset to 0-org-setup, fix context in net-vpc-factory (#3860)
* feat(fast/0-org-setup): integrate net-vpc-factory into stage 0

* initial starter dataset

* starter pack

* fix(fast/0-org-setup): correct factory vpcs paths definition and update test inventory

* feat(fast/0-org-setup): add VPC and subnet outputs and update stage tfvars

* test(fast/0-org-setup): update gcd starter defaults and regenerate inventory

* fix(modules/net-vpc-factory): remove internal defaults logic and pass context correctly

* fix typo in dataset fw rule, add missing boilerplate, set sane defaults for net vpc factory

* terraform fmt

* tfdoc, copyright year

* schema docs

* yamllint
2026-04-13 09:42:03 +02:00
Samuele Perticarari
55a847c008 feat(alloydb): add support for advanced query insights (observability_config) (#3856)
* Implemented advanced query insight in alloydb module

* Implemented readme example and test

* Fix TOC
2026-04-11 13:57:38 +02:00
Ludovico Magnocavallo
68f2f29144 fix(compute-vm): add position attribute to attached_disks to control ordering (#3848) 2026-04-09 21:34:15 +02:00
Hemanand
92d591a9b6 Add memory bank to modules/agent-engine (#3844)
* feat(agent-engine): add support for memory bank configuration

* refactor(agent-engine): remove source_path_override and revert to standard source_path

* provider version upgrade from 7.17 to 7.27

* docs(agent-engine): fix README validation and update tables

---------

Co-authored-by: Hemanand <hemr@google.com>
2026-04-08 17:09:27 +00:00
Julio Castillo
15c7951f97 Remove hcl2 python dependency (#3836)
* Migrate organization policy tests to standard tftest.yaml.

Remove python-hcl2 dependency and the custom python test file.
Consolidate the boolean, list, and custom constraint tests into a single `org_policies` test with a factory equivalent.
Restructure factory files into a unified `factory/` directory.

* Migrate project and folder org policy tests to standard tftest.yaml.

Replicate the organization module changes for project and folder modules:
- Remove python-hcl2 dependency usages and conftest.py.
- Remove custom python test files for org policies.
- Consolidate org policy tests into a single `org_policies` test with a factory equivalent.
- Unify factory files into a `factory/` directory.
- Remove redundant common.tfvars in folder module.

* Add factory policies directory to duplicate-diff checks.

Ensure the YAML factory files for org policies remain perfectly identical across the organization, folder, and project modules.

* Remove unused deepdiff dependency from requirements and pre-commit config.

* Add boilerplate

* fix broken link
2026-04-08 08:14:16 +02:00
Ludovico Magnocavallo
534fd4faf0 add support for service agents to project factory service accounts IAM (#3830) 2026-04-02 08:31:39 +00:00
Simone Ruffilli
a6b98bac28 Add support for attachment-level BGP sessions and candidate_*_router_ip_address (#3827)
* Support VLAN-attachment-level bgp advertisements
* Support for candidate_cloud_router_ip_address and candidate_customer_router_ip_address
2026-04-01 12:21:18 +00:00
Ludovico Magnocavallo
ee8ae023d0 fix(workstation-cluster): allow private_cluster_config to be null (#3821)
Fixes #3819 by changing the default of `private_cluster_config` to `null` instead of an empty object, preventing the module from unintentionally generating an empty `private_cluster_config` block and treating the cluster as private when it wasn't requested.
2026-03-30 09:24:58 +02:00
Ludovico Magnocavallo
44d00ed670 Implement group membership in compute-vm module (#3816)
* implement group membership in compute-vm module

* fix newline, update copyright
2026-03-27 07:56:07 +00:00
Ludovico Magnocavallo
a4eb4d24fd Compute VM module refactor (#3805)
* add ad for compute-vm refactor

* Exclue nic_type from validated fields, add split of main.tf and template.tf

* boot disk

* fix examples and fixtures

* attached disks

* fix further examples and module-level tests

* remove extra file

* fix mig examples

* finish refactoring variables

* align fast and other modules

* refactor(compute-vm): align examples and ADR with the newly implemented interface

This commit addresses the remaining references of the `instance_type` and `confidential_compute` parameters in the testing environment and updates the ADR.

* feat(compute-vm): add network_performance_config to instance and templates

This change implements the usage of the `network_performance_tier` variable we added earlier into the actual Terraform resources.

---------

Co-authored-by: Wiktor Niesiobędzki <wiktorn@google.com>
2026-03-26 11:31:40 +00:00
jnahelou
78e00682f8 Ignored condition attribute in IAM tag bindings within the organisation/project modules (#3762)
* fix(modules/organization): conditions ignored in tags

* fix(modules/project): conditions ignored in tags

* fix(modules/project): Tags:1 test skipped due to bad markdown block

---------

Co-authored-by: Julio Castillo <jccb@google.com>
2026-03-18 17:12:46 +00:00
Wiktor Niesiobędzki
36b58781ed Use e2-micro instead of f1-micro as default 2026-03-17 14:46:52 +01:00
David Ferguson
ea4469e19c Add support for cipher suite configuration on net-vpn-* modules (#3790) 2026-03-17 09:39:07 +01:00
Simone Ruffilli
5bb0862638 Add context support to vlan-attachments (#3787) 2026-03-13 08:12:04 +01:00
Ludovico Magnocavallo
a6c284a273 Add context support to artifact-registry, net-lb-app-int, cloudsql modules (#3784)
* artifact-registry

* net-lb-app-int

* copyright

* cloudsql

* fix linting
2026-03-11 12:35:09 +01: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
Ludovico Magnocavallo
1e8603192c Allow reusing IAM binding key across objects in kms module (#3775)
* allow reusing IAM binding key across objects in kms module

* fix inventory
2026-03-02 08:06:37 +01:00
Ludovico Magnocavallo
6ec1d8f504 Support hyperdisk-balanced options on gke-nodepool module (#3767) 2026-02-25 15:10:29 +00:00
Ludovico Magnocavallo
00796b73ba Support TLS settings in app load balancer modules (#3766) 2026-02-25 14:49:37 +00:00
Wiktor Niesiobędzki
a1474b2b0a Fix example for snapshot schedules 2026-02-20 14:43:23 +00: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
e58c6dd3d1 Fix regional resource policy attachment in compute-vm module (#3753)
* fix regional resource policy attachment in compute-vm module

* tfdoc
2026-02-19 10:27:04 +00:00
Martin Bergo
60ec6db9cd docs(organization): document external IAM management for logging sinks at scale (#3746)
* docs(organization): document external IAM management for logging sinks at scale

* Update TOC

---------

Co-authored-by: Julio Castillo <jccb@google.com>
2026-02-18 15:08:23 +00:00