The Google Cloud Platform (GCP), has many runtime options from AppEngine, Linux VM's and many others.
We have a distributed team in different time zones and are in need of a CI/CD server that will be up and running at anytime when anyone needs it, but we don't want it on 24x7x365, only on demand.
Some employees are contractors that we have not given full access to VM's, but limited ssh access to do what is needed.
We are in need of something that has fine grained authorization to launch a single instance, do a build/deploy, then shut down when not in use.
I setup a GCP VM, a modest one is costly: ~$160/month for a pre-emptible four core, 16GB, 100GB SSD, with a static IP, and it sits idle 10 hrs a day.
A pre-emptible option requires starting/stopping the VM by an employee for the contractors, sometimes the VM is shut down by Google because it's pre-emptible.
The ideal option would be a runtime that can be started, have a build run, do the deployment and then shut down.
Containers are an idea, but my reactionary thought here is that these are usually small, our code base has static artifacts that are very large - 2TB.
We do not want to checkout the code base each and every time, but simply do a git checkout to update the delta, or whatever has changed the last time a deployment was done.
Google has several ephemeral options, but we need the runtime to access it's previous state, anything created or done there.
I do not know how to balance all the options, or know of an option that would allow someone with limited, restricted access to launch an instance, run a build/deploy and have it shutdown when not in use.
Whatever permissions that are assigned at the moment, also allow creation of new instances and modifying existing instances but there are no permissions to restrict to a single instance.