Elastic Ci Stack For Aws Versions Save

An auto-scaling cluster of build agents running in your own AWS VPC

v6.3.0

9 months ago

Known Issues

⚠️ Buildkite Agent v3.51.0 has a known issue with the buildkite-agent step export command. This is fixed in v3.52.0.

v6.3.0 (2023-08-16)

Full Changelog

Changed

  • Bump buildkite-agent to v3.51.0 #1193 (@triarius)
  • Bump git-lfs to v3.4.0 #1191 (@triarius)

Fix

  • Fix mdadm is not installed, leading to broken instance storage when there is more than one volumes #1190 (@triarius)

Internal

  • Incorporated CHANGELOG for v5.22.3 #1189 (@triarius)

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v6.3.0/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the README for this release.

v5.22.3

9 months ago

v5.22.3 (2023-08-10)

Full Changelog

Changed

  • Bump buildkite-agent to v3.50.4 #1186 (@triarius)
  • Use Windows Server 2019 base image and Docker CE #1187 (@triarius)

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v5.22.3/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the README for this release.

v6.2.0

9 months ago

v6.2.0 (2023-08-09)

Full Changelog

Changed

  • Change base image to Windows Server 2019 w/o containers and install Docker CE (v24.0.5) #1180 (@triarius)
  • Add cost allocation tags to EBS volumes #1171 (@keatmin)

Fixed

  • Add missing authorized keys systemd units #1184 (@sj26)
  • Fix instance storage docker dir not created #1181 (@triarius)
  • Fix set -e fails from environment hooks #1179 (@triarius)

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v6.2.0/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the README for this release.

v6.1.0

9 months ago

v6.1.0 (2023-08-01)

Full Changelog

Changed

  • Bump buildkite-agent to v3.50.4 #1177 (@DrJosh9000)
  • Disable client side pager for aws-cli v2 for the buildkite-agent user #1174 (@triarius)
  • Add ScalerMinPollInterval param #1173 (@amartani)

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v6.1.0/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the README for this release.

v6.0.0

9 months ago

v6.0.0 (2023-07-26)

Full Changelog

Changed

  • Upgrade base image to Amazon Linux 2023 #1122 (@triarius)
  • Publish template to both main and master #1129 (@triarius)
  • Increase job cancel grace period to 60s #1144 (@triarius)
  • Allow the MaxSize to be 0 #1140 (@triarius)
  • Default EC2 instance names to stack name #1137 (@triarius)
  • Rename the parameter InstanceType to InstanceTypes #1138 (@triarius)
  • Rename the parameter ManagedPolicyARN to ManagedPolicyARNs #1138 (@triarius)
  • Rename the parameter SecurityGroupId to SecurityGroupIds #1128 (@triarius)
  • Rename the parameter EnableAgentGitMirrorsExperiment to BuildkiteAgentEnableGitMirrors #1123 (@triarius)
  • Enable the ansi-timestamps setting if and only if BuildkiteAgentTimestampLines parameter is "false" #1132 (@triarius)
  • Bump buildkite-agent-scaler to v1.5.0 #1169 (@tomellis91)
  • Bump docker compose to v2.20.2 #1150 (@triarius)
  • Bump buildx to v0.11.2 #1150 (@triarius)

Added

  • Support running and building multi-platform docker images #1139 #1122 #1149 (@triarius)
  • Support i4g instance types #1138 (@triarius)
  • Added the parameter SpotAllocationStrategy #1130 (@triarius)
  • Added the parameter ScalerEventScheduleRate to control the rate at which buildkite-agent-scaler is invoked #1169 (@tomellis91)

Fixed

  • Guard against BUILDKITE_AGENT_ENABLE_GIT_MIRRORS not being set in startup script #1135 (@triarius)

Removed

  • Remove deprecated SpotPrice parameter #1130 (@triarius)
  • Removed packages. These packages are either not available on Amazon Linux 2023, or not installed by default on the base image we use. We have decided to not install them, as suitable replacements may be found.
    • Python 2
    • OpenSSL v1.0
    • AWS CLI v1
    • Docker-Compose v1
      • The docker-compose executable will prepend the --compatibility flag to docker-compose v2 #1148 (@triarius)
    • Cronie

