https://github.com/googlecloudplatform/deploystack
An extension to Google Cloud's Open In Cloud Shell that turns a terraform project into a one click deployable on Google Cloud
https://github.com/googlecloudplatform/deploystack
google-cloud terraform
Last synced: 5 months ago
JSON representation
An extension to Google Cloud's Open In Cloud Shell that turns a terraform project into a one click deployable on Google Cloud
- Host: GitHub
- URL: https://github.com/googlecloudplatform/deploystack
- Owner: GoogleCloudPlatform
- License: apache-2.0
- Created: 2022-05-05T16:24:53.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-12T00:51:47.000Z (over 1 year ago)
- Last Synced: 2024-12-18T08:40:24.437Z (over 1 year ago)
- Topics: google-cloud, terraform
- Language: Go
- Homepage: https://deploystack.dev
- Size: 96.3 MB
- Stars: 22
- Watchers: 16
- Forks: 8
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# DeployStack
[](https://godoc.org/github.com/GoogleCloudPlatform/deploystack)
[DeployStack](http://deploystack.dev) is a one click solution for running
Terraform projects for Google Cloud Platfom using [Cloud Shell](https://cloud.google.com/shell).
It uses [Open in Cloud Shell](https://cloud.google.com/shell/docs/open-in-cloud-shell)
to guide users from a link to a series or questions to help them install a
Terraform solution in their own Google Cloud Platform project space - prompting
them to choose answers to questions like "What [datacenter] zone do you want to
install in?" And presenting the options to guide them to pic the settings that
are right for them.

For technical reasons, at this time, it is limited to working with github repos
owned by [Google Cloud Platform](https://github.com/GoogleCloudPlatform). You
can see a list of DeployStack projects on [cloud.google.com](https://cloud.google.com/shell/docs/cloud-shell-tutorials/deploystack).
## Authoring
Authoring information has been moved to [deploystack/AUTHORING.MD](/AUTHORING.MD).
## This Codebase
This project is to centralize all of the tools and processes to get terminal
interfaces for collecting information from users for use with DeployStack.
Ultimately this codebase creates an executable that runs on Cloud Shell and
works with other tools to drive the experience.
It's broken up into packages with different responsibilities:
- deploystack
- A top level package that ties together user i/o for the executable and
passes information to the other packages - deploystack/config
- The basic information schema that runs all of the other parts of the
executable. - deploystack/gcloud
- Communication with Google Cloud via the Go SDK to get things like
region and zone lists - deploystack/github
- Communication with Github for cloning and getting other metadata about
projects - deploystack/terraform
- Introspection of Terraform files for tooling and other metadata
- deploystack/tui
- A terminal user interface that is dynamically built based on config files
rendered using BubbleTea ,
LipGloss, and
Bubbles
## Testing this Repo
In order to test the helper app in this repo, we need to do a fair amount of
manipulation of projects and what not. The tests require a
Service Account key json file. To faciliate this there is a script in
`tools/credsfile` that will create a service account, give it the right access
and service enablements, and export out a key file to use with testing.
This is not an offical Google product.