Documentation structure for LLMs (llms.txt)

Manage virtual machines with machine provisioner

Server 4.9 Server Admin

Machine provisioner controls how machine executor and Remote Docker jobs are run.

This section describes the available configuration options for machine provisioner.

Prescaling controls will be exposed in a future release for tuning.
We recommend that you leave these options at their defaults until you have successfully configured and verified the core and build services of your server installation. Steps to set up machine provisioner are provided in the installation guide for AWS and GCP.

Provider

The following configuration options are for the machine provisioner provider, either AWS or GCP.

AWS

Configure machine provisioner to work with AWS EC2 in your values.yaml file. During installation you will have set up a security group and authentication. See the Installation Phase 3 - Execution Environments page for more information.

The information in this section describes post-installation configuration options for machine provisioner.

Windows image

If you require Windows executors, you can supply an AMI ID in your values.yaml file. To create a Windows image, use the CircleCI Server Windows image builder.

machine_provisioner:
  providers:
    ec2:
      ...
      windowsAMI: "<my-windows-ami>"

Alternative Linux VM image

If you wish to provide a custom AMI for Linux machine executors, you can supply an AMI ID in your values.yaml file. To create a Linux image, use the CircleCI Server Linux image builder.

machine_provisioner:
  providers:
    ec2:
      ...
      linuxAMI: "<my-linux-ami>"

Default AWS AMI lists

The default AMIs for server 4.9 are based on Ubuntu 22.04, in both x86 and Arm variants.

  • x86 AMI list

  • Arm AMI list

Region AMI

us-east-1

ami-021dd518493189806

us-east-2

ami-03d2720cad192d1b1

ca-central-1

ami-073cd5dbfc0085d5f

ap-south-1

ami-0482b6adbc8513ce4

ap-southeast-2

ami-03e3bbfaf796bfd1a

ap-southeast-1

ami-08e24c82eed550847

eu-central-1

ami-0f2c31d55be76bb3b

eu-west-1

ami-0b37ee6bcea703e9e

eu-west-2

ami-097b99ef88e52c4a7

sa-east-1

ami-08087741d7744181d

us-west-1

ami-05b1f71036abfcf39

us-west-2

ami-004cb0c913bbb5370

ap-northeast-1

ami-02e3cdb7fcd47fe97

ap-northeast-2

ami-03fc14b5592ec8f98

eu-west-3

ami-0f6642f967389858d

us-gov-east-1

ami-07dfad9c46251171f

us-gov-west-1

ami-0f1ca9606171e022b

Region AMI

us-east-1

ami-039e377b0827a4701

us-east-2

ami-02e0f05558bdad8f8

ca-central-1

ami-01bbaccf6eda8974f

ap-south-1

ami-09923e7fc8d31ddbc

ap-southeast-2

ami-01eda0b404cfbc0e8

ap-southeast-1

ami-0832fe727071bc902

eu-central-1

ami-0fd98c11faa73574c

eu-west-1

ami-097b321f4ba342c0d

eu-west-2

ami-01491022ef9b8ccc0

sa-east-1

ami-0eab92571453f2c66

us-west-1

ami-0e13348127b2586b5

us-west-2

ami-0467f7d2ee9e202a9

ap-northeast-1

ami-07f3c828fbfbe005b

ap-northeast-2

ami-0b7934443f313efdf

eu-west-3

ami-065d375353bd3b58b

us-gov-east-1

ami-06403683c8f97b0a0

us-gov-west-1

ami-01d2ac64f0da5159f

Default machine executor images

The machine provisioner ships a fixed set of default images. Share the following image names with your developers, who reference them in the machine.image key of their .circleci/config.yml.

Linux (AMD64)
  • ubuntu-2204

  • default - alias that resolves to ubuntu-2204.

  • docker-default - alias used by Remote Docker jobs that resolves to ubuntu-2204.

Linux (Arm)
  • arm-default

Windows
  • windows-default

For an example of how developers reference these images and the resource classes available in their .circleci/config.yml, see the LinuxVM Execution Environment section of the configuration reference.

GCP

Configure machine provisioner to work with GCP in your values.yaml file. During installation you will have set up a security group and authentication. See the Installation Phase 3 - Execution Environments page for more information.

The information in this section describes post-installation configuration options for machine provisioner.

Windows image

If you require Windows executors, you can supply an AMI ID in your values.yaml file. To create a Windows image, use the CircleCI Server Windows image builder.

machine_provisioner:
  providers:
    gcp:
      ...
      windowsImage: "<my-windows-image>"

Alternative Linux VM image

If you wish to provide a custom AMI for Linux machine executors, you can supply an AMI ID in your values.yaml file. To create a Linux image, use the CircleCI Server Linux image builder.

machine_provisioner:
  providers:
    gcp:
      ...
      linuxImage: "<my-linux-image>"

Default machine executor images

The machine provisioner ships a fixed set of default images. Share the following image names with your developers, who reference them in the machine.image key of their .circleci/config.yml.

Linux (AMD64)
  • ubuntu-2204

  • default - alias that resolves to ubuntu-2204.

  • docker-default - alias used by Remote Docker jobs that resolves to ubuntu-2204.

Windows
  • windows-default

Android
The Android machine executor is only available when machine provisioner is configured with GCP.
  • android-default

For an example of how developers reference these images and the resource classes available in their .circleci/config.yml, see the LinuxVM Execution Environment section of the configuration reference.

Instance preallocation

When using preallocated instances be aware that a cron job is scheduled to cycle through these instances once per minute to ensure they do not end up in an unworkable state.

To configure server to keep instances preallocated, use the keys shown in the following machine-provisioner-config.yaml examples:

# -- Configuration options for, and numbers of, prescaled instances for remote Docker jobs.
preboot:
   scheduled:
       - executor: linux
         class: medium
         image: docker-default
         cron: ""
         count: 2
# -- Configuration options for, and numbers of, prescaled instances for machine jobs.
preboot:
   scheduled:
     - executor: linux
       class: medium
       image: default
       cron: ""
       count: 2

Apply changes

Apply the changes made to your values.yaml file:

namespace=<your-namespace>
helm upgrade circleci-server oci://cciserver.azurecr.io/circleci-server -n $namespace --version 4.9.4 -f <path-to-values.yaml>