Create terraform code to setup workspaces infrastructure on AWS
MR: https://gitlab.com/gitlab-org/workspaces/examples/workspaces-infrastructure-setup-aws
Description
To make it easier for users to try out Workspaces, we should provide a terraform/opentofu code as a starting point.
For the scope of this issue, we will create a terraform/opentofu code for setting up Workspaces on AWS.
Acceptance criteria
-
Terraform/OpenTofu code to setup Workspaces infrastructure on AWS available under https://gitlab.com/gitlab-org/workspaces/examples
Implementation plan
In order to run this OpenTofu code, the following are the prerequisites -
- Domain
- TLS Certificates for the following
- Domain where OAuth callback will be available. We call this GitLab Workspaces Proxy Domain.
- Wildcard domain where all workspaces will be abailable. We call this GitLab Workspaces Proxy Wildcard Domain.
- Signing key made up of random keys consisting of letters numbers and special chars.
- SSH host key.
- OAuth application.
- GitLab Agent for Kubernetes token
When you run this OpenTofu code, the following resources will be created in AWS -
- VPC
- EKS cluster
- GitLab Agent for Kubernetes Helm release
- GitLab Workspaces Proxy Helm release
- Ingress Nginx Helm release
When this OpenTofu code runs, it will output the following -
- Ingress Nginx Address - Update the DNS record of type
A
to point the GitLab Workspaces Proxy Domain and GitLab Workspaces Proxy Wildcard Domain to this address.
Edited by Vishal Tak