Known Issues

  • If you invoke docker compose with the docker-compose command, the --compatibilty flag will be prepended for you. This will be the case with the docker-compose-buildkite-plugin unless you specify cli-version: 2 in your plugin config.
  • Docker build errors from docker compose will now exit with status code 17 or 18 when previously they would have exited with code 1. Please adjust your retry rules accordingly.
  • The docker group is now a system group. Previously, its group ID was hard-coded to be 1001, but now it could take some value from 999 descending. If you relied on the GID being hard-coded to 1001 in your builds, they may have permission errors. We recommend you use something like the bash expression getent group docker | awk -F: '{print $3}' to detect what the ID of the docker group is instead.

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v6.0.0/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the README for this release.

v5.22.2

9 months ago

⚠️ Known Issues

This version of the Elastic CI Stack contains a version of the agent with known issues with uploading pipelines. Please use v6.2.0 or v5.22.3 instead.

v5.22.2 (2023-07-24)

Full Changelog

Changed

  • Bump buildkite-agent to v3.50.3 #1164 (@DrJosh9000)

Internal

  • Set allow_dependency_failure: true on stack cleanup jobs #1159 (@triarius)

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v5.22.2/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the Readme for this release.

v5.22.1

9 months ago

⚠️ Known Issues

This version of the Elastic CI Stack contains a version of the agent with known issues with uploading pipelines. Please use v6.2.0 or v5.22.3 instead.

v5.22.1 (2023-07-21)

Full Changelog

Changed

  • Bump buildkite-agent to v3.50.2 #1161 (@triarius)

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v5.22.1/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the Readme for this release.

v5.22.0

9 months ago

⚠️ Known Issues

This version of the Elastic CI Stack contains a version of the agent with known issues with uploading pipelines. Please use v6.2.0 or v5.22.3 instead.

v5.22.0 (2023-07-20)

Full Changelog

Changed

  • Bump buildkite-agent to v3.50.1 #1157 (@DrJosh9000)
  • Handle hard failures (eg. kernel panic) during bootstrap #1143 (@trvrnrth)
  • Backport de-experimentifying git-mirrors #1141 (@triarius)
  • Enable ansi-timestamps iff BuildkiteAgentTimestampLines is false #1132 (@triarius)
  • Don't (re)install docker (on Windows) #1136 (@triarius)

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v5.22.0/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the Readme for this release.

v6.0.0-beta2

9 months ago

We've been dogfooding v6.0.0-beta1 for some time and are ready to make another beta release.

Known Issues

  • Building docker images intermittently fails with connection aborted and IO ERROR when trying to write files to the container's file system. This happens reasonably infrequently, and we recommend detecting build errors from docker and retrying, either inside your build scripts or by retrying the command step. If you are using docker compose to build images, or the docker-compose-buildkite-plugin, the exit status to retry on will be 17 in most cases.
  • If you invoke docker compose with the docker-compose command, the --compatibilty flag will be prepended for you. We still recommend you use the cli-version: 2 syntax in your Buildkite docker-compose plugin blocks, which is the equivalent of invoking docker compose with the docker compose command.
  • The ID of the docker group is now determined when the docker package is installed. Previously it was hard-coded to be 1001, but now it is 993, but that may change in later releases. If you rely on the GID being hard-coded to 1001 in your builds, they may have permission errors. We recommend you use something like the bash syntax getent group docker | awk -F: '{print $3}' to detect what the ID of the docker group is instead.

v6.0.0-beta2 (2023-07-17)

Full Changelog

Changed

  • Bump docker compose to v2.20.0 and buildx to v0.11.1 #1150 (@triarius)
  • Reorganise build scripts to restart docker after installing qemu #1149 (@triarius)

