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 = "client"
    is_infra_server = "false"
    provider_uuid = "{{ providerUuid | default('') }}"
    short_provider_uuid = "{{ shortProviderUuid | default('')  }}"
    provider_name = "{{ providerName | default('')  }}"
    instance_pool_uuid = "{{ instancePoolUuid }}"
    instance_uuid = "{{ instanceUuid }}"
    short_instance_uuid = "{{ shortInstanceUuid }}"
    environment_uuid = "{{ environmentUuid }}"
    short_environment_uuid = "{{ shortEnvironmentUuid }}"

    {% if nvidiaGpu is defined %}nvidia_gpu = "{{ nvidiaGpu }}"{% endif %}

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

    {%- if sharedVolumes is defined %}
    shared_volume_uuids = "{%- for sharedVolume in sharedVolumes %}{%- if loop.index0 %},{%- endif %}{{ sharedVolume.uuid }}{%- endfor %}"
    {%- endif %}
  }

  {%- if persistentSharedVolumeUuids is defined -%}
  {%- for volume in persistentSharedVolumeUuids %}
  host_volume "{{ volume }}" {
    path = "€# layerops_persistent_volume_path #€/{{ volume}}"
    read_only = false
  }
  {%- endfor %}
  {%- endif %}
}
