### Common Settings ###

# Node
node_id = "{{ instanceUuid }}"
node_name = "{{ consul.nodeName }}"

datacenter = "{{ datacenter }}"
domain = "€# lookup('env','CONSUL_DOMAIN') | default('consul', true) #€"

# Addresses
advertise_addr = "{{ wireguard.privateIp }}"
bind_addr = "€# lookup('env','CONSUL_BIND_ADDR') | default('0.0.0.0', true) #€"
client_addr = "€# lookup('env','CONSUL_CLIENT_ADDR') | default('0.0.0.0', true) #€"
addresses {
  http  = "127.0.0.1"
  https = "127.0.0.1"
}

# Logging
log_level = "€# lookup('env', 'CONSUL_LOG_LEVEL') | default('INFO', true) #€"
enable_syslog = true

# Encryption and TLS
encrypt = "{{ consul.encryptKey }}"

tls {
  defaults {
    ca_file = "€# layerops_tls_ca_file #€"
    cert_file = "€# layerops_tls_cert_file #€"
    key_file = "€# layerops_tls_key_file #€"
    verify_incoming = false
    verify_outgoing = true
  }
  internal_rpc {
    verify_incoming = true
    verify_server_hostname = true
  }
}

# LAN join
retry_join = {{ consul.retryJoin | to_json }}
retry_interval = "€# lookup('env', 'CONSUL_RETRY_INTERVAL') | default('10s', true) #€"
retry_max = €# lookup('env', 'CONSUL_RETRY_MAX') | default(0, true) | int #€

# ACLs
acl = {
  enabled = true
  default_policy = "deny"
  down_policy    = "extend-cache"
  enable_token_persistence = true
  tokens = {
    {%- if consul.tokens.default | default('') | trim != '' %}
    default = "{{ consul.tokens.default }}"
    {%- endif %}
    {%- if consul.tokens.agent | default('') | trim != '' %}
    agent = "{{ consul.tokens.agent }}"
    {%- endif %}
  }
}

# Node Meta
node_meta = {
  layerops_instance_type = "client"
  workspace_uuid = "{{ workspaceUuid }}"
  provider_uuid = "{{ providerUuid | default('') }}"
  short_provider_uuid = "{{ shortProviderUuid | default('')  }}"
  provider_name = "{{ providerName | default('')  }}"
  instance_pool_uuid = "{{ instancePoolUuid }}"
  instance_pool_name = "{{ instancePoolName }}"
  instance_uuid = "{{ instanceUuid }}"
  instance_name = "{{ instanceName }}"
  short_instance_uuid = "{{ shortInstanceUuid }}"
  environment_uuid = "{{ environmentUuid }}"
  short_environment_uuid = "{{ shortEnvironmentUuid }}"
  instance_public_ip = "{{ publicIp }}"
  wireguard_public_key = "{{ wireguard.publicKey }}"
  wireguard_endpoint = "{{ privateIp }}:€# lookup('env','WIREGUARD_LISTEN_PORT') | default('51820', true) #€"
  wireguard_instance_ip = "{{ wireguard.privateIp }}"
  nomad_client_id = ""
}
