servo/etc/taskcluster/macos/states/generic-worker.sls
Simon Sapin b5dc58d277 Tasckluster: add a second macOS worker
Tweak the Salt definition of /Library/LaunchAgents/net.generic.worker.plist
so that the `user` parameter for the template file is not taken
as a parameter for `file.managed`.
(The first run created a file owned by `worker` instead of `root`.)
2018-12-14 11:05:53 +01:00

92 lines
2.4 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% set bin = "/usr/local/bin" %}
{% set etc = "/etc/generic-worker" %}
{% set user = "worker" %}
{% set home = "/Users/" + user %}
GMT:
timezone.system
{{ bin }}/generic-worker:
file.managed:
- name:
- source: https://github.com/taskcluster/generic-worker/releases/download/v11.0.1/generic-worker-darwin-amd64
- source_hash: sha256=059331865670d3722a710f0b6f4dae97d347811cc347d1810c6dfc1b413c4b48
- mode: 755
- makedirs: True
{{ bin }}/livelog:
file.managed:
- source: https://github.com/taskcluster/livelog/releases/download/v1.1.0/livelog-darwin-amd64
- source_hash: sha256=be5d4b998b208afd802ac6ce6c4d4bbf0fb3816bb039a300626abbc999dfe163
- mode: 755
- makedirs: True
{{ user }} group:
group.present:
- name: {{ user }}
{{ user }}:
user.present:
- home: {{ home }}
- gid_from_name: True
# `user.present`s `createhome` is apparently not supported on macOS
{{ home }}:
file.directory:
- user: {{ user }}
{{ etc }}/config.json:
file.serialize:
- makedirs: True
- group: {{ user }}
- mode: 640
- show_changes: False
- formatter: json
- dataset:
provisionerId: proj-servo
workerType: macos
workerGroup: servo-macos
workerId: {{ grains["id"] }}
tasksDir: {{ home }}/tasks
publicIP: {{ salt.network.ip_addrs()[0] }}
signingKeyLocation: {{ home }}/key
clientId: {{ pillar["client_id"] }}
accessToken: {{ pillar["access_token"] }}
livelogExecutable: {{ bin }}/livelog
livelogCertificate: {{ etc }}/livelog.crt
livelogKey: {{ etc }}/livelog.key
livelogSecret: {{ pillar["livelog_secret"] }}
- watch_in:
- service: net.generic.worker
{{ etc }}/livelog.crt:
file.managed:
- contents_pillar: livelog_cert
- group: {{ user }}
- mode: 640
{{ etc }}/livelog.key:
file.managed:
- contents_pillar: livelog_key
- group: {{ user }}
- mode: 640
{{ bin }}/generic-worker new-openpgp-keypair --file {{ home }}/key:
cmd.run:
- creates: {{ home }}/key
- runas: {{ user }}
/Library/LaunchAgents/net.generic.worker.plist:
file.managed:
- mode: 644
- template: jinja
- source: salt://generic-worker.plist.jinja
- context:
bin: {{ bin }}
etc: {{ etc }}
home: {{ home }}
username: {{ user }}
net.generic.worker:
service.running:
- enable: True