Commit Graph

76 Commits

Author SHA1 Message Date
Julio Castillo
ee8b7396b7 Enable merge queue and remove fast-dev branch from CI (#4002) 2026-05-30 16:51:18 +02:00
Ludovico Magnocavallo
81f72e8068 Add FAST Prerequisites Skill and Gemini Skill Test Harness (#3979)
* initial version of a FAST pre-install skill

* first round of testing

* Update fast-0-org-setup-prereqs skill with improved UX and local path handling

- Add explicit lockout warning and stop condition if the user is not a member of the provided Admin Principal group.
- Streamline bootstrap project selection to only prompt for an override if the active gcloud project is rejected.
- Restrict dataset discovery strictly to the `fast/stages/0-org-setup/datasets/` directory.
- Improve location handling by referencing `defaults.schema.json` for Standard GCP and auto-configuring fixed regions for GCD.
- Add comprehensive `local_path` management: prompt for customization, create directories, move `defaults.yaml` to the local data folder, and symlink `0-org-setup.auto.tfvars` back to the stage directory.

* add testing scenarios, implement initial changes for scenario 2

* move skills

* move to a skills/fast subfolder

* Refactor fast-0-org-setup prereqs skill

* Add skill-turn-harness utility tool

* Use relative markdown links for skill references

* Use descriptive titles for markdown links in skill references

* Add descriptions to each phase in the prerequisites workflow map

* Use backslash for markdown line breaks in skill map

* Update README security warning to mention default .gitignore

* shebang

* Update fast prereqs skill rules to force sequential question flow and refine harness tool with proper ctrl+c handling and slugified log paths

* Move playbook-gcp-dev.yaml to fast/prerequisites/gcp-dev.yaml and update fast prerequisites

* docs(skill-turn-harness): detail autonomous pond testing approach

* docs(skill-turn-harness): add final_state_checks to pond architecture and update toc

* Refine fast prereqs SKILL and gcp-dev playbook to strictly align with one-question-at-a-time rule

* feat(skill-turn-harness): update playbook schema for autonomous persona mode

* feat(skill-turn-harness): implement autonomous persona testing mode and fallback logic

* docs(skill-turn-harness): document the three modes of testing and update ToC

* implement timeout, schema validation, configurable cli

* chore: remove accidentally committed log files

* chore: ignore logs directory

* feat(skill-harness): implement tool execution interception, configurable workspace, and modularized validation

* feat(skill-harness): add model configuration and update README

* fix(skill-harness): automatically inject -y flag to gemini commands

* docs(skill-harness): add TODO.md with analysis for skill environment dependencies

* feat(skill-harness): add working_dir support and clean up fixtures

- Implement working_dir in harness to run tests in specific directories.
- Rename test fixtures and playbooks to be more descriptive.
- Add E2E test for working_dir.
- Apply code quality improvements to harness.py (imports, linting).
- Update README with working directory considerations and usage notes.
- Update phase3-bootstrap-and-iam.md skill doc to add execution rule against creating temp scripts.

* fix: capture customer_id and respect relative paths

* Implement isolated temp workspace sandboxing with symlinks in test harness

* Configure GCD manual autonomous playbook and align Phase 3/4 steps order

* Fix linting and schema tests failures

- Add missing license headers to tools/skill-turn-harness files.

- Fix trailing spaces and newlines in playbooks.

- Ignore tools directory in schema tests workflow.

TAG=agy

CONV=1bb75453-c3e2-448b-bae9-8e332a068012

* Fix Python formatting with yapf

TAG=agy

CONV=1bb75453-c3e2-448b-bae9-8e332a068012

* Refactor skill-turn-harness to use Antigravity SDK

- Migrated harness from gemini-cli subprocesses to Antigravity SDK.
- Implemented real-time step streaming and console logging.
- Added color-coded terminal output (dark gray headers, blue inputs, pink outputs).
- Collapsed excessive newlines in streamed thoughts.
- Excluded harness codebase from workspace copy to prevent agent cheating.
- Enabled skills folder copy to resolve agent lookup loops.
- Added key validation and CLI --debug flag.

* Fix autonomous turn layout: print Turn ID before execution

- Moved the [Autonomous Turn X] header print to before running the agent turn.
- This groups the real-time thinking and tool calls under the correct Turn ID block, instead of displaying them before the label.

* Remove obsolete .log.md from prerequisites skill directory
2026-05-22 17:16:54 +00:00
Arpit Jain
748684dd9c ci: declare contents: read on linting and tests workflows (#3960)
linting runs prettier / yamllint / boilerplate checks.
tests runs terraform/tofu plan + unit tests with matrix providers.
Both are pure read - no commits, releases, or comments.

Signed-off-by: Arpit Jain <arpitjain099@gmail.com>
2026-05-14 08:12:55 +02:00
Julio Castillo
74d5cd633a Bump minimum OpenTofu version to 1.11.00 (#3918) 2026-04-27 19:12:01 +02:00
Wiktor Niesiobędzki
4f6e356e7f Fix issue in variable substitution 2026-02-18 18:49:30 +01:00
Ben Knutson
490d49bd3a Refactor Github Action per b/485167538 2026-02-18 18:49:30 +01:00
Wiktor Niesiobędzki
fca6b09728 Do not cancel terraform tests on tofu failure (#3538) 2025-11-18 14:10:22 +01:00
Wiktor Niesiobędzki
2c878aa90e .github linting 2025-10-24 13:11:17 +02:00
Wiktor Niesiobędzki
23dd44ce62 remove tf version from matrix, to keep workflow names stable across upgrades 2025-10-13 17:40:51 +02:00
Julio Castillo
9b9ad76ced Update gke-hub module to use new Policy Controller API (#3332)
* Update gke-hub to use new Policy Controller API

Fixes #3287

* Use same config format for servicemesh

* remove useless trys

* use ternaries as in the rest of the repo

* Update docs and fix tests

* Update variables

* Bump tofu version

* Bump terraform version 1.12
2025-10-13 09:47:39 +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
Julio Castillo
7e20abc19d Update default FAST org policies (#3207) 2025-07-02 13:53:58 +00:00
Julio Castillo
271942f2ed Bump Terraform to 1.11 (#3120)
* Bump Terraform version to 1.11

* Update workflows
2025-05-29 11:11:39 +02:00
simonebruzzechesse
b0021cc0f1 New SecOps anonymization pipeline (#2794)
* new secops anonymization pipeline

Co-authored-by: Ludovico Magnocavallo <ludomagno@google.com>
2025-02-17 19:23:19 +01:00
Julio Castillo
8a2320311d Add bucket_create to modules/gcs (#2827)
* Add `bucket_create` to `modules/gcs`

* Create local with bucket name

* Update variable description

* Fix bucket output

* Fix tests

* Fix tests

* Bump OpenTofu to 1.9.0 (needed for multi-var validations)
2025-01-21 23:48:36 +01:00
Wiktor Niesiobędzki
6d51c8da4d Use separate versions.tofu for OpenTofu constraints 2024-12-17 12:29:04 +01:00
Ludovico Magnocavallo
0fa257e6b1 Support customizable resource names in FAST stage 0 (#2768)
* support customizable resource names in FAST stage 0

* tfdoc

* tflint

* remove comment

* use object type

* tfdoc

* bump tf version

* bump terraform version in versions files

* tf version in ci

* trigger workflow
2024-12-16 17:46:34 +01:00
Julio Castillo
71f72761af Run test and linting when pushing to master or fast-dev (#2730)
Maintainers occasionally force push to these branches. This will allow
tests to run without the need for a dummy PR
2024-11-22 19:21:38 +00:00
Ludovico Magnocavallo
abde265998 extend tests to fast-dev (#2646) 2024-10-30 10:39:36 +00:00
Wiktor Niesiobędzki
51ef390d04 Upload hidden files 2024-09-03 17:18:21 +02:00
Julio Castillo
bab85c88ba Bump provider to last release of version 5 (#2525)
* Bump provider to last release of version 5

* Remove default-versions copy in test env setup

* Use file instead of symlink in tools/lookfile

* Remove default-version reference

* Removed unused code
2024-08-27 16:50:59 +02:00
Julio Castillo
6c42ac00ab rename step 2024-08-09 15:43:11 +02:00
Julio Castillo
73fd175070 fix yaml again 2024-08-09 15:43:11 +02:00
Julio Castillo
9903c20ed9 Fix yaml 2024-08-09 15:43:11 +02:00
Julio Castillo
bb1dc40f77 Fix yaml syntax 2024-08-09 15:43:11 +02:00
Julio Castillo
714b97598f Add schema testing to PR workflow 2024-08-09 15:43:11 +02:00
Wiktor Niesiobędzki
afa6e7425c Test different versions of Terraform (#2399)
Add capability to run tests using terraform version 1.5.7 and OpenTofu. 

Automatic checks are run with  Terraform 1.7.4 and OpenTofu 1.7.2, it should be possible to override terraform version when Tests workflow is run manually.
2024-07-05 13:21:41 +02:00
Wiktor Niesiobędzki
7ec6c686a8 Add test reports to checks 2024-03-11 10:54:34 +01:00
Julio Castillo
ff90b736ca Update actions to latest versions (#2144) 2024-03-11 09:31:16 +01:00
Ludovico Magnocavallo
6941313c7d Factories refactor (#1843)
* factories refactor doc

* Adds file schema and filesystem organization

* Update 20231106-factories.md

* move factories out of blueprints and create new factories  README

* align factory in billing-account module

* align factory in dataplex-datascan module

* align factory in billing-account module

* align factory in net-firewall-policy module

* align factory in dns-response-policy module

* align factory in net-vpc-firewall module

* align factory in net-vpc module

* align factory variable names in FAST

* remove decentralized firewall blueprint

* bump terraform version

* bump module versions

* update top-level READMEs

* move project factory to modules

* fix variable names and tests

* tfdoc

* remove changelog link

* add project factory to top-level README

* fix cludrun eventarc diff

* fix README

* fix cludrun eventarc diff

---------

Co-authored-by: Simone Ruffilli <sruffilli@google.com>
2024-02-26 10:16:52 +00:00
Wiktor Niesiobędzki
2c9eb5795b Bum terraform to version 1.7.0 2024-02-07 17:25:11 +01: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
Ludovico Magnocavallo
d9f7cef1e7 allow using a separate resource for boot disk (#1496) 2023-07-07 15:40:13 +00:00
Julio Castillo
f4b8a61981 Clean workflow files 2023-04-25 15:28:34 +02:00
Julio Castillo
ee4a908b10 Remove last remaining legacy fixture 2023-04-25 15:12:32 +02:00
Julio Castillo
78867b0f99 Merge actions 2023-04-25 15:12:32 +02:00
Julio Castillo
a09959539c Use tftest copy env var 2023-04-25 15:12:32 +02:00
Julio Castillo
cc73c30c08 Pin provider versions in cache 2023-04-25 15:12:32 +02:00
Julio Castillo
3cd3106695 troubleshoot 2023-04-25 15:12:32 +02:00
Julio Castillo
7dd30f104f Reorder cache file 2023-04-25 15:12:11 +02:00
Julio Castillo
89fe36b4f4 print lockfiles 2023-04-25 15:12:11 +02:00
Julio Castillo
1b4e8eb305 Copy default versions to lockfile directory before tf init 2023-04-25 15:12:11 +02:00
Julio Castillo
20ccf7416f Enable parallel tests 2023-04-25 15:12:11 +02:00
Julio Castillo
b097d297ff Extend tests to use lockfile if available
This commints allows the test framework to use a lockfile generated
within the tools/lockfile directory. This allows reusing the provider
cache and also running tests in parallel.
2023-04-25 15:12:11 +02:00
Ludovico Magnocavallo
40cda39093 bump Terraform version (#1307) 2023-04-05 09:15:23 +02:00
Julio Castillo
744863b9a3 Simplify testing workflow 2023-03-09 16:04:01 +01:00
Ludovico Magnocavallo
ef28e208d3 Use composite action for test workflow prerequisite steps (#1216)
* test composite action

* add shell in action steps

* home input

* boilerplate

* static home

* use action in all test steps

* fix step name
2023-03-06 11:44:57 +01:00
Ludovico Magnocavallo
563ef270af Try plugin cache, split examples tests (#1215)
* try plugin cache, split examples tests

* fix mkdir

* use cache
2023-03-06 10:38:39 +01:00
Julio Castillo
59ed5d1915 Bump actions versions 2023-02-25 13:08:30 +01:00
Ludovico Magnocavallo
cb87f3efa5 Document new testing approach (#1048)
* document new testing approach

* remove unused workflow branches

* remove stale folder

* fix link

* document new testing approach

* remove unused workflow branches

* fix link

* Extend tests details in contributing guide

* Typos

Co-authored-by: Julio Castillo <jccb@google.com>
2022-12-12 19:59:46 +00:00