# Path to directory where to store index data allocated for this node.
#
# path.data: /path/to/data
+{%- if server.get('path', {}).data is defined %}
+path.data = {{ server.path.data }}
+{%- endif %}
#
# Can optionally include more than one location, causing data to be striped across
# the locations (a la RAID 0) on a file level, favouring locations with most free
# Path to log files:
#
# path.logs: /path/to/logs
+{%- if server.get('path', {}).logs is defined %}
+path.logs = {{ server.path.logs }}
+{%- endif %}
# Path to where plugins are installed:
#
# communication. (the range means that if the port is busy, it will automatically
# try the next port).
-# Set the bind address specifically (IPv4 or IPv6):
-#
-#
-network.bind_host: {{ server.bind.address }}
-http.port: {{ server.bind.port }}
-http.enabled: true
-# Set the address other nodes will use to communicate with this node. If not
-# set, it is automatically derived. It must point to an actual IP address.
+# Set both 'bind_host' and 'publish_host':
#
+# network.host: 192.168.0.1
+
+{%- if server.get('bind', {}).address is defined %}
+network.host: {{ server.bind.address }}
+{%- endif %}
+
+# Set specifically the address other nodes will use to communicate with this
+# node. If not set, it is automatically derived. It must point to an actual
+# IP address.
{%- if server.publish_host is defined %}
network.publish_host: {{ server.publish_host }}
{%- endif %}
-# Set both 'bind_host' and 'publish_host':
-#
-# network.host: 192.168.0.1
# Set a custom port for the node to node communication (9300 by default):
#
# Set a custom port to listen for HTTP traffic:
#
# http.port: 9200
+{%- if server.get('bind', {}).port is defined %}
+http.port: {{ server.bind.port }}
+{%- endif %}
# Set a custom allowed content length:
#
# http.max_content_length: 100mb
+# Enable or disable cross-origin resource sharing
+{%- if server.get('cors', {}).enabled is defined %}
+http.cors.enabled: {{ server.cors.enabled|lower }}
+{%- endif %}
+
+# Which origins to allow.
+{%- if server.get('cors', {}).allow_origin is defined %}
+http.cors.allow-origin: {{ server.cors.allow_origin }}
+{%- endif %}
+
# Disable HTTP completely:
#
# http.enabled: false
+http.enabled: true
################################### Gateway ###################################
# Allow recovery process after N nodes in a cluster are up:
#
# gateway.recover_after_nodes: 1
+{%- if server.get('gateway', {}).recover_after_nodes is defined %}
+gateway.recover_after_nodes: {{ server.gateway.recover_after_nodes }}
+{%- endif %}
# Set the timeout to initiate the recovery process, once the N nodes
# from previous setting are up (accepts time value):
#
# gateway.recover_after_time: 5m
+{%- if server.get('gateway', {}).recover_after_time is defined %}
+gateway.recover_after_time: {{ server.gateway.recover_after_time }}
+{%- endif %}
# Set how many nodes are expected in this cluster. Once these N nodes
# are up (and recover_after_nodes is met), begin recovery process immediately
# (without waiting for recover_after_time to expire):
#
# gateway.expected_nodes: 2
+{%- if server.get('gateway', {}).expected_nodes is defined %}
+gateway.expected_nodes: {{ server.gateway.expected_nodes }}
+{%- endif %}
############################# Recovery Throttling #############################