Skip to content

Conversation

@edersonbrilhante
Copy link
Contributor

@edersonbrilhante edersonbrilhante commented Dec 3, 2025

Summary

This PR adds support for provisioning GitHub Actions runners on macOS EC2 instances by wiring placement group configuration through the multi-runner module and introducing macOS-specific bootstrap scripts.

Motivation

macOS EC2 instances require a dedicated host (host_id), which is managed through placement groups.
This work prepares the module to request mac-based EC2 runners by consuming placement configuration as defined in #4929

This PR closes #2070 #2069

@edersonbrilhante
Copy link
Contributor Author

@npalm what do you think?

I didn't test yet. I gonna test during this week.

@npalm
Copy link
Member

npalm commented Dec 15, 2025

Sorry had no time yet to dig in.

@edersonbrilhante edersonbrilhante changed the title feat: add support to request macos runners feat: add support for macos runners Dec 16, 2025
@edersonbrilhante edersonbrilhante force-pushed the feat-macos-support branch 2 times, most recently from 41912ad to e142885 Compare January 7, 2026 10:50
@edersonbrilhante edersonbrilhante marked this pull request as ready for review January 7, 2026 10:54
@edersonbrilhante edersonbrilhante requested review from a team as code owners January 7, 2026 10:54
@edersonbrilhante
Copy link
Contributor Author

@npalm I think the code is ready for review.

@edersonbrilhante
Copy link
Contributor Author

@koendelaat @guicaulada When the time permits can you also take a look?

@Brend-Smits Brend-Smits requested a review from Copilot January 14, 2026 10:30
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enables support for macOS runners on EC2 instances by adding "osx" as a valid runner_os option alongside "linux" and "windows". The changes include macOS-specific bootstrap scripts, placement group and license specification configuration for dedicated Mac hosts, and updated documentation.

Changes:

  • Added "osx" as a valid value for runner_os variables across modules with corresponding validation updates
  • Introduced macOS-specific user-data and runner installation/startup scripts
  • Added license_specifications variable support through the module hierarchy for Mac dedicated host licensing requirements
  • Created a new example module for provisioning dedicated Mac hosts with resource groups and license configurations

Reviewed changes

Copilot reviewed 26 out of 26 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
variables.tf Added osx to runner_os validation and updated description
modules/runners/variables.tf Added osx support and license_specifications variable
modules/runners/templates/user-data-osx.sh New macOS bootstrap script template
modules/runners/templates/start-runner-osx.sh New macOS runner startup script
modules/runners/templates/install-runner-osx.sh New macOS runner installation script
modules/runners/templates/install-runner.ps1 Removed trailing newline
modules/runners/scale-down.tf Added osx minimum runtime default of 20 minutes
modules/runners/scale-down-state-diagram.md Updated documentation with OSX timing
modules/runners/main.tf Added osx AMI defaults, templates, and license specification support
modules/runners/README.md Updated documentation with osx references
modules/runner-binaries-syncer/variables.tf Added osx to runner_os validation
modules/runner-binaries-syncer/main.tf Fixed file extension logic to use tar.gz for osx
modules/runner-binaries-syncer/README.md Updated documentation
modules/multi-runner/variables.tf Added license_specifications to runner config
modules/multi-runner/runners.tf Wired license_specifications parameter
modules/multi-runner/README.md Updated documentation
main.tf Wired license_specifications parameter
examples/prebuilt/variables.tf Added osx to description
examples/prebuilt/README.md Updated documentation
examples/dedicated-mac-hosts/* New example for Mac dedicated host provisioning
README.md Updated documentation with osx and license_specifications

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants