cloud-foundation-fabric/modules
Ludovico Magnocavallo 44ae2671b0
CI/CD support for Source Repository and Cloud Build (#669)
* add id to outputs

* initial cloud build implementation for stage 0

* comments

* stage 0

* stage 1, untested

* add support for IAM and CB triggers to source repository module

* refactor stage 0 to use sourcerepo module

* refactor stage 1 to use sourcerepo module

* file descriptions

* fix gitlab pipeline
2022-06-08 11:34:08 +02:00
..
__experimental Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
api-gateway Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
apigee-organization Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
apigee-x-instance add service_attachment to Apigee instance outputs 2022-05-03 17:02:57 +02:00
artifact-registry Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
bigquery-dataset Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
bigtable-instance Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
billing-budget Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
cloud-config-container Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
cloud-function Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
cloud-identity-group Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
cloud-run Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
cloudsql-instance Merge branch 'master' into sql-multi-region 2022-04-20 09:01:47 +02:00
compute-mig Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
compute-vm Remove preemptible VMs in favor of spot VMs 2022-05-04 18:01:07 +02:00
container-registry Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
data-catalog-policy-tag Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
datafusion Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
dns Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
endpoints Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
folder Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
folders-unit Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
gcs Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
gke-cluster Added 'gke_backup_agent_config' option to addons in gke-cluster (#642) 2022-04-30 10:32:49 +02:00
gke-hub Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
gke-nodepool Add spot vm support to `gke-nodepool` 2022-05-04 10:05:31 +02:00
iam-service-account CI/CD support for Source Repository and Cloud Build (#669) 2022-06-08 11:34:08 +02:00
iot-core Simplify link checker and recurse into all elements with children (#599) 2022-03-28 16:54:06 +02:00
kms Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
logging-bucket Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
naming-convention Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
net-address Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
net-cloudnat Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
net-glb Update outputs.tf 2022-05-25 13:36:58 +05:30
net-ilb Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
net-ilb-l7 Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
net-interconnect-attachment-direct Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
net-vpc fix condition in subnet factory flow logs (#654) 2022-05-18 10:33:56 +02:00
net-vpc-firewall Fix tfdoc parsing on newllines in outputs (#649) 2022-05-05 14:43:38 +02:00
net-vpc-peering Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
net-vpn-dynamic Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
net-vpn-ha Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
net-vpn-static Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
organization Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
project Initial version of the Contributor's Guide (#666) 2022-06-06 15:12:28 +02:00
projects-data-source Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
pubsub Add subscription filter support to PubSub module (#632) 2022-04-30 11:25:50 +02:00
secret-manager Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
service-directory Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
source-repository CI/CD support for Source Repository and Cloud Build (#669) 2022-06-08 11:34:08 +02:00
vpc-sc Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00
README.md Add module for retrieving all projects/folders under a specific parent (recursively). 2022-03-07 22:02:18 +01:00

README.md

Terraform modules suite for Google Cloud

The modules collected in this folder are designed as a suite: they are meant to be composed together, and are designed to be forked and modified where use of third party code and sources is not allowed.

Modules try to stay close to the low level provider resources they encapsulate, and they all share a similar interface that combines management of one resource or set or resources, and the corresponding IAM bindings.

Authoritative IAM bindings are primarily used (e.g. google_storage_bucket_iam_binding for GCS buckets) so that each module is authoritative for specific roles on the resources it manages, and can neutralize or reconcile IAM changes made elsewhere.

Specific modules also offer support for non-authoritative bindings (e.g. google_storage_bucket_iam_member for service accounts), to allow granular permission management on resources that they don't manage directly.

These modules are not necessarily backward compatible. Changes breaking compatibility in modules are marked by major releases (but not all major releases contain breaking changes). Please be mindful when upgrading Fabric modules in existing Terraform setups, and always try to use versioned references in module sources so you can easily revert back to a previous version. Since the introduction of the moved block in Terraform we try to use it whenever possible to make updates non-breaking, but that does not cover all changes we might need to make.

These modules are used in the examples included in this repository. If you are using any of those examples in your own Terraform configuration, make sure that you are using the same version for all the modules, and switch module sources to GitHub format using references. The recommended approach to working with Fabric modules is the following:

  • Fork the repository and own the fork. This will allow you to:

    • Evolve the existing modules.
    • Create your own modules.
    • Sync from the upstream repository to get all the updates.
  • Use GitHub sources with refs to reference the modules. See an example below:

    module "project" {
        source              = "github.com/GoogleCloudPlatform/cloud-foundation-fabric//modules/project?ref=v13.0.0"
        name                = "my-project"
        billing_account     = "123456-123456-123456"
        parent              = "organizations/123456"
    }
    

Foundational modules

Networking modules

Compute/Container

Data

Development

Security

Serverless