https://github.com/googlecloudplatform/terraform-large-data-sharing-java-webapp
Deploys a large data sharing Java web app
https://github.com/googlecloudplatform/terraform-large-data-sharing-java-webapp
cft-terraform jump-start-solutions
Last synced: 4 months ago
JSON representation
Deploys a large data sharing Java web app
- Host: GitHub
- URL: https://github.com/googlecloudplatform/terraform-large-data-sharing-java-webapp
- Owner: GoogleCloudPlatform
- License: apache-2.0
- Archived: true
- Created: 2023-03-31T16:25:38.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-10T02:01:44.000Z (about 1 year ago)
- Last Synced: 2024-12-18T08:41:30.642Z (6 months ago)
- Topics: cft-terraform, jump-start-solutions
- Language: HCL
- Homepage: https://registry.terraform.io/modules/GoogleCloudPlatform/terraform-large-data-sharing-java-webapp/google
- Size: 562 KB
- Stars: 8
- Watchers: 13
- Forks: 12
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Large data sharing Java web app
## Description
### Tagline
Create a web app to share large quantities of files to users across the globe
### Detailed
This solution quickly and securely deploys a three-tierd web app with a Javascript front end, a Java back end, and a Firestore database on GCP. The goal of this solution is to utilize Google's Cloud CDN to serve large quantities of files (e.g., images, videos, documents) to users across the globe.
The resources/services/activations/deletions that this module will create/trigger are:
- Cloud Load Balancing
- Cloud Storage
- Cloud CDN
- Cloud Run
- Firestore## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| bucket\_location | Bucket location. https://cloud.google.com/storage/docs/locations | `string` | `"US"` | no |
| disable\_services\_on\_destroy | Whether project services will be disabled when the resources are destroyed. | `bool` | `false` | no |
| init | Initialize resource or not | `bool` | `true` | no |
| labels | A map of key/value label pairs to assign to the resources. | `map(string)` |{| no |
"app": "large-data-sharing"
}
| lds\_client\_image | Docker image for frontend | `string` | `"gcr.io/hsa-resources-public/hsa-lds-java-frontend:latest"` | no |
| lds\_initialization\_archive\_file\_name | Archive file's name in lds-initialization bucket | `string` | `"initialization.tar.gz"` | no |
| lds\_initialization\_bucket\_name | Bucket for cloud run job | `string` | `"jss-resources"` | no |
| lds\_server\_image | Docker image for backend | `string` | `"gcr.io/hsa-resources-public/hsa-lds-java-backend:latest"` | no |
| project\_id | GCP project ID. | `string` | n/a | yes |
| region | Google cloud region where the resource will be created. | `string` | `"us-west1"` | no |
| firestore_collection_id | Firestore collection id. | `string` | `"fileMetadata"` | no |## Outputs
| Name | Description |
|------|-------------|
| bucket\_name | Bucket name |
| lb\_external\_ip | Frontend IP address of the load balancer |
| neos\_walkthrough\_url | Neos Tutorial URL |## Requirements
These sections describe requirements for using this module.
### Software
The following dependencies must be available:
- [Terraform](https://developer.hashicorp.com/terraform/downloads) v0.13
- [Terraform Provider for GCP](https://registry.terraform.io/providers/hashicorp/google/latest/docs) plugin v4.57### Service Account
- roles/storage.objectAdmin
- roles/datastore.user
- roles/compute.networkUserA service account with the following roles must be used to provision
the resources of this module:### APIs
A project with the following APIs enabled must be used to host the
resources of this module:- compute.googleapis.com
- run.googleapis.com
- iam.googleapis.com
- firestore.googleapis.com
- vpcaccess.googleapis.com
- monitoring.googleapis.com
- cloudtrace.googleapis.com