Fixed

  • Fix issues with docker-compose plugin by creating a script to prepend --compatibility flag to docker-compose #1148 (@triarius)
  • subuid and subgid files no longer have multiple ranges #1149 (@triarius)

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v6.0.0-beta2/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the README for this release.

v6.0.0-beta1

10 months ago

We are excited to announce the release of v6.0.0-beta1 of the Elastic CI Stack for AWS. We have been using this internally in our pipelines for some time, and we are ready for the next phase of releasing it to customers.

Two highlights of this release are:

Amazon Linux 2023

We have upgraded the Base AMI for Linux EC2 instances to Amazon Linux 2023. This upgrade brings numerous improvements and updates to the underlying operating system. You can find more details on the changes made by Amazon in their official documentation here. Many packages have been added, upgraded, or removed since Amazon Linux 2, making Amazon Linux 2023 a more robust and up-to-date choice for your CI/CD runners.

This update was made in response to valuable feedback from our customers. Specifically, we received requests for Amazon Linux 2023 because Amazon Linux 2 did not support Node 18+, and our customers wanted to leverage the latest version of Node.js in their CI/CD workflows.

Multi-Platform Docker Image Support

We have added support for running and building multi-platform docker images on Linux. This feature allows you to build and run docker images on different architectures, such as arm64 images on x86_64 machines and vice versa. We have been using this to create multi-platform images for the Buildkite Agent, so we are excited to release it to our customers too.

We appreciate your input and strive to continuously improve our platform based on your needs. Thank you for your support, and we hope these updates enhance your CI/CD experience on AWS EC2.

Please refer to the full changelog for more details on all the changes and fixes included in this release. If you have any questions or need assistance, please don't hesitate to reach out to our support team. Happy deploying!

Known Issues

  • The docker-compose-buildkite-plugin may need to be run with the configuration option cli-version: 2 in some situations. We're likely to make this the default in a future version of the plugin, but for now we recommend you set this in your pipeline definitions.
  • The ID of the docker group is now determined when the docker package is installed. Previously it was hard-coded to be 1001, but now it is 993, but that may change in later releases. If you rely on the GID being hard-coded to 1001 in your builds, they may have permission errors. We recommend you use something like the bash syntax getent group docker | awk -F: '{print $3}' to detect what the ID of the docker group is instead.

v6.0.0-beta1 (2023-06-28)

Full Changelog

Changed

  • Upgrade base image to Amazon Linux 2023 #1122 (@triarius)
  • Publish template to both main and master #1129 (@triarius)
  • Increase job cancel grace period to 60s #1144 (@triarius)
  • Allow the MaxSize to be 0 #1140 (@triarius)
  • Default EC2 instance names to stack name #1137 (@triarius)
  • Rename the parameter InstanceType to InstanceTypes #1138 (@triarius)
  • Rename the parameter ManagedPolicyARN to ManagedPolicyARNs #1138 (@triarius)
  • Rename the parameter SecurityGroupId to SecurityGroupIds #1128 (@triarius)
  • Rename the parameter EnableAgentGitMirrorsExperiment to BuildkiteAgentEnableGitMirrors #1123 (@triarius)
  • Enable the ansi-timestamps setting if and only if BuildkiteAgentTimestampLines parameter is "false" #1132 (@triarius)

Added

  • Support running and building multi-platform docker images #1139 #1122 (@triarius)
  • Support i4g instance types #1138 (@triarius)
  • The parameter SpotAllocationStrategy #1130 (@triarius)

Fixed

  • Guard against BUILDKITE_AGENT_ENABLE_GIT_MIRRORS not being set in startup script #1135 (@triarius)

Removed

  • Remove deprecated SpotPrice parameter #1130 (@triarius)
  • These packages are either not available on Amazon Linux 2023, or not installed by default on the base image we use. We have decided to not make them available as suitable replacements are available.
    • Python 2
    • OpenSSL v1.0
    • AWS CLI v1
    • Docker-Compose v1
    • Cronie

Upgrading

Perform a CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v6.0.0-beta1/aws-stack.yml

If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):

Launch Buildkite AWS Stack

Documentation

See the README for this release.