diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2021-01-03 23:58:21 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2021-01-03 23:58:21 +0100 |
commit | 4dcc43061d05f14ceddbb9f3a0c43ab908b89a4b (patch) | |
tree | 6287e48715840f68ae3449e491fb3a0b5a45f480 /src/main/resources | |
parent | b7d0da791505ec08bc5e87dc1f5245078c8b3d42 (diff) | |
download | rules-sandbox-4dcc43061d05f14ceddbb9f3a0c43ab908b89a4b.tar.gz rules-sandbox-4dcc43061d05f14ceddbb9f3a0c43ab908b89a4b.tar.bz2 rules-sandbox-4dcc43061d05f14ceddbb9f3a0c43ab908b89a4b.tar.xz rules-sandbox-4dcc43061d05f14ceddbb9f3a0c43ab908b89a4b.zip |
VPN work.
Also better sorting of output objects.
Diffstat (limited to 'src/main/resources')
-rw-r--r-- | src/main/resources/io/trygvis/rules/acme/acme.drl | 9 | ||||
-rw-r--r-- | src/main/resources/io/trygvis/rules/acme/vpn.drl | 30 | ||||
-rw-r--r-- | src/main/resources/io/trygvis/rules/machine/machine.drl | 6 |
3 files changed, 24 insertions, 21 deletions
diff --git a/src/main/resources/io/trygvis/rules/acme/acme.drl b/src/main/resources/io/trygvis/rules/acme/acme.drl index e2cb9da..72d296c 100644 --- a/src/main/resources/io/trygvis/rules/acme/acme.drl +++ b/src/main/resources/io/trygvis/rules/acme/acme.drl @@ -8,6 +8,11 @@ declare AcmeServer machine : Machine end +//declare MachinePublicName +// machine : Machine +// fqdn : String +//end + rule "Ops" when $ops: AcmeOps() @@ -45,8 +50,10 @@ end rule "Set public domain for ACME servers" when - $s : AcmeServer() + $m : Machine(fqdn == null) + $s : AcmeServer(machine == $m) then var fqdn = "%s.machine.acme.com".formatted($s.machine.name); $s.machine.fqdn = fqdn; + update($s.machine) end diff --git a/src/main/resources/io/trygvis/rules/acme/vpn.drl b/src/main/resources/io/trygvis/rules/acme/vpn.drl index 3f62fbd..cfdbef9 100644 --- a/src/main/resources/io/trygvis/rules/acme/vpn.drl +++ b/src/main/resources/io/trygvis/rules/acme/vpn.drl @@ -2,6 +2,7 @@ package io.trygvis.rules.acme; import io.trygvis.rules.machine.Machine; import io.trygvis.rules.dns.DnsEntry; +import io.trygvis.rules.acme.AcmeServer; dialect "mvel" @@ -12,34 +13,35 @@ end declare WgHost name : String - machine : Machine +// machine : Machine net : String publicName : String netToNetIp : String networkIp : String end -rule "Set name from machine's name" - salience 10 -when - $h : WgHost(name == null, machine != null) -then - $h.name = $h.machine.name; - - update($h) -end - rule "WgHost VPN machines" when - $machine : Machine(name.startsWith("acme-")) - $wgNet : WgNet(name == "vs0") + $machine : Machine() + $wgNet : WgNet(name == "vpn0") + not(WgHost(name == $machine.name)) then var wgHost = new WgHost(); - wgHost.machine = $machine; + wgHost.name = $machine.name; wgHost.net = $wgNet.name; + wgHost.publicName = $machine.fqdn; insert(wgHost) end +rule "Set public name of WgHost" +when + $host : WgHost(publicName == null) + $m : Machine(name == $host.name, fqdn != null) +then + $host.publicName = $m.fqdn; + update($host) +end + rule "Make DNS entries for all VPN hosts" when $h : WgHost() diff --git a/src/main/resources/io/trygvis/rules/machine/machine.drl b/src/main/resources/io/trygvis/rules/machine/machine.drl index df0d002..a9a379f 100644 --- a/src/main/resources/io/trygvis/rules/machine/machine.drl +++ b/src/main/resources/io/trygvis/rules/machine/machine.drl @@ -4,9 +4,3 @@ import io.trygvis.rules.dba.Cluster; import io.trygvis.rules.dba.Container; import io.trygvis.rules.machine.Machine; import io.trygvis.rules.dns.DnsEntry; - -rule "New machine" -when - $container: Container() -then -end |