Page MenuHomeDevCentral

D3897.id10090.diff
No OneTemporary

D3897.id10090.diff

diff --git a/roles/core/network/files/FreeBSD/route-drake.service b/roles/core/network/files/FreeBSD/route-drake.service
new file mode 100755
--- /dev/null
+++ b/roles/core/network/files/FreeBSD/route-drake.service
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+#
+
+# PROVIDE: route-drake
+# REQUIRE: NETWORKING
+
+. /etc/rc.subr
+
+name=route_drake
+rcvar=route_drake_enable
+
+load_rc_config $name
+
+# All the network served through the GRE tunnel + the tunnel endpoint
+: ${route_drake_range:=172.27.27.0/24}
+: ${route_drake_destination:=172.27.27.1}
+
+stop_cmd=":"
+start_cmd="route_drake_start"
+
+route_drake_start()
+{
+ sleep 30
+
+ if netstat -rn | grep -q $route_drake_range; then
+ exit 0
+ else
+ route add -net $route_drake_range $route_drake_destination
+ fi
+}
+
+run_rc_command "$1"
diff --git a/roles/core/network/files/FreeBSD/route_drake.rc b/roles/core/network/files/FreeBSD/route_drake.rc
new file mode 100644
--- /dev/null
+++ b/roles/core/network/files/FreeBSD/route_drake.rc
@@ -0,0 +1,18 @@
+# -------------------------------------------------------------
+# Network — rc configuration
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# Project: Nasqueron
+# License: Trivial work, not eligible to copyright
+# Source file: roles/core/network/files/FreeBSD/route_drake.rc
+# -------------------------------------------------------------
+#
+# <auto-generated>
+# This file is managed by our rOPS SaltStack repository.
+#
+# Changes to this file may cause incorrect behavior
+# and will be lost if the state is redeployed.
+# </auto-generated>
+
+route_drake_enable=YES
+route_drake_destination={{ tunnel_endpoint }}
+
diff --git a/roles/core/network/gre.sls b/roles/core/network/gre.sls
--- a/roles/core/network/gre.sls
+++ b/roles/core/network/gre.sls
@@ -8,6 +8,8 @@
{% from "roles/core/network/map.jinja" import gre with context %}
{% set boot_loader = namespace(gre=false) %}
+{% set is_router = "router" in grains["roles"] %}
+
# -------------------------------------------------------------
# Tunnels network configuration files
@@ -28,6 +30,24 @@
interface: gre-{{ tunnel["network"] }}
{% endif %}
+
+{% if not is_router and grains['os'] == 'FreeBSD' %}
+
+# Only once iteration of the loop is expected, as it's not a router
+
+/usr/local/etc/rc.d/route-drake:
+ file.managed:
+ - source: roles/core/network/files/FreeBSD/route-drake.service
+ - mode: 755
+
+/etc/rc.conf.d/route_drake:
+ file.managed:
+ - source: roles/core/network/files/FreeBSD/route_drake.rc
+ - template: jinja
+ - context:
+ tunnel_endpoint: {{ tunnel["dst"] }}
+{% endif %}
+
{% endfor %}
# -------------------------------------------------------------

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 29, 08:20 (20 h, 15 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3399633
Default Alt Text
D3897.id10090.diff (2 KB)

Event Timeline