v2.3.2

View on GitHub Upgrade guide

Summary

Summary: a fix for useless creation of instances when hitting quota errors, reverting the unbounded cpu and ram change (from v2.3.0), and CloudWatch agent now streams instance logs into CloudWatch.

Features

  • The change introduced in v2.3.0 expanded the instance choice by allowing instances with more CPUs and RAM than specified to be included. This has been reverted to avoid confusion, and to avoid hitting quota limits more frequently. Instead, RunsOn will take the lowest and highest value from the cpu and ram definitions, and set that as min and max values when requesting an instance. If you want to keep the behaviour introduced in v2.3.0, you can now simply do e.g. cpu=4+256 and it will evaluate all instances with cpus from 4 to 256. You no longer need to set multiple values like cpu=4+8+16+32..., since only the min and max values will be used. As another example, setting cpu=4 will only include instance with 4 CPUs, as it was the case before v2.3.0.

  • Automatically send cloud-init logs to CloudWatch. Should help a lot with knowing what happened on an instance in case it terminated early. Currently ships /var/log/cloud-init-output.log, /var/log/syslog, and /var/log/cloudwatch-agent.log. Retention set to 7 days. Requires the CloudWatch agent to be installed on the base AMI (amazon-cloudwatch-agent-ctl must be in the PATH).

  • New CloudFormation parameter to enable/disable detailed monitoring for EC2 instances (default: false).

  • Add job_url to all log messages.

  • Add runs-on-workflow-run-id tag on instance, when job has started.

  • All instances will now get a Name assigned when the instance starts processing a job from GitHub. Quite useful to monitor at a glance in EC2 UI which instances have started processing jobs.

image

Fixes

  • CreateFleet API can sometimes return an instance, even if errors are present in the response. Checking this fixes an issue that was creating more instances than necessary when hitting e.g. quota errors.
  • Ensure runner waits up to 10s until all tags have been set on the instance before shutting down.

Misc

  • Always prepend preinstall script with #!/bin/bash -e, and make RunsOn environment variables accessible.