The intention of this project is to allow a user to set up a fully functional gitlab instance on a new GKE cluster from Google Cloud Shell with only minimal interaction. This is intended to be run from the cloud shell while in a fresh GCP project. This will likely work inside an existing project but it's not garaunteed.
Start the process from the home directory of your Cloud Shell by copy and pasting the following command. Everything else should take care of itself:
cd
curl https://raw.githubusercontent.com/WarpRat/capstone/master/bootstrap.sh > ~/bootstrap.sh
chmod +x bootstrap.sh
./bootstrap.sh
Although GKE documentation suggests using a wildcard DNS service like xip.io or nip.io to get letsencrypt certificates without having to register a domain name and set up DNS, in practice this is nearly impossible. Letsencrypt limits certificates to 50 per week per domain. Since xip.io and nip.io are popular global services this limit has almost certainly been reached at any given time. In the future this project will be updated to allow the user to supply a domain name that is controlled by GCP's DNS service to make the entire deployment seamless.
When you are finished with the environment you can remove all terraform resources by running the following command:
$HOME/capstone/bin/tf_clean.sh
If you delete the capstone folder before running this command, terraform's state will be lost and the resources will have to be cleaned up manually.