Cloud Builder

Overview

Garden Cloud Builder is a new remote Docker image build service available exclusively for Garden Cloud and Enterprise customers. This service is designed to provide a robust and efficient platform for building images which can then be deployed by Garden.

Key Features

Remote Build Capabilities

  • Perform Docker builds on powerful remote infrastructure, freeing up local and/or remote in-cluster resources while significantly reducing build times.

  • Seamlessly integrate with your existing Garden workflows and pipelines.

  • Utilize shared Docker layer caching to speed up builds by reusing previously built layers, across your projects and users.

  • Automatically fall back to local or in-cluster building if limits are exceeded or the builder is unavailable.

Multi-platform builds

  • We currently support two architectures: linux/amd64 and linux/arm64

  • More platforms to follow.

Pick your builder's size

Not every project requires the same amount of memory and CPU so Garden Cloud Builders come in 4 sizes:

  • Small: 2vCPU 4GB

  • Medium: 4vCPU 8GB

  • Large: 8vCPU 16GB

  • XL: 16vCPU 32GB

By default, an XL Instance is provisioned to every customer. Please contact your Customer Success representative to switch size and/or discuss the different options.

Pricing

During the initial launch phase, we are giving all our customers the possibility of trying Cloud Builder out without any additional charge, within the following limits:

If you are interested in using Cloud Builder beyond these limits at the prices listed below, please reach out to your Customer Success representative.

* Minutes refers to minutes of active "utilization" of the builder regardless of the amount of parallel builds happening during that time.

Configuration

NOTE: In order to use Cloud Builder you must be logged in to Garden Cloud/Enterprise. You can do so by connecting your project to your instance and running garden login. See Log In from Garden Core CLI for more detailed instructions.

You can then start using Cloud Builder by either configuring your Providers or by passing an environment variable.

Provider configuration

In your project configuration file, add or edit the container provider as follows:

# In your project garden.yaml

providers:
  [...]
  - name: container
    gardenCloudBuilder:
      enabled: true

Environment variable

Alternatively, you can run your commands setting the GARDEN_CLOUD_BUILDER environment variable to 1.

We suggest using this method for testing purposes and switching afterward to the provider configuration method above.

# From your terminal or pipeline

GARDEN_CLOUD_BUILDER=1 garden build

If you configured your project correctly, you should see something similar the the lines below in your logs:

Additionally, your commands page should mark the build actions as Accelerated as well:

Multi-platform builds

If you want a container action to be built for multiple platforms, you can specify those in its spec.

Note: Cloud Builder currently supports only linux/amd64 and linux/arm64, with more platform to follow.

kind: Build
type: container
name: api-example
description: This is an example of a container build action
spec:
  [...]
  platforms: [ "linux/amd64", "linux/arm64" ]

Please refer to our docs for the full details.

Cloud UI

Cloud Builder comes with a UI component to help you understand your usage, troubleshoot errors, and debug your Garden command runs. We implemented two new views:

Cloud Organization Page

For when you want the bird's-eye view of usage and active builders.

Project Cloud Builder page

Here you can see the list of all Cloud Builder builds, scoped to a specific project, for when you want to troubleshoot slow or failed builds.

Last updated