cloud-foundation-fabric/modules
Julio Castillo 9d61c6e26d Update IAM for pubsub topics and subscriptions 2023-09-17 00:21:36 +02:00
..
__docs Change type of `iam_bindings` variable to allow multiple conditional bindings (#1658) 2023-09-08 08:56:31 +02:00
__experimental GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
alloydb-instance GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
api-gateway GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
apigee GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
artifact-registry GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
bigquery-dataset GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
bigtable-instance GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
billing-budget GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
binauthz GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
cloud-config-container GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
cloud-function-v1 GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
cloud-function-v2 GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
cloud-identity-group GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
cloud-run GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
cloudsql-instance Fix tests for new KMS IAM interface 2023-09-17 00:21:36 +02:00
compute-mig GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
compute-vm GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
container-registry GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
data-catalog-policy-tag GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
datafusion GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
dataplex GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
dataplex-datascan GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
dataproc GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
dns GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
dns-response-policy GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
endpoints GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
folder GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
gcs GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
gcve-private-cloud GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
gke-cluster-autopilot GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
gke-cluster-standard GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
gke-hub GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
gke-nodepool GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
iam-service-account GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
kms Make kms iam non-nullable 2023-09-17 00:21:36 +02:00
logging-bucket GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
ncc-spoke-ra GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-address GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-cloudnat GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-firewall-policy GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-ipsec-over-interconnect GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-lb-app-ext GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-lb-app-int GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-lb-ext GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-lb-int GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-lb-proxy-int GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-swp GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-vlan-attachment GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-vpc Merge branch 'master' into jccb/fix-subnet-iam-bindings 2023-09-15 14:31:28 +02:00
net-vpc-firewall GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-vpc-peering GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-vpn-dynamic GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-vpn-ha GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
net-vpn-static GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
organization GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
project GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
projects-data-source GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
pubsub Update IAM for pubsub topics and subscriptions 2023-09-17 00:21:36 +02:00
secret-manager GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
service-directory GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
source-repository GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
vpc-sc GKE cluster modules: add optional kube state metrics (#1682) 2023-09-15 12:18:45 +01:00
README.md Merge branch 'elia-gcve' of github.com:GoogleCloudPlatform/cloud-foundation-fabric into elia-gcve 2023-08-14 14:46:16 +02: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