diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2021-01-06 09:30:14 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2021-01-06 09:30:14 +0100 |
commit | 2dcbdffc28b9eeaab68eb7c90eb8813899bd9546 (patch) | |
tree | 063376df72cd1d5a26dc3a43741db9c8e8ded1f0 | |
parent | 8c38e6ca614b22c39ef2fca549d9eb2265304baa (diff) | |
download | rules-sandbox-2dcbdffc28b9eeaab68eb7c90eb8813899bd9546.tar.gz rules-sandbox-2dcbdffc28b9eeaab68eb7c90eb8813899bd9546.tar.bz2 rules-sandbox-2dcbdffc28b9eeaab68eb7c90eb8813899bd9546.tar.xz rules-sandbox-2dcbdffc28b9eeaab68eb7c90eb8813899bd9546.zip |
Implementing VPN connections.
-rw-r--r-- | out/phase-1.yaml | 60 | ||||
-rw-r--r-- | out/vpn0.yaml | 60 | ||||
-rw-r--r-- | src/main/java/io/trygvis/rules/network/Ipv4Cidr.java | 2 | ||||
-rw-r--r-- | src/main/resources/io/trygvis/rules/acme/vpn.drl | 27 |
4 files changed, 141 insertions, 8 deletions
diff --git a/out/phase-1.yaml b/out/phase-1.yaml index b582087..c9974d0 100644 --- a/out/phase-1.yaml +++ b/out/phase-1.yaml @@ -30,6 +30,66 @@ data: name: "acme-3" fqdn: "acme-3.machine.acme.com" --- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-1" + to: "acme-2" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-1" + to: "acme-3" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-2" + to: "acme-1" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-2" + to: "acme-3" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-3" + to: "acme-1" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-3" + to: "acme-2" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-1" + to: "acme-1" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-1" + to: "acme-2" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-1" + to: "acme-3" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-2" + to: "acme-1" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-2" + to: "acme-2" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-2" + to: "acme-3" +--- type: "io.trygvis.rules.acme.WgHost" data: name: "acme-1" diff --git a/out/vpn0.yaml b/out/vpn0.yaml index 3fc6836..bf5aee6 100644 --- a/out/vpn0.yaml +++ b/out/vpn0.yaml @@ -1,4 +1,64 @@ --- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-1" + to: "acme-2" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-1" + to: "acme-3" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-2" + to: "acme-1" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-2" + to: "acme-3" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-3" + to: "acme-1" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "acme-3" + to: "acme-2" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-1" + to: "acme-1" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-1" + to: "acme-2" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-1" + to: "acme-3" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-2" + to: "acme-1" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-2" + to: "acme-2" +--- +type: "io.trygvis.rules.acme.WgConnection" +data: + host: "ws-2" + to: "acme-3" +--- type: "io.trygvis.rules.acme.WgHost" data: name: "acme-1" diff --git a/src/main/java/io/trygvis/rules/network/Ipv4Cidr.java b/src/main/java/io/trygvis/rules/network/Ipv4Cidr.java index 6e1dde9..e69cd02 100644 --- a/src/main/java/io/trygvis/rules/network/Ipv4Cidr.java +++ b/src/main/java/io/trygvis/rules/network/Ipv4Cidr.java @@ -6,8 +6,6 @@ import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import java.io.IOException; -import java.net.InetAddress; -import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Collection; diff --git a/src/main/resources/io/trygvis/rules/acme/vpn.drl b/src/main/resources/io/trygvis/rules/acme/vpn.drl index 0f0b3c8..456cbae 100644 --- a/src/main/resources/io/trygvis/rules/acme/vpn.drl +++ b/src/main/resources/io/trygvis/rules/acme/vpn.drl @@ -71,15 +71,30 @@ then insert(DnsEntry.a(fqdn)) end +declare WgConnection + host : String + to : String +end + rule "Connect VPN nodes" salience -1 when $h : WgHost() - $others : ArrayList() - from collect(WgHost(publicName != null, name != $h.name)) + $other : WgHost(publicName != null, name != $h.name) then - System.out.printf("Connection from %s%n", $h.name); - for (WgHost host : $others) { - System.out.printf(" %s%n", host.name); - } + insert(new WgConnection($h.name, $other.name)) end + +//declare AllocatedIp +// owner : Object +// ip : Ipv4Address +//end +// +//rule "Assign IP" +//when +// $host : WgHost() +// $ip : Ipv4Address() +//then +// var allocation = new AllocatedIp($host, $ip); +// insert(allocation) +//end |