DeployStack is a one click solution for running Terraform projects for Google Cloud Platfom using Cloud Shell. It uses 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. You can see a list of DeployStack projects on cloud.google.com.
Authoring information has been moved to deploystack/AUTHORING.MD.
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
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.