DocsSetup & InstallationPrerequisites

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.

💡

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

    • OpenTofu — Infrastructure as code tool (OpenTofu is a community-driven fork of Terraform).
    • kubectl — Command-line tool for interacting with Kubernetes clusters.
    • gcloud or aws-cli — Command-line tools for managing Google Cloud or AWS resources, respectively.
  • 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.