Commit Graph

59 Commits

Author SHA1 Message Date
Ludovico Magnocavallo
7b43c3e8cf metric scopes context (#3828) 2026-04-01 11:47:38 +00:00
Vannick Trinquier
b686a6f730 Fix org policy service to be enabled before organization policies applied (#3547)
* Fix org policy service to be enabled before organization policies applied
2025-11-21 14:22:17 +07:00
Ludovico Magnocavallo
fc7aa71ada Add support for KMS key creation to project factory (#3518)
* initial implementation

* context

* tfdoc

* add support for autokey to projects

* fix typo
2025-11-11 07:23:50 +01:00
Ludovico Magnocavallo
a4ff84838a Merge remote-tracking branch 'origin/master' into fast-dev 2025-11-05 06:53:32 +00:00
lcaggio
64632eb957 BigQuery reservation (#3441)
* First Commit.

* Improve

* Fix README

* Fix lint

* fix

* Fix Tests.

* Improve output

* fix yaml lint

* Fix

* Fic test

* Fix

* Fix output
2025-11-03 11:36:42 +01:00
Ludovico Magnocavallo
0a2cc758ac Essential contacts in schemas, and email context substitutions (#3495)
* modules

* fast

* duplicate diff

* fix contacts in FAST stage 0 datasets, update contacts in YAML schemas
2025-11-03 08:53:29 +01:00
Ludovico Magnocavallo
07d7a85da1 Lightly refactor service agents locals in project module (#3380)
* lightly refactor project module service agent locals

* remove debug block

* tfdoc

* revert templatestring to format for universe kms

* reinstate moved block
2025-10-05 10:25:04 +00:00
Ludovico Magnocavallo
d1fbed59d2 allow project id with universe prefix in project module (#3376) 2025-10-04 11:57:27 +02:00
Ludovico Magnocavallo
bc6950e205 Rename FAST stages preparing for eventual deprecation (#3298)
* renames

* links

* readme

* docs

* update pf modules tests for renames

* condition_vars context in modules

* data platform dataset

* fix links in stage 3 docs

* schema changes

* schema docs

* tfdoc

* update duplicates check

* fast legacy tests

* legacy schema

* fix tests
2025-09-04 08:24:11 +02:00
Ludovico Magnocavallo
36648b6b63 FAST light implementation (#3255)
* data wip

* wip data

* update org schema, add note on expansion

* all schemas, workload notes

* Update WORKLOG.md

* Update WORKLOG.md

* Update WORKLOG.md

* Update WORKLOG.md

* wip

* data wip

* wip

* wip

* wip

* wip

* org module IAM context (using lookup)

* new-style context expansion in project IAM

* remove spurious file

* project module contexts

* finalize context replacement format for project module

* revert org module changes

* fix tag id interpolation in project

* fix tag id interpolation in project

* organization module context

* organization context test

* context expansion for folder tag bindings

* test context expansion for tag bindings

* service account module context

* simplify context local

* context for iam service account

* nuke blueprints

* remove links to blueprints

* vpc sc context in project module

* Add context to GCS module

* Add inline deps to plan_summary script

* Make context a top-level variable for folder, organization, sa

* Add add context top-level to VPC-SC

* move context out of factories_config variable

* tfdoc

* fix merge

* fix merge

* fix examples

* net-vpc module context

* add parent ids to folder context

* rename folder parent context

* fix folder parent check

* new project factory stub

* wip

* wip

* refactor defaults

* project iam

* bueckts and service accounts

* start adding context replacements

* better test data

* automation resources for folders and projects

* automation

* add support for project id interpolation

* first tested apply

* improve IAM description in gcs module

* add context to billing account module

* add notification channels to billing account module context

* add billing budgets to new pf

* schemas and defaults

* bootstrap wip

* bootstrap wip

* bootstrap wip

* pf outputs

* pf fixes

* fix pf sample data

* bootstrap lite fixes

* add locations to organization module contexts

* bootstrap lite fixes

* org fixes, billing accounts

* fix default project parent

* bootstrap lite wip

* add locations to gcs module context

* add context support to logging bucket module

* add context to pubsub module

* split out iam variables in gcs module

* fix logging bucket context test

* bootstrap log sink destinations

* streamline logging-bucket module variables

* fix logging bucket context test

* align logging bucket module interface in fast bootstrap

* add support for project-level log buckets to project factory

* support full context expansion in organization module log sinks

* log buckets in fast-lite bootstrap

* make og sink type optional in organization module

* log sinks in fast-lite bootstrap

* set tag values in factory context

* bootstrap lite data

* output files schema

* billing account schema

* output files

* output providers

* gcs output files

* boilerplate

* tflint

* check documentation

* check docs

* fix project module parent variable validation

* fix log bucket examples

* allow null parent in project module

* silence folder test errors

* fix billing account sink example

* fix project example

* fix billing account module

* fix folder tests

* fix FAST

* fix fast

* tfvars outputs

* wif

* cicd service accounts

* cicd

* allow defaults in context, minimal org policies

* support gcs managed folders in project factory and bootstrap lite

* support prefix in provider output files

* rename bootstrap stage

* gitignore

* gitignore

* security folder, billing IAM

* wip tfvars

* fix typo

* security IAM

* control tag iam/context via variables in organization module

* split tag creation from tag IAM to avoid circular refs

* port organization module tag changes to project module

* implement new-style context expansion in vpc-sc module

* fix fast vpc-sc tests

* boilerplate

* vpc sc stage

* schemas

* fast-lite compatibility for vpc sc stage

* make log project number optional in vpc-sc stage

* networking

* networking

* networking

* networking

* rename and move new stage under fast

* clone pf tests

* use context replacement for internal notification channels in billing account module

* support service agents in project module iam context replacements

* support service agents in project module iam context replacements

* add support for kms keys to project module context

* experimental pf example test and fixes

* fix schemas

* fix tests

* tfdoc

* tfdoc

* pf config

* experimental pf

* remove redundant dot from gcs managed folder IAM keys

* bootstrap experimental test

* project factory exp stage test

* skip tflint for bootstrap experimental test

* tflint

* fix gcs test

* documentation work

* documentation work

* Update README.md

* tfdoc

* tfdoc

* readme

* tfdoc

* readme

* readme

* readme

* readme

* support universe in pf exp projects

* missing universe service agents

* org policies import, non-admin billing IAM

* todo

* fix test

* custom constraints

* fast classic dataset

* fix test data

* context replacements in billing module log sinks

* fix typo

* add support for billing log sinks

* update docs

* readme

* cicd fix and test

---------

Co-authored-by: Julio Castillo <jccb@google.com>
2025-09-02 08:38:57 +02:00
Ludo
2cb166389f Merge remote-tracking branch 'origin/master' into fast-dev 2025-07-04 08:55:38 +02:00
apichick
272658c778 Fixed bug in project network tier resource, it was not working if the project was not created (#3213) 2025-07-03 12:57:04 +00: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
077d8719dd Added default compute network tier to project module (#3150) 2025-06-10 21:44:38 +00:00
Simone Ruffilli
c6c4cc71d5 Pathexpand all factory data paths (#3033)
* Pathexpand all factory data paths

* fix net monitoring paths

* fix file paths

---------

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2025-04-16 13:28:10 +02:00
Ludovico Magnocavallo
1a4b298cc9 Project factory additions, project module reuse implementation (#2899)
* add support for buckets

* add project-level interpolation for own SAs

* docs

* project reuse changes

* fix example

* tfdoc

* update check documentation tool

* fast tests

* blueprints

* typo
2025-02-15 20:37:45 +01:00
Julio Castillo
c73035f4e5 Allow universe-bound projects to exclude services (#2852)
* Allow universe-bound projects to exclude services

* Update README
2025-01-30 08:48:58 +01:00
Julio Castillo
29e7669385 Support project creation in different universes (#2848)
* Support project creation in different universes

* Fix typo

* Revert prefix validation

* Add test

* Call new test

* Do not override project name
2025-01-29 12:40:41 +01:00
Joshua Wright
325a997d79 Add Alerts, Logging, Channels Factories (#2758)
* WIP: Logging Alerts Factory

* Implement Logging Alerts on Remaining Modules

* Documentation & FMT

* Convert To Multiple Factories

* Correct Project

* Update Documentation

* Update modules/project/alerts-factory.tf

Co-authored-by: Julio Castillo <jccb@google.com>

* Update fast/stages/0-bootstrap/data/logging-metrics/compliance.yaml

Co-authored-by: Julio Castillo <jccb@google.com>

* Update Tests, Resources

* tests

* Fix Tests

* Fix formatting

* Reformat metric filters

* Formatting, reordering, and small fixes

* Bring back alerts and metrics documentation

* Revert change bootstrap outputs.tf

* Fix project notification channel vars and factories

* Fix vars and factory for logging alerts

* Complete alert variable and factory

* Reorder fields

* Update readme

* Reorder variables

* Add schemas, update README, and fix some types

* Remove default alerts email from project and project-factory

* Move observability factory to a single file

* Add outputs to project module

* Add factories_config to PF data_defaults and data_overrides

* Reorder PF field processing

* Revert fast/ to master.

We'll do observability stuff in a separate PR

* Remove observability from FAST

* Remove new FAST tests

* Remove unused local

* Fix tests

---------

Co-authored-by: Julio Castillo <jccb@google.com>
Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2025-01-05 19:49:20 +00:00
Julio Castillo
0420dec32f Add deletion_policy to project module (#2502)
* Replace skip_delete with deletion_policy

* Fix blueprints

* Update apigee blueprint readme

* Remove skip_delete from test inventories
2024-08-16 18:33:39 +02:00
Julio Castillo
3af7e257d2 Add tflint to pipelines (#2220)
* Fix terraform_deprecated_index

https://github.com/terraform-linters/tflint-ruleset-terraform/blob/v0.5.0/docs/rules/terraform_deprecated_index.md

* Fix terraform_deprecated_interpolation

Reference: https://github.com/terraform-linters/tflint-ruleset-terraform/blob/v0.5.0/docs/rules/terraform_deprecated_interpolation.md

* Fix more indexing

* Remove unused variable

* Enable TFLint for modules

* Add tflint config file

* Fix chdir

* Lint modules

* TFLint fixes

* TFLint

* Fixes binauthz README

* Fixes DNS response policy tests. Restores MIG outputs.

* Fixes other DNS response policy tests.

* Update tests for fast 2-e

* Moar fixed tests

---------

Co-authored-by: Simone Ruffilli <sruffilli@google.com>
2024-04-17 10:23:48 +02:00
Ludovico Magnocavallo
6d9b6403dd add support for essential contacts to FAST (#2010) 2024-01-25 12:20:14 +01:00
Ludovico Magnocavallo
c5416f3af1 Tighten up security of automation project (CSPR-related) (#2009)
* enforce compute/iam policies on the automation project

* tests
2024-01-24 18:40:36 +00:00
Ludovico Magnocavallo
819894d2ba IAM interface refactor (#1595)
* IAM modules refactor proposal

* policy

* subheading

* Update 20230816-iam-refactor.md

* log Julio's +1

* data-catalog-policy-tag

* dataproc

* dataproc

* folder

* folder

* folder

* folder

* project

* better filtering in test examples

* project

* folder

* folder

* organization

* fix variable descriptions

* kms

* net-vpc

* dataplex-datascan

* modules/iam-service-account

* modules/source-repository/

* blueprints/cloud-operations/vm-migration/

* blueprints/third-party-solutions/wordpress

* dataplex-datascan

* blueprints/cloud-operations/workload-identity-federation

* blueprints/data-solutions/cloudsql-multiregion/

* blueprints/data-solutions/composer-2

* Update 20230816-iam-refactor.md

* Update 20230816-iam-refactor.md

* capture discussion in architectural doc

* update variable names and refactor proposal

* project

* blueprints first round

* folder

* organization

* data-catalog-policy-tag

* re-enable folder inventory

* project module style fix

* dataproc

* source-repository

* source-repository tests

* dataplex-datascan

* dataplex-datascan tests

* net-vpc

* net-vpc test examples

* iam-service-account

* iam-service-account test examples

* kms

* boilerplate

* tfdoc

* fix module tests

* more blueprint fixes

* fix typo in data blueprints

* incomplete refactor of data platform foundations

* tfdoc

* data platform foundation

* refactor data platform foundation iam locals

* remove redundant example test

* shielded folder fix

* fix typo

* project factory

* project factory outputs

* tfdoc

* test workflow: less verbose tests, fix tf version

* re-enable -vv, shorter traceback, fix action version

* ignore github extension warning, re-enable action version

* fast bootstrap IAM, untested

* bootstrap stage IAM fixes

* stage 0 tests

* fast stage 1

* tenant stage 1

* minor changes to fast stage 0 and 1

* fast security stage

* fast mt stage 0

* fast mt stage 0

* fast pf
2023-08-20 09:44:20 +02:00
Julio Castillo
e2abd772f2 Update resman modules (#475)
* Make logging sinks in different resources use the same API

* Split resman modules in multiple files. Add nullables where applicable
2022-01-29 19:35:33 +01:00
Ludovico Magnocavallo
9a533180a0 Refactor project module, support per-file tags in tfdoc (#450)
* add support for in-doc tfdoc options overrides

* clean up project module

* add file description tags

* only output module and resource columns in tfdoc file table if they exist

* update fast READMEs

* fix check docs
2022-01-22 11:34:18 +01:00
lcaggio
a97c606253 Support service dependencies for crypto key bindings in project module (#443)
* Support services that require crypto/decrypt role on robot service accounts

* delete test and upload refactored implementation

* fix duplicate key on dependent services, add tests

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2022-01-22 08:32:13 +01:00
Roberto Jung Drebes
b99e33ce5b fix recreation of resources that depend on project_id on pre-existing projects when data source refresh is triggered 2022-01-21 17:16:20 +00:00
Simone Ruffilli
ee25965c89 Copyright bump (#410) 2022-01-01 15:52:31 +01:00
Julio Castillo
0c21fecff8 Add metric scopes support (#397)
* Add metric scopes support

* Fix typo

* new tfdoc block in README

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2021-12-21 09:22:10 +01:00
Ludovico Magnocavallo
357f6d5939 depend log sinks from IAM roles, fixes #371 2021-12-01 12:08:04 +01:00
Christopher Avila
e42383eab9 update var to skip_delete per feedback 2021-11-01 11:33:24 -05:00
Christopher Avila
88c6af3dbb Add a project_skip_delete variable to optionally let the project stick around after the resources are destroyed. 2021-11-01 10:59:27 -05:00
Julio Castillo
cb7c65135e Update CI processes (#296)
- Upgrade to latest terraform version (1.0.4)
- Remove tflint from linting pipeline (was not doing anything)
- Add terraform fmt check to linting pipeline
- Pass all code through terraform fmt
2021-08-12 17:30:53 +02:00
Ludovico Magnocavallo
83e469b07f Update main.tf 2021-07-28 18:47:53 +02:00
sly92
804ce9bdc4 Add new variable for flexibility between project id & name (#287)
* add new variable for flexibility between project id & name

* remove random feature & use new variable

* remove project_id variable & use local descriptive name variable

* fix bad project_id output & avoid confusing name

* update readme

* Update main.tf

Co-authored-by: slaheddine_bejaoui.ext <slaheddine_bejaoui.ext@orange.com>
Co-authored-by: Ludovico Magnocavallo <ludo@qix.it>
2021-07-28 18:08:51 +02:00
lcaggio
3d84897b4b Create pubsub service identity if service is enabled (#270)
* Create  service identity if service is enabled

* remove dry run mode

* fix tests

* Improve for_each logic
2021-06-25 09:26:33 +02:00
Lorenzo Caggioni
d03773df46 Fix dependencies
Fix role
2021-06-15 00:54:59 +02:00
Lorenzo Caggioni
dc01db0426 Update Readme and rename variable 2021-06-11 17:38:27 +02:00
Lorenzo Caggioni
476d2c79e9 Add IAM cryptDecrypt role to robo service account on specified keys 2021-06-11 16:00:20 +02:00
Ludovico Magnocavallo
f8413cc98e Add support for group-based IAM to resource management modules (#229)
* group_iam support for organization

* group_iam support for folder

* fix typo in variable description

* add group_iam to project module

* update project module README
2021-04-11 14:48:16 +02:00
Julio Castillo
94b1a439ee Fix IAM bindings for logging sinks
- Move to non-authoritative bindings to allow multiple sinks to write to
  the same destination
- Allow automatically adding logging bucket IAM bindings
2021-03-31 09:59:28 +02:00
lcaggio
2916f4e078 Project Module: add VPC-SC support (#212)
* Add VPC-SC support for Regions, device policy and access policy dependency.

* fix compute mig module test

* Fixes

* Fix example

* Add VPC-SC support in the project module.

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2021-03-19 20:12:29 +01:00
Julio Castillo
ad68fc4dfa Support for cloud logging buckets 2021-03-03 14:23:59 +01:00
Julio Castillo
2d9d81e061 Add support for essential contacts 2021-02-24 18:34:17 +01:00
Julio Castillo
1e11c670f5 Update copyright to 2021 2021-02-15 09:38:10 +01:00
Julio Castillo
1af70c748c Rename "grant" to "iam" in sink variables 2020-12-05 12:39:06 +01:00
Julio Castillo
2c0f949f07 Logging sinks and exclusions (#178)
* Add sink support to folder module

* Make folder creation optional.

* Add logging sinks to the organization module

* Add logging sink support to project module

* Update readme
2020-12-05 08:31:35 +01:00
Ludovico Magnocavallo
6610b79b6c Revert iam_additive behaviour (#160)
* revert iam_additive format, add iam_additive_members

* revert iam_additive format, add iam_additive_members

* update CHANGELOG
2020-11-09 11:29:08 +01:00
Ludovico Magnocavallo
d47478a466 rename iam members variable in project module 2020-11-04 16:22:00 +01:00