client {
  enabled = true
  node_class = "{{ nomad.nodeClass }}"

  max_kill_timeout = "€# lookup('env','NOMAD_CIENT_MAX_KILL_TIMEOUT') | default('30m', true) #€"

  network_interface = "€# lookup('env','WIREGUARD_INTERFACE') | default('wg0', true) #€"

  bridge_network_subnet = "€# lookup('env','NOMAD_BRIDGE_NETWORK_SUBNET') | default('172.20.0.0/16', true) #€"

  network_speed = €# lookup('env','NOMAD_CLIENT_NETWORK_SPEED') | default(0) | int #€
  cpu_total_compute = €# lookup('env','NOMAD_CLIENT_CPU_TOTAL_COMPUTE') | default(0) | int #€

  gc_interval = "€# lookup('env','NOMAD_CLIENT_GC_INTERVAL') | default('1m', true) #€"
  gc_disk_usage_threshold = €# lookup('env','NOMAD_CLIENT_GC_DISK_USAGE_THRESHOLD') | default(80) | int #€
  gc_inode_usage_threshold = €# lookup('env','NOMAD_CLIENT_GC_INODE_USAGE_THRESHOLD') | default(70) | int #€
  gc_parallel_destroys = €# lookup('env','NOMAD_CLIENT_GC_PARALLEL_DESTROYS') | default(2) | int #€

  reserved {
      cpu = €# lookup('env','NOMAD_CLIENT_RESERVED_CPU') | default(0) | int #€
      memory = €# lookup('env','NOMAD_CLIENT_RESERVED_MEMORY') | default(0) | int #€
      disk = €# lookup('env','NOMAD_CLIENT_RESERVED_DISK') | default(0) | int #€
  }

  options = {
  €%- for key, value in nomad_client_options.items() %€
    "€# key #€" = "€# value #€"
  €%- endfor %€
  }

  meta {
    instance_type = "lb"
    is_infra_server = "false"

    {%- if nomad.tags is defined %}
    "tags" = "{{ nomad.tags }}"
    {%- endif %}
  }

  {%- if nomad.volumes is defined -%}
  {%- for volume in nomad.volumes %}
  host_volume "{{ volume }}" {
    path = "{{ nomad.volumes[volume].path}}"
    read_only = {{ nomad.volumes[volume].read_only | lower }}
  }
  {%- endfor %}
  {%- endif %}
}
