Skip to content

GoogleCloudPlatform/deploystack

Repository files navigation

DeployStack

GoDoc

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.

DeployStack UX

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

Authoring information has been moved to deploystack/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.

About

An extension to Google Cloud's Open In Cloud Shell that turns a terraform project into a one click deployable on Google Cloud

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published