56 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
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
68f2f29144 fix(compute-vm): add position attribute to attached_disks to control ordering (#3848) 2026-04-09 21:34:15 +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
Wiktor Niesiobędzki
36b58781ed Use e2-micro instead of f1-micro as default 2026-03-17 14:46:52 +01: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
2687dd2b97 make a test self-link look like a self-link and fix tests 2025-12-19 11:05:25 +01:00
Wiktor Niesiobędzki
d370121245 move c4* tests to c zone 2025-12-07 15:15:44 +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
Wiktor Niesiobędzki
f7c9a341b0 yamlint tests/ 2025-10-24 13:11:17 +02:00
Ludovico Magnocavallo
6045cf6ae2 Add support for contexts to compute-vm module (#3406) 2025-10-13 16:54:13 +02: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
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
Wiktor Niesiobędzki
2809570651 Fix E2E tests 2025-02-23 18:19:28 +01:00
Wiktor Niesiobędzki
10cc3d8079 modules/compute-vm end-to-end tests and fixes 2025-01-16 10:54:52 +01:00
Wiktor Niesiobędzki
44a4268afc Fix E2E tests 2024-09-04 12:16:50 +02:00
Luca Prete
fa7664434b Enable sole tenancy (node_affinities) on compute_vm (#1903) 2023-12-05 18:05:23 +01:00
Ludovico Magnocavallo
02ccc576f5 fix resource manager tag bindings in compute-vm module (#1771) 2023-10-18 09:24:00 +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
Ludovico Magnocavallo
96c28e605b fix repd disk attachment in compute-vm module (#1688) 2023-09-18 13:02:28 +00:00
Julio Castillo
24e591f85a Fix tests using provider 4.80 2023-09-05 11:28:12 +02:00
Ludovico Magnocavallo
d9f7cef1e7 allow using a separate resource for boot disk (#1496) 2023-07-07 15:40:13 +00:00
Ludovico Magnocavallo
ce647647cc Add support for resource policies to compute vm module (#1467)
* instance schedule

* snapshot resource policy variable and resource

* tfdoc

* snapshot schedules
2023-06-26 06:49:05 +00:00
Ludovico Magnocavallo
865ef463bb Support new fields in bigquery module, bump provider versions, unpin local provider (#1306)
* add support for new attributes to bigquery module

* bump provider versions
2023-04-05 14:22:52 +00:00
Ludovico Magnocavallo
112d9a8d9c Allow using existing boot disk in compute-vm module (#1241)
* allow using existing boot disk in compute-vm module

* allow setting initialize params to null

* tests

* fast

* blueprints
2023-03-12 10:53:59 +01:00
Dan Farmer
52eb83758f Fix compute-vm:CloudKMS test for provider>=4.54.0
* TF provider >= 4.54.0 now returns `rsa_encrypted_key` for
  `google_compute_disk.disks["attached-disk"]` (see
  hashicorp/terraform-provider-google#4448)
* Add this field to expected model to fix test assertion failure
* Update required TF provider to 4.55.0 (latest) since the assertion
  will now fail with <4.54.0, which do not return `rsa_encrypted_key`
  * Updated the whole repo on advice from @ludoo
2023-02-28 15:10:22 +00:00
Julio Castillo
bb565b72f1 Add Disk examples 2023-02-07 15:59:29 +01:00
Julio Castillo
1784dd8cad Remove unneeded __init__.py 2023-02-07 15:59:29 +01:00
Julio Castillo
04602353ce New compute-vm examples and tests 2023-02-07 15:59:29 +01:00
Giovanni Baratta
ca1dc3659a Add auto_delete and instance_redistribution_type to compute-vm and compute-mig modules. (#890)
* Add auto_delete parameter to compute-vm module

* Add instance_redistribution_type in compute-mig module
2022-10-16 21:19:46 +02:00
Ludovico Magnocavallo
e66340c4db Refactor compute-vm for Terraform 1.3 (#860)
* refactor compute-vm for Terraform 1.3

* bump Terraform version in CI tests config

* fix optional null handling (ht jccb)

* tfdoc

* update blueprints

* align fast

* align README examples
2022-10-07 10:53:53 +02:00
Julio Castillo
f0773d4883 Simplify tests by figuring out fixture dir automatically
We always use the same directory for terraform fixtures, so it's quite
easy to figure out its path from a pytest fixture by inspecting the
stack. This commit implements this functionality and decreases the
amount of boilerplate needed to write a test.

(Ported from fast)
2022-01-11 11:54:13 +01:00
Simone Ruffilli
ee25965c89 Copyright bump (#410) 2022-01-01 15:52:31 +01:00
Andras Gyomrey
d2ef4c3277 Allow using gVNIC in compute-vm (#211) 2021-11-08 11:18:15 +00:00
Ludovico Magnocavallo
262f823464 Refactor compute-vm to remove multiple instance support (#314)
* first iteration, largely untested

* basic tests pass

* basic tests pass

* nic test

* disk tests, refactor

* fix tests

* update README

* update gcs to bq example

* fix README examples, do not create disks for template

* fix data solutions examples

* update cloud operations examples

* update networking examples, mig and ilb modules examples

* update default image to debian 11

* update README table
2021-10-04 10:46:44 +02:00
Ludovico Magnocavallo
3597769e8e Support one group per zone in compute-vm (#218)
* support multiple groups per zone in compute-vm

* fix ilb as next hop example
2021-04-01 08:27:38 +02:00
Ludovico Magnocavallo
5149795bec Allow using a non-suffixed name in compute-vm (#217)
* allow using a non-suffixed name in compute-vm

* update README
2021-03-31 20:01:10 +02:00
Julio Castillo
1e11c670f5 Update copyright to 2021 2021-02-15 09:38:10 +01:00
Ludovico Magnocavallo
7aaf24afd3 Add support for confidential compute to compute-vm module (#179)
* add support for confidential compute

* add support for confidential compute to instance template
2020-12-05 09:14:12 +01:00
Ludovico Magnocavallo
44f1828c33 rename iam variable in compute vm module 2020-11-05 09:10:49 +01:00
Julio Castillo
b13a10efe5 Remove iam_roles from compute-vm module 2020-10-30 00:18:10 +01:00
Julio Castillo
973972e5b9 Fix compute-vm tests 2020-10-12 12:36:12 +02:00
Julio Castillo
5ae489f50d Add alias IP support in compute-vm (#127)
* Add alias IP support in `compute-vm`

* Fix tests

* add end to end tests for data solutions examples and fix example errors

* update changelog

* add missing boilerplate

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2020-08-29 10:12:30 +02:00