servo/etc/taskcluster/macos
Simon Sapin d406f90f32 Use homebrew bundle to avoid errors on upgrade available.
`homebrew install` could exit with errors like:

```
Error: cmake 3.12.4 is already installed
To upgrade to 3.13.0, run `brew upgrade cmake`
```

This solution is the one recommended in https://github.com/Homebrew/brew/issues/2491
2018-11-22 17:46:49 +01:00
..
config generic-worker on macOS: more docs, move minion config out of roster 2018-11-15 17:38:13 +01:00
modules/pillar Update MPL license to https (part 1) 2018-11-19 14:46:43 +01:00
states UTC 2018-11-15 17:38:13 +01:00
.gitignore Initial agentless SaltStack config for generic-worker on macOS 2018-11-15 17:38:13 +01:00
Brewfile Use homebrew bundle to avoid errors on upgrade available. 2018-11-22 17:46:49 +01:00
README.md generic-worker on macOS: more docs, move minion config out of roster 2018-11-15 17:38:13 +01:00
salt-ssh Update MPL license to https (part 1) 2018-11-19 14:46:43 +01:00
Saltfile generic-worker on macOS: run as unprivileged user, start as a service 2018-11-15 17:38:13 +01:00

macOS

This is the configuration for the proj-servo/macos worker type. These macOS workers are configured with SaltStack in agentless mode.

Either run ./salt-ssh to automatically install salt-ssh in machs existing Python virtualenv, or install salt-ssh through some other mean and run in from this directory.

cd etc/taskcluster/macos
./salt-ssh '*' test.ping
./salt-ssh '*' state.apply test=True

(Re)deploying a server

  • Place an order or file a ticket with MacStadium to get a new hardware or reinstall an OS.

  • Change the administrator password to one generated with </dev/urandom tr -d -c 'a-zA-Z' | head -c 8; echo (this short because of VNC), and save it in the shared 1Password account.

  • Give the public IPv4 address a DNS name through Cloudflare.

  • Add a correponding entry in the config/roster file.

  • Log in through VNC, and run xcode-select --install

Taskcluster secrets

This SaltStack configuration has a custom module that uses Taskclusters secrets service. These secrets include an [authentication token]( Youll need to authenticate with a Taskcluster client ID that has scope secrets:get:project/servo/*. This should be the case if youre a Servo project administrator (the project-admin:servo role).

Workers client ID

Workers are configured to authenticate with client ID project/servo/worker/macos/1. This client has the scopes required to run tasks for this worker type.