v2.3.2
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.0expanded 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 thecpuandramdefinitions, and set that as min and max values when requesting an instance. If you want to keep the behaviour introduced inv2.3.0, you can now simply do e.g.cpu=4+256and it will evaluate all instances with cpus from 4 to 256. You no longer need to set multiple values likecpu=4+8+16+32..., since only the min and max values will be used. As another example, settingcpu=4will only include instance with 4 CPUs, as it was the case beforev2.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-ctlmust be in thePATH).New CloudFormation parameter to enable/disable detailed monitoring for EC2 instances (default:
false).Add
job_urlto all log messages.Add
runs-on-workflow-run-idtag on instance, when job has started.All instances will now get a
Nameassigned 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.
Fixes
CreateFleetAPI 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.