Skip to main content

Config

Prerequisites

Here's a checklist of things to have setup on your GCP Project when getting started:

✅ Associate billing account

The GCP project must be associated to a billing account for it to used. Use the link: https://console.cloud.google.com/billing/linkedaccount to check if your project is linked to a billing account. Make sure to choose your project from the project dropdown in GCP console.

✅ Enable services

WarpBuild requires the following services be enabled before initiating a cloud connect. Make sure to choose your project from the project dropdown in GCP console.

ServicePurposeLink
Cloud Storage APIUsed for caches and storing telemetryEnable
IAM Service Account Credentials APIGenerates short lived tokens through our service account to your project specific service accountEnable
Identity and Access Management (IAM) APICreates service account for access management in your projectEnable
Cloud Deployment Manager V2 APICreates cloud integrations and stacks using deployment manager for easier versioningEnable
Compute Engine APIUsed for runner lifecycle managementEnable
Cloud Resource Manager APIUsed for resource tagging and managementEnable

Permissions

Users should have permissions to create the resources for cloud integration and stack.

The following roles should be associated with the user:

Cloud Connection

Creating a cloud connection sets up a service account role with the permissions required by WarpBuild Stacks and runners. This SA can be impersonated by WarpBuild's service account to generate short lived tokens which we use for access.

Stack

Create Stack

Creating a stack creates the infra configuration provided and uses the cloud storage bucket for cache and telemetry.

Create Stack

The stack name, cloud storage bucket, and region cannot be changed after creation.

Custom Runners

Custom Runners

  1. Spot instances are useful for short jobs that can be interrupted and can lead to significant (~70%) cost savings.
  2. One or more instance types in priority order can be chosen. The Github workflow uses a single runner label but picks the instance type based on availability.
  3. The minimum disk configurations are:
    • Size: 100GB

Best practices:

  1. Use multiple instance types, especially when using spot instances to ensure availability and jobs aren't stuck in queue.
  2. When using multiple instance types, choose instance types that are similar in price and performance.
  3. Choose a minimum disk configuration of:
    • Size: 150GB

Throughput and IOPS automatically managed by GCP. Refer: https://cloud.google.com/compute/docs/disks/performance

Limitations

  1. BYOC GCP does not support import flow for stack creation.
  2. Snapshot-based runners are not available for BYOC GCP.

Coming Soon

  • Instances with LocalSSD
  • Resource tagging