Prerequisites
Before we start with the setup, let’s make sure the following prerequisites are in place:
-
GitHub Account: You’ll need either a personal or an organization GitHub account. Sign up for GitHub
-
Cloud Provider Account: A Google Kubernetes Engine (GKE) or Amazon Web Services (AWS) Account. You’ll need an active account with either platform to proceed.
- Sign up for Google Cloud and create a project
- Sign up for AWS
We recommend using an isolated project or account in your cloud provider specifically for this setup to begin with. This helps to keep your resources organized and manageable as you experiment with Lifecycle.
-
CLI Tools
-
Custom Domain: You will need a custom domain (e.g.,
0env.com
) to route traffic to your application environments. This is particularly important for setting up:- Public callback and webhook URLs for the GitHub App
- Ingress routing within the Kubernetes cluster
- Secure (HTTPS) access via TLS certificates
-
DNS Provider with Wildcard Support: The domain must be managed by a DNS provider that supports wildcard DNS records (e.g., *.0env.com). This is necessary to dynamically route traffic from GitHub to the Lifecycle app and to ephemeral environments.
Supported DNS providers that support wildcard for infrastructure setup include:
Manual Setup: Setup a public DNS zone in Google Cloud to manage your domain’s DNS records.
-
Follow steps here to setup a public DNS zone.
-
Wildcard DNS records will be created by the OpenTofu modules in the next steps.
CLI Setup:
Use the gcloud
CLI to create a public DNS zone for your domain:
Update your domain’s DNS records with NS records provided by Google Cloud DNS. You can find these in the Google Cloud Console under the DNS zone you created.
Ensure that your domain’s nameservers are pointing to your chosen DNS provider
at your registrar, and that you have permission to create and manage DNS
records programmatically.
This is crucial for the setup to work
correctly and will take time to propagate.
Use https://dnschecker.org/#NS to verify that your domain’s nameservers are correctly set up.
Once you have these prerequisites in place, you can proceed to the next steps in setting up the cluster and application.