Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/altissimo-hq/terraform-google-project
- Owner: altissimo-hq
- License: gpl-3.0
- Created: 2023-04-07T00:38:30.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-24T19:52:55.000Z (3 months ago)
- Last Synced: 2024-10-26T06:33:49.156Z (3 months ago)
- Topics: google, project, terraform, terraform-modules
- Language: HCL
- Homepage: https://registry.terraform.io/modules/altissimo-hq/project/google/latest
- Size: 47.9 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
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({| `{}` | no |
display_name = optional(string)
disabled = optional(bool)
roles = optional(list(string))
}))
| [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) |