yurt-run: connect the local machine to a cluster
Every machine that should be part of a cluster runs yurt-run as a daemon, e.g.
via systemd. An optional yurt.yml file contains the following options and
defaults.
Only consul_server_ips
is required.
data_dir: "/var/yurt"
tls: false
network_cidr: "" # derived from first consul_server_ips, assumed to be a /24
consul_server_ips: [] # REQUIRED
consul_bin: "/opt/yurt/bin/consul-$goos-$goarch-$version"
nomad_bin: "/opt/yurt/bin/nomad-$goos-$goarch-$version"
ca_cert_file: "/var/yurt/ca.pem"
On launch yurt-run sleeps until two conditions are true:
- hostname is something other than "localhost"
- a network interface exists that's part of network_cidr
(Although yurt-run doesn't enforce it, if your hostnames aren't unique within your
cluster things probably will break.)
Once these requirements are met, yurt-run will spawn:
- consul agent, in server mode if consul_server_ips contains local ip
- nomad agent, in server mode if consul_server_ips contains local ip
Consul retry join is given by consul_server_ips, and the Nomad cluster is
bootstrapped using Consul.