Skip to content

Create VM image for Mac Runners closed beta

Pedro Pombeiro requested to merge 6564-closed-beta-image into master

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

image

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 for master branch builds.
  • Decide which public key to use in the .create_macstadium_img job.

Why not use the orka client?

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

gitlab-org/gitlab-runner#6564 (closed)

Edited by Pedro Pombeiro

Merge request reports