Breaking Changes
modules/cloud-function-v1:function_config.runtimenow defaults topython312instead of EOLpython310. [#4368]- Minimum supported
google/google-betaprovider version is now 8.10.0. [#4364] modules/cloud-function-v2:function_config.runtimenow defaults topython313instead of EOLpython310. [#4360]modules/net-cloud-armor:project_idis replaced byparent_id = { project_id = ... }. [#4286]modules/geap-agent-gateway:domain:andallAuthenticatedUsersprincipals inaccess_policiesrules are no longer converted to IAM v3 URIs, as the former produced an invalidprincipalSet://goog/cloudIdentityCustomerId/identifier and the latter has no IAM v3 equivalent (it was mapped toprincipalSet://goog/public:all, which also covers unauthenticated callers). Replacedomain:withprincipalSet://goog/cloudIdentityCustomerId/CUSTOMER_IDand removeallAuthenticatedUsers. [#4333]modules/secret-manager:versions.*.datais now an object withvalue,pathandwo_version;data_confighas been removed andis_base64moved toversions.*.is_base64. [#4329]modules/organization:client_secretinworkforce_identity_poolsproviders (identity_provider.oidc,oauth2_client_config.extra_attributes,oauth2_client_config.extended_attributes) is now an object withvalue,pathandwo_version; the FAST0-org-setuporganization schema follows. [#4329]fast/project-templates/data-mongodb:database_users.*.passwordis now an object withvalue,pathandwo_version;password_woandpassword_wo_versionhave been removed. [#4329]modules/net-cloudnat:config_port_allocation.enable_dynamic_port_allocationnow defaults totruewhentype = "PRIVATE"(matching the Compute Engine API default). ExistingPRIVATENAT configurations that only setenable_endpoint_independent_mapping = falseand want to keep static port allocation must explicitly setenable_dynamic_port_allocation = false. [#4325]fast/stages/2-security:ca_poolsinoutputs.tfand2-security.auto.tfvars.jsonis now a flatmap(string)of pool IDs (pool => pool_id) instead of a map of objects ({ id, ca_ids, location }), accompanied by flatca_idsandca_chainsmaps ("${pool}-${ca}" => value). Subordinate CA pools now use themodule.cas-subordinateaddress. [#4306]fast/addons/2-networking-ngfwandfast/addons/2-networking-swp:certificate_authority_poolshas been replaced by flatca_poolsandca_idsmap(string)variables, andcertificate_authorities/certificate_authorityhave been aligned withmodules/certificate-authority-service(is_self_signedreplacingtype,enterprise_tierandpublishing_optionsreplacingtierinca_pool_config.create_pool). Subordinate CA pools in2-networking-ngfwnow use themodule.cas-subordinateaddress. [#4306]fast/stages/0-org-setup: thehardeneddataset now enforces additional organization policies and custom constraints by default (ainotebooks.disableTerminal,ainotebooks.requireAutoUpgradeSchedule,compute.disableSshInBrowser,compute.requireOsConfig,firestore.managed.disableEnhancedTextSearch,pubsub.managed.disableSubscriptionMessageTransforms,pubsub.managed.disableTopicMessageTransforms,run.managed.disableEphemeralDisk,run.managed.disableJobsEphemeralDisk,run.managed.disableWorkerPoolsEphemeralDisk,custom.apikeysRequireApiTargetRestrictions,custom.cloudsqlDisablePostgreSQLLogHostnameFlag,custom.cloudsqlDisablePostgreSQLLogParserStatsFlag,custom.cloudsqlDisablePostgreSQLLogPlannerStatsFlag,custom.cloudsqlDisablePostgreSQLLogStatementStatsFlag,custom.cloudsqlRequirePostgreSQLLogDurationFlag,custom.cloudsqlRequirePostgreSQLLogTempFilesFlag,custom.discoveryengineDisableNonGcpDataStores,custom.gkeRequireSecurityPosture,custom.storageRequireRetentionOrSoftDelete,custom.vertexaiRuntimeTemplateDisableInternetAccess,custom.vertexaiRuntimeTemplateRequireIdleShutdown,custom.vertexaiRuntimeTemplateRequireSecureBoot,custom.vertexaiWorkbenchDisableDefaultServiceAccount,custom.vertexaiWorkbenchRequireAutoUpgrade,custom.vertexaiWorkbenchRequireDeleteToTrash,custom.vertexaiWorkbenchRequireIntegrityMonitoring,custom.vertexaiWorkbenchRequireSecureBoot, andcustom.vertexaiWorkbenchRequireVtpm), and defines 15 additional custom constraints and 20 organization policies as commented-out opt-in examples acrossorganization/org-policies/*.yaml. [#4302]fast/stages/0-org-setup: thehardeneddataset now enforcesainotebooks.accessMode(service-account),custom.cloudkmsAllowedPurpose,custom.dataprocAllowedImageVersions, and fivecustom.alloydb*constraints by default, and defines four additional opt-incustom.storage*constraints. [#4292]modules/vpc-sc:vpc_accessible_services.allow_all_restricted_servicesnow defaults totrue, automatically including"RESTRICTED-SERVICES"inallowed_servicesunless explicitly set tofalse. [#4273]
What's Changed
- Add backup restore plans, channels, context, agent sandbox and OpenTelemetry to GKE modules by @ludoo in #4260
- Add service pattern support to vpc-sc accessible services by @ludoo in #4273
- Quote cloud-init octal permissions and harden cloud-config-container modules by @aghassemlouei in #4271
- Add lien_reason, log_scopes, and logging_exclusions to project factory schema by @ludoo in #4274
- Add AI and agent services to FAST VPC-SC restricted services by @zhhuta in #4275
- Fix documentation checker, tftest formatter, and tfdoc parser bugs by @aghassemlouei in #4279
- Add distinct instance outputs in modules/alloydb by @btuckVZ in #4281
- Fix shebang in fast/stages/fast-links.sh for macOS compatibility by @LucaPrete in #4283
- Update output_files and default perimeter examples in 1-vpcsc README by @LucaPrete in #4284
- Update factories_config and delegations documentation in 2-networking README by @LucaPrete in #4285
- Add missing dependencies on Workload Identity Pool in project module by @ludoo in #4289
- Add security_profile_groups context to net-firewall-policy and FAST 2-networking by @ludoo in #4291
- Add AlloyDB, Cloud KMS, Dataproc, Cloud Storage, and Vertex AI controls to FAST hardened dataset by @estebanbouza in #4292
- Fix cloudsql-instance PSC write endpoint DNS and compute-vm storage pool E2E tests by @LucaPrete in #4296
- Wire URL map header actions, CORS list types, and target HTTP proxy attributes in ALB modules by @aghassemlouei in #4287
- Apply instance labels to the inline boot disk in compute-vm by @mkawalek in #4290
- Add Service Directory registration support for global PSC endpoints by @dibaskar-google in #4293
- Add CMEK support to
modules/ai-applicationsby @zhhuta in #4294 - Add CAS context interpolations and align FAST NGFW/SWP add-ons by @ludoo in #4303
- Add compliance org policies and custom constraints to FAST hardened dataset by @estebanbouza in #4302
- Support Subordinate CA hierarchy in FAST 2-security and NGFW/SWP add-ons by @ludoo in #4306
- Add
disable_l4_lb_firewall_reconciliationsupport to GKE cluster modules by @jmgreger in #4301 - Add service connection policies to
modules/net-vpc-factoryby @threddast in #4305 - Fix empty URL filtering profile condition in FAST NGFW add-on by @ludoo in #4308
- Add Vertex AI and Gemini Enterprise controls to FAST hardened dataset by @zhhuta in #4288
- Add Gemini Code Assist and other AI services to FAST VPC-SC restricted services by @zhhuta in #4309
- Fix outdated dataset paths and examples in FAST 0-org-setup README by @ludoo in #4322
- Fix folder automation and bucket prefix handling in project factory by @ludoo in #4324
- Fix outdated dataset paths and output file docs in FAST 2-project-factory by @ludoo in #4323
- Improve Private NAT support in modules/net-cloudnat, modules/net-vpc, and 2-networking by @sruffilli in #4325
- Fix automation context, dependencies, and schemas in project factory by @ludoo in #4326
- Add NCC router appliance mode to FAST 2-networking NVAs by @sruffilli in #4313
- Use GA provider and filter deprecated protocols output in geap-agent-gateway by @LucaPrete in #4311
- Add ADR on secret values in module interfaces by @ludoo in #4329
- Forward address, CIDR and IAM contexts in 2-networking and net-vpc by @sruffilli in #4330
- Allow IAM group authentication in modules/alloydb by @btuckVZ in #4328
- Add ADR on binding policies to resource manager objects by @ludoo in #4334
- Fix IAM v3 principal normalization in geap-agent-gateway by @ludoo in #4333
- Bump fast-uri from 3.1.7 to 3.1.9 in /modules/api-gateway/recipe-multi-region/function by @dependabot[bot] in #4337
- Bump body-parser from 2.3.0 to 2.4.0 in /modules/api-gateway/recipe-multi-region/function by @dependabot[bot] in #4339
- Bump qs from 6.16.0 to 6.17.1 in /modules/api-gateway/recipe-multi-region/function by @dependabot[bot] in #4340
- Bump proxy-addr from 2.0.7 to 2.0.8 in /modules/api-gateway/recipe-multi-region/function by @dependabot[bot] in #4338
- Format principals from context for IAM deny policies by @V0idC0de in #4331
- Add FAST 2-networking dataset designer skill and agents-cli extension by @sruffilli in #4342
- Add hierarchical policy support to modules/net-cloud-armor by @sepehrjavid in #4286
- Rework region computation to support GCD universe by @karpok78 in #4347
- Fix TLS inspection policy attachment and CAS service agent in fast/addons/2-networking-swp by @sruffilli in #4353
- Update CI versions, lockfile overrides, and GitHub Actions by @ludoo in #4349
- Add cloud_armor_policy to project-factory projects by @sepehrjavid in #4352
- Add hierarchical Cloud Armor policies to FAST networking and security stages by @sepehrjavid in #4351
- Remove legacy alpha provider override and add E2E tests in modules/geap-agent-gateway by @LucaPrete in #4356
- Switch API Gateway recipe function to Python and default CF runtime to python313 by @ludoo in #4360
- Add Model Armor floor setting support to
modules/organizationby @zhhuta in #4310 - Fix context.folder_ids from defaults.yaml being ignored in FAST 2-networking by @maheshrijal in #4359
- Bump google provider to 8.10.0 by @sruffilli in #4364
- Fix default runtime in cloud-function-v1 to python312 by @ludoo in #4368
- Prep v60.0.0 by @LucaPrete in #4369
New Contributors
- @zhhuta made their first contribution in #4275
- @estebanbouza made their first contribution in #4292
- @mkawalek made their first contribution in #4290
- @jmgreger made their first contribution in #4301
- @threddast made their first contribution in #4305
- @maheshrijal made their first contribution in #4359
Full Changelog: v59.2.0...v60.0.0