A Kubernetes cluster for experimentation.
- Google Cloud account set up scripts.
- Google Cloud.
- Helm.
- Istio.
- Example application.
- Prometheus and Grafana.
- Skaffold.
- Tekton.
- plop.js or Cookie Cutter for templating?
- CI (GitLab?) for Terraform.
- Elastic Stack.
- Azure.
- OPA.
- Vitess.
- Bug in permission for setting NS records in root zone.
- A Google organization.
- A domain name.
- An admin Google Cloud project.
- A Service Account in the admin project for Terraform.
- A Cloud Storage bucket in the admin project which contains the Terraform state.
- Files for running Terraform - a backend and some environment variables.
- A root Cloud DNS Zone in the admin project.
- Create a new Google Organization.
- Install and init the gcloud SDK as the owner of the new Google Organization.
- Run
make template.admin
. This will copyseed.env.example
andseed.tfvars.example
toseed.env
andseed.tfvars
in the admin environment (./environment/admin
). - Fill out the
seed.env
file in the admin environment.seed.tfvars
does not need to be completed yet. To get your Organization id and Billing Account id trygcloud organizations list && gcloud alpha billing accounts list
- Run
make bootstrap.google
. This will run./scripts/bootstrap-google
. You will now have an admin Google Cloud project with a service account and bucket for Terraform. This script will also barf a couple of files into./environment/admin
for use with Terraform. - Register a domain.
- In the Google Cloud console, create a Cloud DNS zone in the admin account.
- Update your domain's nameservers in your registrar's web console.
- Fill out the
seed.tfvars
file in the admin environment. - You are now ready to begin provisioning with Terraform.
- You may now also use the Terraform service account with the gcloud SDK by
source environments/admin/credentials.env
- Run
make template.environment
. This will copyenvironments/template
toenvironments/$ENVIRONMENT
. By default,ENVIRONMENT=development
. Export a different value if desired. - Fill out the
seed.tfvars
file in the new environment. - Run
make terraform.init workspace.new
. This will initialize Terraform and create a new Terraform workspace for the new environment. - Run
make plan
to plan the Terraform provisioning. - Run
make apply
to apply the Terraform provisioning.
- Run
make credentials.google
to set up your kubectl config to control the cluster