Commit Graph

102 Commits

Author SHA1 Message Date
Ludovico Magnocavallo
91fe329aca Fix E2E test failures for Cloud Run v2, KMS, Compute VM, and update GEMINI.md (#3953)
* Update Cloud Run v2 GPU examples in README

Remove launch_stage = "BETA" from examples as it now defaults to GA in the provider. This fixes E2E test failures where the API returns GA. Reference: https://github.com/hashicorp/terraform-provider-google/pull/17029

TAG=agy

* Fix KMS and Compute VM E2E test failures

Update README examples to avoid conflicts and unsupported modes, and update corresponding inventories.

TAG=agy

* Add instruction to run a single specific example test in GEMINI.md

TAG=agy
2026-05-10 11:53:30 +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
Luca Prete
f2d4e937d1 Fix pre-commit hook (#3882) 2026-04-18 10:07:14 +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
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
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
Wiktor Niesiobędzki
36b58781ed Use e2-micro instead of f1-micro as default 2026-03-17 14:46:52 +01:00
Suryansh Singhal
761399f055 Allow compute-vm disks to have custom names (#3792)
* module support custom name if provided instead of just {vm_name}-boot

* updated readme.md
2026-03-16 11:22:34 +00:00
Wiktor Niesiobędzki
a1474b2b0a Fix example for snapshot schedules 2026-02-20 14:43:23 +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
Suryansh Singhal
ba304518f1 Prevent recreation for key_revocation_action in compute-vm module (#3620)
* fix(compute-vm): prevent instance recreation for key_revocation_action_type

The `key_revocation_action_type` attribute in the `google_compute_instance`
resource defaults to `NONE` on the provider side.

When this optional attribute was not explicitly set in the module's
`options` variable, it resolved to `null` in the Terraform configuration.
This caused Terraform to detect a change from `null` to `NONE` on every
plan, leading to unnecessary instance recreation.

This change applies `coalesce` to
`var.options.key_revocation_action_type` in the resource definition so
that it defaults to `NONE` when unset, aligning the configuration with
provider behavior and preventing a permadiff.

* updated the regional compute template too with the key_revocation_action_type

* fixed the formatting
2026-01-05 11:53:47 +01:00
Wiktor Niesiobędzki
d370121245 move c4* tests to c zone 2025-12-07 15:15:44 +01:00
Ludovico Magnocavallo
525b7be739 module KMS autokey context namespace fixes (#3521) 2025-11-11 08:46:21 +00:00
Ludovico Magnocavallo
7e32058010 [WIP] Add support for KMS autokey (#3515)
* wip

* folder module

* project factory schema

* remove spurious project template

* gcs and compute-vm modules

* variable order
2025-11-09 10:46:28 +01:00
Wiktor Niesiobędzki
b3df16fee8 Add support for ARM based VMs 2025-11-07 08:46:11 +01:00
Wiktor Niesiobędzki
6567d63d92 Add support for hyperdisk performance options 2025-11-07 08:46:11 +01:00
Ludovico Magnocavallo
6045cf6ae2 Add support for contexts to compute-vm module (#3406) 2025-10-13 16:54:13 +02:00
Ludovico Magnocavallo
f7e7b2ccf8 Allow setting resource policies in compute-vm module (#3336)
* allow setting resource policies in compute-vm module

* Update modules/compute-vm/resource-policies.tf

Co-authored-by: Wiktor Niesiobędzki <wiktorn@google.com>

* revert splat change

---------

Co-authored-by: Wiktor Niesiobędzki <wiktorn@google.com>
2025-09-18 07:13:47 +00:00
Ludovico Magnocavallo
c1e8f9d70c add support for startup script to compute-vm module (#3313) 2025-09-09 13:49:38 +02:00
Ludovico Magnocavallo
a3f7faf7d4 Fix boot disk source/params in compute vm module (#3292) 2025-09-01 12:45:42 +00:00
kovagoadam
44060453fb Added test for compute-vm module disks template example (#3289)
* Added test for compute-vm module disks template example

* Added licence boilerplate
2025-09-01 14:28:05 +02:00
Ludo
5029e078cd Merge remote-tracking branch 'origin/master' into fast-dev 2025-07-09 09:11:06 +02:00
Javier Roger
2fc3413b97 feat: add support for regional instance templates (#3224) 2025-07-08 17:10:54 +02:00
Liam Nesteroff
f07e4f64e9 Standardise reuse variable from project module and implement for net-vpc (#3205)
* exposing the network_id from the net-vpc module for use with tag bindings

* convert vpc_create to vpc_reuse

* Changed the reuse vars to standardised attributes

* fixed readme tests and schemas

* modified apigee blueprint to use vpc_reuse with network_id passthrough

---------

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2025-07-03 09:12:05 +10:00
apichick
108258746b Added network tier to network interfaces in compute-vm module (#3151) 2025-06-10 23:26:44 +02:00
Ludovico Magnocavallo
b9ea8a6c26 Allow creation of regional templates in compute-vm module (#3114)
* allow creation of regional templates in compute-vm module

* tfdoc

* fix blueprint
2025-05-27 14:18:40 +02:00
Ludovico Magnocavallo
8af9b4c845 Allow creating disks with no name in compute-vm (#3113)
* allow creating disks with no name

* update template example

* tfdoc
2025-05-27 07:19:13 +00:00
Ludovico Magnocavallo
623f2b0113 Enable repd tag bindings in compute-vm module (#3063)
* enable repd tag bindings in compute-vm module

* tfdoc
2025-05-03 11:29:07 +02:00
Ludovico Magnocavallo
dde3c1abf2 Add support for non-destructive tag bindings to compute-vm module (#3004)
* wip

* add support for tag bindings

* tfdoc

* improve example

* tfdoc
2025-04-03 18:20:00 +02:00
Taneli Leppä
e4f3f713bb Update list of GPUs. 2025-03-26 13:51:54 +01:00
Taneli Leppä
ccecc32718 compute-vm: Add graceful shutdown configuration and some missing GPUs. 2025-03-26 13:51:54 +01:00
Wiktor Niesiobędzki
2809570651 Fix E2E tests 2025-02-23 18:19:28 +01:00
Wiktor Niesiobędzki
62f789c249 Add execution/invocation commands to outputs 2025-02-21 17:53:42 +01:00
Wiktor Niesiobędzki
58f22ce647 Add prefix to KMS ring, to allow easy recreate 2025-02-10 00:56:19 +01:00
Wiktor Niesiobędzki
7c5b84f33e Add dependency for compute-vm schedule 2025-02-07 12:02:40 +01:00
Ludovico Magnocavallo
a002ead06b Add support for advanced machine features to compute-vm (#2855)
* add support for advanced machine features to compute-vm

* fix validation

* Update modules/compute-vm/variables.tf

Co-authored-by: Wiktor Niesiobędzki <wiktorn@google.com>

---------

Co-authored-by: Wiktor Niesiobędzki <wiktorn@google.com>
2025-01-31 09:27:29 +00:00
Wiktor Niesiobędzki
10cc3d8079 modules/compute-vm end-to-end tests and fixes 2025-01-16 10:54:52 +01:00
ooshrioo
ef597a30c0 add GPU options to compute-vm module (#2689)
* add GPU options to comute-vm module

* Fixed tf according ludo's comments

* Added GPU type validation  (by specific values)

* fix validation + README

---------

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2024-11-18 16:40:38 +01:00
Usama Shujaat
6db881da34 Add option to attach multiple snapshot schedule to disks (#2639)
* Add changes to link mutiple Snapshot Schedule to a disk/boot disk

* Update Readme and fix for boot snapshot schedule

* Updating for_each expression, fix linting error

---------

Co-authored-by: usamashujaat <155731944+usamashujaat@users.noreply.github.com>
2024-10-28 18:53:43 +01:00
Wiktor Niesiobędzki
44a4268afc Fix E2E tests 2024-09-04 12:16:50 +02:00
luigi-bitonti
815abc0afa Added max_run_duration field to compute_vm modules (#2533)
Co-authored-by: Luigi Bitonti <luigi.bitonti@nttdata.com>
2024-08-28 09:36:45 +00:00
Ludovico Magnocavallo
da68d3cfc4 Add support for PSC network attachments and interfaces in modules (#2125)
* support network attachments in net-vpc module

* support network attachments in net-address module

* fix examples

* fix examples

* add support for psc interfaces to compute-vm module
2024-03-04 10:12:11 +01:00
Luca Prete
fa7664434b Enable sole tenancy (node_affinities) on compute_vm (#1903) 2023-12-05 18:05:23 +01:00
Ludovico Magnocavallo
42fa742528 Add support for firewall tags to compute-vm module (#1895)
* add support for firewall tags to compute-vm module

* add support for firewall tags to compute-vm module
2023-12-01 11:27:37 +00:00
Wiktor Niesiobędzki
fe485414e6 Add end-to-end tests for project module (#1823)
* Add end-to-end tests for project module
* Add inventory to data tests
* Add files to end-to-end test cases
* Review fixes - use named groups

---------

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2023-11-03 18:04:19 +01:00
Luca Prete
feef3909db compute-vm: remove old todo (#1804) 2023-10-24 10:45:53 +00:00
Ludovico Magnocavallo
02ccc576f5 fix resource manager tag bindings in compute-vm module (#1771) 2023-10-18 09:24:00 +00:00
luigi-bitonti
0195ea6bca Exposed stack_type variable in compute_vm module (#1756)
* Exposed stack_type variable in compute_vm module

* Updated README.md

* align instance template, fix variable ordering

---------

Co-authored-by: Ludo <ludomagno@google.com>
2023-10-16 06:28:56 +00:00
Ludovico Magnocavallo
df5daab6cc Allow using no service account in compute-vm (#1692)
* module and tests

* align blueprints

* tfdoc

* remove stale variables

* fix blueprint

* variable description
2023-09-19 16:56:51 +00:00