[Unit]
Description=Nomad
Documentation=https://nomadproject.io/docs/
Wants=network-online.target
After=network-online.target
After=vault.service
After=consul.service
After=nomad-vault-agent.service
ConditionFileNotEmpty={{ nomad_root_dir }}/etc/nomad.hcl

# Nomad version {{ nomad_current_version }}
[Service]
Type=notify
EnvironmentFile=-{{ nomad_root_dir }}/etc/nomad.env
EnvironmentFile=-/run/nomad/vault.env
EnvironmentFile=-/run/nomad/consul.env
{% if nomad_conf.consul.ssl and nomad_conf.client.enabled %}
Environment=CONSUL_HTTP_SSL=true
Environment=CONSUL_HTTP_ADDR=localhost:{{ (consul_services is defined) | ternary(consul_services.https.port, '8501') }}
Environment=CONSUL_CACERT={{ nomad_conf.consul.ca_file }}
Environment=CONSUL_CLIENT_CERT={{ nomad_conf.consul.cert_file }}
Environment=CONSUL_CLIENT_KEY={{ nomad_conf.consul.key_file }}
{% endif %}
User={{ nomad_user }}
Group={{ nomad_user }}
ExecStart=/usr/local/bin/nomad agent -config {{ nomad_root_dir }}/etc
ExecReload=/bin/kill --signal HUP $MAINPID
Restart=on-failure
LimitNOFILE=65536
LimitNPROC=infinity
Restart=on-failure
RestartSec=5
StartLimitInterval=0
TasksMax=infinity
OOMScoreAdjust=-1000
{% if nomad_conf.client.enabled %}
# Give Nomad some time to drain the node
TimeoutStopSec=300
{% endif %}

[Install]
WantedBy=multi-user.target
