Create VM image for Mac Runners closed beta
Prerequisites
The ID of a a VM in suspended state running in MacStadium.
What does this MR do?
This MR adds the infrastructure required to do the following steps upon a CI build:
- deploy a MacStadium VM named
macos-runner-10.15-beta-mr-${CI_JOB_ID}
on a random node - discover deployed VMs using Ansible dynamic inventory
- provision the newly-created MacStadium VM with the Ansible script rooted at
site.yml
- save an image named
macos-runner-10.15-beta-mr-${CI_MERGE_REQUEST_ID}.img
with the state of the VM - purge the created VM
TODO list
-
Trim down ansible-role-osx-ci
-
Expose Orka VPN connection variables as env vars -
Make Dockerfile to run Orka VPN-connected gitlab-runner -
Create dynamic inventory for Orka VMs -
Figure out a way to download Xcode.xip
file to include in the Ansible script formaster
branch builds. -
Decide which public key to use in the.create_macstadium_img
job.
orka
client?
Why not use the Decided against using the orka
client for managing VMs and images due to:
- the
orka
client doesn't play well in a CI environment. - requires user name/password/license key to be defined, whereas
curl
just requires a token that can be invalidated at any point. - more unneeded dependencies.
Associated issue
Edited by Pedro Pombeiro