localenvironment is the default and is configured for a local Kubernetes cluster that runs on the user's machine. The other two run on remote clusters.
previewenvironment every time someone makes a pull request on Github. The configuration looks like this:
CIRCLE_BRANCHenvironment variable to label the project namespace. This ensures that each pull request gets deployed into its own namespace.
stagingenvironment is configured in a similar manner. The relevant CI job is triggered on merges to the
gardendev/garden-gcloudcontainer image, that extends the standard
gardendev/gardenimage to bundle the
gcloudbinary. You could also add an installation step to install
gcloud(or any other binaries needed for your setup), or you could fashion your own container image to save time when testing. (You're also more than welcome to ask us to add another pre-packaged container to our release pipeline :))
GCLOUD_CLUSTER_ID: These you'll find under the relevant project in your Google Cloud Platform console.
GARDEN_LOGGER_TYPE=basicis important, because the default fancy logger will not play nice with CI and just spam it with spinner glyphs.