github philips-labs/terraform-aws-github-runner v2.0.0

latest releases: v5.11.0, v5.10.4, v5.10.3...
18 months ago

2.0.0 (2022-12-28)

⚠ BREAKING CHANGES

  • Set default lambda node runtime to 18x on arm64 (#2763)
  • Drop deprecated terraform variables (#2761)
  • use optional in variable block_device_mappings (#2664)
  • Organise SSM paramamters by path (#2569)
  • Add multi-runner capability (#2472)
  • Remove old scale down mechanism (< 0.19.0) (#2519)
  • Remove support check_run (#2521)

Features

  • Add multi-runner capability (#2472) (fef8d65)
  • Added publishing to workflow_job event queue for multi runner module. (#2570) (a8b33b5)
  • Organise SSM paramamters by path (#2569) (b912bb8)
  • Remove old scale down mechanism (< 0.19.0) (#2519) (7506e9d)
  • Remove support check_run (#2521) (4677619)
  • Set default lambda node runtime to 18x on arm64 (#2763) (2fd1e16)
  • webhook: Support multiple arrays of tags is matchers. (#2736) (d17f441)

Bug Fixes

  • Apply SSM changes for multi-runner (c0051f6)
  • Drop deprecated terraform variables (#2761) (955bd1d)
  • Main module broken after supporting multiple labels (#2802) (df054e8)
  • Main module broken after supporting multiple labels for multi-runnes (df054e8)
  • multi-runner: Add missing default for runner_metadata_options (#2690) (910b91c)
  • multi-runner: Default value validation error (#2685) (448a3a7)
  • Multiirunner dl queue. (#2644) (0823d47)
  • Remove extraneous slashes from SSM paths, other typos (#2765) (7cdef21)
  • runners: Remove Application legacy tag (#2705) (96ced8a)
  • webhook: Add missing test dependency (086a2e1)

Migration Directions

Application tagged namespaces

In #2182 the Application tag on the runner is namespace, in this release the support for the old tag is removed (#2705) and only the new tag ghr:Application is used for scaling down. To ensure that olds instances got removed by the scale-down function it is important to first upgrade to 1.17. Alternative you can stop them manually.

Terraform 1.3+ required

We drop support for Terraform versions between lower then 1.3. This means versions 1.0.x till 1.2.x are not longer supported. The impact of upgrading from any Terraform version above 1 to 1.3.x should be minimal.

SSM Paths changed - Update required for tailored start-runner script (#2569)

Migration is only required when using your tailored start-runner script for example when building your own AMI. Before all parameters were based on convention. We have update them to be predictable with still similar conventions as default.

We set the tag ghr:ssm_config_path as EC2 instance tag to the path used for the configuration. In the config path we store the same values as before (run_as, enable_cloudwatch, agent_mode). The tokens are stored in a separate location which can be retrieved by looking up the value token_path in the config.

For a more details example check-out the following diffs:

Multi runner capability (#2519)

  • The multi-runner is available as a stand-alone module. However the change introduced a breaking change on the main module. The variable runner_enable_workflow_job_labels_check is not available under this module as we now only support the flagenable_runner_workflow_job_labels_check_all to check all/partial workflow labels to be present in the runner labels. Running TF apply on existing deployment will apply some changes done in internal modules to existing infrastructure.
  • Impact on using internal (submodules). There are some changes in the webhook internal module as per this feature. So, If you have been using it directly, the changes will be towards accepting runner configuration (queue details and label matchers) as a single object instead of earlier configuration of scattered queue details and criteria to match the workflow labels against the runner labels.

Removal support check_run (#1256

In the past we used for scaling the check_run event, since GitHub had now support for a workflow_job event. Now the event is upport for quite some time. And also support exists on GHES. We will phase out check_run support.

Ensure you configure the GitHub app to subscribe to workflow_job. In case you on an old GHES server version, the only. migration path is to update GHES or remain on old version of the module

Removal old scale-down mechanism

Migration is only required when you are on an older version than 0.19.0.

  • Option 1, upgrade to 2.x could cause orphan instances which will not be terminated by the scale-down function, thoses instances needs to be removed manual.
  • Option 2, upgrade first to a verions 1.17+ and keep this version running till all instances before the upgrade are terminated. Next upgrade to 2.x.

Default Node version and lambda architecture

The default for node is set to node 18 (LTS) and the default for the lambda architecture is changed from x64 to arm64. This architecture change has no impact on the runners (#2763).

Variables

Depcreated variables are removed from the module.

  • environment -> prefix
  • instance_type -> instance_types
  • market_options -> instance_target_capacity_type

The following variables are renamed for consistently. Old variables names will trigger an error with upgrade instruction.

  • enabled_userdata -> enable_userdata (#2784)
  • fifo_build_queue -> enable_fifo_build_queue (#2809)
  • runner_enable_workflow_job_labels_check_all -> enable_runner_workflow_job_labels_check_all (#2809)

Don't miss a new terraform-aws-github-runner release

NewReleases is sending notifications on new releases.