#!/bin/bash
set -e

JINJA_CMD="jinja2 -e jinja2_ansible_filters.AnsibleCoreFiltersExtension"
LAYEROPS_CONFIG_FILE={{ layerops_config_file }}
ORCHESTRATORS_IPS=$(jq -r '.wireguard.orchestrators' $LAYEROPS_CONFIG_FILE | jq -r '.[].ip')

LAYEROPS_SIGNATURE_FILE={{ layerops_signature_file }}
INSTANCE_SIGNATURE=$(cat $LAYEROPS_SIGNATURE_FILE 2> /dev/null || uuidgen)
echo $INSTANCE_SIGNATURE > $LAYEROPS_SIGNATURE_FILE

# Create Wireguard config files
$JINJA_CMD -o {{ wireguard_config_file }} {{ wireguard_template_path }}/{{ wireguard_interface }}.conf $LAYEROPS_CONFIG_FILE
$JINJA_CMD -o {{ wireguard_config_file }}.tmpl {{ wireguard_template_path }}/{{ wireguard_interface }}.conf.tmpl $LAYEROPS_CONFIG_FILE

# start and enable Wireguard instance
systemctl daemon-reload
systemctl enable wg-quick@{{ wireguard_interface }}
{{ local_bin_path }}/wg_reload

# Restart consul template wireguard autoreload if already set
systemctl restart consul-template-wg 2> /dev/null || echo ""

# Try to ping orchestrator instances through wireguard interface
for SERVERIP in $ORCHESTRATORS_IPS
do
  ping -c 3 $SERVERIP
done
