Skip to main content

Config

Limitations

  1. BYOC GCP does not support import flow for stack creation.
  2. arm64 is not supported for BYOC GCP custom runners.
  3. Custom machine images are not supported for BYOC GCP custom runners.
  4. Snapshot-based runners are not available for any BYOC based runners including GCP.

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.

Cloud Storage API

WarpBuild uses cloud storage for caches and storing telemetry.

IAM Service Account Credentials API

WarpBuild uses IAM service account credentials to generate short lived tokens through our service account to your project specific service account.

Identity and Access Management (IAM) API

WarpBuild creates service account for access management in your project.

Cloud Deployment Manager V2 API

WarpBuild creates the cloud integrations and stacks using deployment manager for easier versioning of these entities.

Compute Engine API

WarpBuild uses this endpoint for runner lifecycle management.

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

Coming Soon

  • Instances with LocalSSD
  • Custom VM images
  • Resource tagging