Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/altissimo-hq/terraform-google-project

Creates a Google Cloud Project, IAM Policy, Service Accounts, and Service Account Keys
https://github.com/altissimo-hq/terraform-google-project

google project terraform terraform-modules

Last synced: about 2 months ago
JSON representation

Creates a Google Cloud Project, IAM Policy, Service Accounts, and Service Account Keys

Awesome Lists containing this project

README

        

# Altissimo - Google Project (Terraform Module)

The repo contains a terraform module for creating a Google Cloud Platform (GCP) project.

In addition to creating the project, this module will enable project services, create service accounts, and manage the project IAM policy.

`altissimo-hq/terraform-google-project`

---

## Requirements

| Name | Version |
|------|---------|
| [external](#requirement\_external) | >= 2.2.0 |
| [google](#requirement\_google) | >= 4.42.0 |

## Providers

| Name | Version |
|------|---------|
| [external](#provider\_external) | >= 2.2.0 |
| [google](#provider\_google) | >= 4.42.0 |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [google_project.project](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/project) | resource |
| [google_project_iam_policy.project](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/project_iam_policy) | resource |
| [google_project_service.services](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/project_service) | resource |
| [google_service_account.service_account](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/service_account) | resource |
| [external_external.gcloud_iam_service_accounts_list](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/external) | data source |
| [external_external.gcloud_services_list](https://registry.terraform.io/providers/hashicorp/external/latest/docs/data-sources/external) | data source |
| [google_iam_policy.project](https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/iam_policy) | data source |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [auto\_create\_network](#input\_auto\_create\_network) | Automatically create a default VPC network (defaults to false) | `bool` | `false` | no |
| [billing\_account](#input\_billing\_account) | Billing Account ID (defaults to null if not specified) | `string` | `null` | no |
| [folder\_id](#input\_folder\_id) | Parent Google Folder ID (only one of org\_id or folder\_id may be specified) | `string` | `null` | no |
| [gcloud\_command](#input\_gcloud\_command) | Path to the gcloud cli. Used to list enabled services and service accounts. | `string` | `null` | no |
| [iam\_policy](#input\_iam\_policy) | Map of Google Project IAM Policy Roles and Members | `map(list(string))` | `{}` | no |
| [labels](#input\_labels) | A map of labels to assign to the project | `map(string)` | `{}` | no |
| [org\_id](#input\_org\_id) | Parent Google Organization ID (only one of org\_id or folder\_id may be specified) | `string` | `null` | no |
| [project\_id](#input\_project\_id) | Google Project ID | `string` | n/a | yes |
| [project\_name](#input\_project\_name) | Google Project Display Name (defaults to project\_id if not specified)) | `string` | `null` | no |
| [service\_accounts](#input\_service\_accounts) | Map of Google Service Accounts to Create |

map(object({
display_name = optional(string)
disabled = optional(bool)
roles = optional(list(string))
}))
| `{}` | no |
| [services](#input\_services) | List of Google Project Services to Enable | `list(string)` | `[]` | no |
| [skip\_delete](#input\_skip\_delete) | Skip deletion of the Project when the Terraform resource is deleted (defaults to true) | `bool` | `true` | no |

## Outputs

| Name | Description |
|------|-------------|
| [name](#output\_name) | Google Name (string) |
| [number](#output\_number) | Google Project Number (string) |
| [project\_iam\_policy](#output\_project\_iam\_policy) | Google Project IAM Policy (list of binding objects) |
| [project\_id](#output\_project\_id) | Google Project ID (string) |
| [project\_number](#output\_project\_number) | Google Project Number (string) [deprecated - use number instead] |
| [service\_accounts](#output\_service\_accounts) | Google Service Accounts (map of objects) |
| [services](#output\_services) | Google Project Services (map of objects) |
| [unmanaged\_project\_services](#output\_unmanaged\_project\_services) | Google Project Services that are enabled but are not managed by Terraform (list of strings) |
| [unmanaged\_service\_accounts](#output\_unmanaged\_service\_accounts) | Google Service Accounts that exist but are not managed by Terraform (list of strings) |