summaryrefslogtreecommitdiff
path: root/src/main/resources/io/trygvis
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/resources/io/trygvis')
-rw-r--r--src/main/resources/io/trygvis/rules/acme/acme.drl62
-rw-r--r--src/main/resources/io/trygvis/rules/acme/vpn.drl110
-rw-r--r--src/main/resources/io/trygvis/rules/dba/dba.drl1
-rw-r--r--src/main/resources/io/trygvis/rules/engine/default.drl15
-rw-r--r--src/main/resources/io/trygvis/rules/machine/machine.drl6
-rw-r--r--src/main/resources/io/trygvis/rules/terraform/terraform.drl60
6 files changed, 0 insertions, 254 deletions
diff --git a/src/main/resources/io/trygvis/rules/acme/acme.drl b/src/main/resources/io/trygvis/rules/acme/acme.drl
deleted file mode 100644
index 6369c24..0000000
--- a/src/main/resources/io/trygvis/rules/acme/acme.drl
+++ /dev/null
@@ -1,62 +0,0 @@
-package io.trygvis.rules.acme;
-
-import io.trygvis.rules.machine.Machine;
-import io.trygvis.rules.dba.Cluster;
-import io.trygvis.rules.dba.Container;
-
-declare AcmeServer
- name : String
- machine : Machine
-end
-
-//declare MachinePublicName
-// machine : Machine
-// fqdn : String
-//end
-
-rule "Ops"
-when
- $ops: AcmeOps()
-then
- var cluster = new Cluster("acme-ops");
- insert(cluster);
- insert(new Container(cluster, "app", "pdb", "postgresql", "11"));
- insert(new Container(cluster, "app", "n8n", "n8n", "0.84.1"));
-end
-
-rule "MyApp"
-when
- $app: AcmeMyApp()
-then
- var cluster = new Cluster("acme-" + $app.environment);
- insert(cluster);
-
- var tag = $app.dockerTag;
- insert(new Container(cluster, "app", "statera", "statera", tag));
- insert(new Container(cluster, "app", "statera-console", "statera-console", tag));
- insert(new Container(cluster, "app", "4tune-web", "4tune-web", tag));
- insert(new Container(cluster, "app", "4tune-api", "4tune-api", tag));
- insert(new Container(cluster, "db", "pdb", "postgresql", "13"));
- insert(new Container(cluster, "db", "mdb", "mongodb", "3.2"));
-end
-
-rule "Create Acme servers"
-when
- $m : Machine(name.startsWith("acme-"))
- not(AcmeServer(name == $m.name))
-then
- var s = new AcmeServer();
- s.name = $m.name;
- s.machine = $m;
- insert(s)
-end
-
-rule "Set public domain for ACME servers"
-when
- $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
deleted file mode 100644
index 88c44f1..0000000
--- a/src/main/resources/io/trygvis/rules/acme/vpn.drl
+++ /dev/null
@@ -1,110 +0,0 @@
-package io.trygvis.rules.acme;
-
-import java.util.ArrayList
-import io.trygvis.rules.machine.Machine;
-import io.trygvis.rules.dns.DnsEntry;
-import io.trygvis.rules.acme.AcmeServer
-import io.trygvis.rules.network.Ipv4Address
-import io.trygvis.rules.network.Ipv4Cidr
-
-dialect "mvel"
-
-declare WgNet
- name : String
- domain : String
- linkCidr : String
- networkCidr : String
-end
-
-declare WgIpPool
- net : String
- role : String
- cidr : Ipv4Cidr
-end
-
-declare WgIpPool
- net : String
- cidr : Ipv4Cidr
-end
-
-rule "Create link network" when
- $net : WgNet()
- not(Ipv4Cidr(network == IpCalc.cidr($net.linkCidr).network))
-then
- insert(new WgIpPool($net.name, "link", IpCalc.cidr($net.linkCidr)))
- insert(new WgIpPool($net.name, "network", IpCalc.cidr($net.networkCidr)))
-end
-
-declare WgHost
- name : String
- net : String
- publicName : String
- netToNetIp : String
- networkIp : String
-end
-
-rule "WgHost VPN machines"
-when
- $machine : Machine()
- $wgNet : WgNet(name == "vpn0")
- not(WgHost(name == $machine.name))
-then
- var wgHost = new WgHost();
- 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
- modify($host) {
- publicName = $m.fqdn
- }
-end
-
-rule "Make DNS entries for all VPN hosts"
-when
- $h : WgHost()
- $net : WgNet(name == $h.net)
- not(DnsEntry(fqdn == "%s.%s".formatted($h.name, $net.domain), type == "A"))
-then
- var fqdn = "%s.%s".formatted($h.name, $net.domain);
- insert(DnsEntry.a(fqdn))
-end
-
-declare WgConnection
- host : String
- to : String
-end
-
-rule "Connect VPN nodes"
- salience -1
-when
- $h : WgHost()
- $other : WgHost(publicName != null, name != $h.name)
-then
- insert(new WgConnection($h.name, $other.name))
-end
-
-declare WgIpAllocation
- host : String
- role : String
- ip : Ipv4Address
-end
-
-rule "Assign IP"
-when
- $net : WgNet()
- $host : WgHost(net == $net.name)
- $pool : WgIpPool(net == $net.name)
- not(WgIpAllocation(host == $host.name, role == $pool.role))
- $ip : Ipv4Address() from $pool.cidr.addresses()
- not(WgIpAllocation(ip == $ip))
-then
- System.out.printf("IP: net=%s, pool.role=%s, host=%s, ip=%s%n", $net.name, $pool.role, $host.name, $ip);
- insert(new WgIpAllocation($host.name, $pool.role, $ip))
-end
diff --git a/src/main/resources/io/trygvis/rules/dba/dba.drl b/src/main/resources/io/trygvis/rules/dba/dba.drl
deleted file mode 100644
index 7beceef..0000000
--- a/src/main/resources/io/trygvis/rules/dba/dba.drl
+++ /dev/null
@@ -1 +0,0 @@
-package io.trygvis.rules.dba;
diff --git a/src/main/resources/io/trygvis/rules/engine/default.drl b/src/main/resources/io/trygvis/rules/engine/default.drl
deleted file mode 100644
index 090fddf..0000000
--- a/src/main/resources/io/trygvis/rules/engine/default.drl
+++ /dev/null
@@ -1,15 +0,0 @@
-package io.trygvis.rules.engine;
-import java.util.Map
-import org.apache.commons.io.FileSystem
-import org.apache.commons.io.FileUtils
-import java.io.File
-
-rule "Clean directories"
- agenda-group "init"
-when
- not(KeyValue(key == "rm-gen"));
-then
- System.out.println("Cleaning gen!");
- FileUtils.deleteDirectory(new File("gen"));
- insert(new KeyValue("rm-gen", null));
-end
diff --git a/src/main/resources/io/trygvis/rules/machine/machine.drl b/src/main/resources/io/trygvis/rules/machine/machine.drl
deleted file mode 100644
index a9a379f..0000000
--- a/src/main/resources/io/trygvis/rules/machine/machine.drl
+++ /dev/null
@@ -1,6 +0,0 @@
-package io.trygvis.rules.machine;
-
-import io.trygvis.rules.dba.Cluster;
-import io.trygvis.rules.dba.Container;
-import io.trygvis.rules.machine.Machine;
-import io.trygvis.rules.dns.DnsEntry;
diff --git a/src/main/resources/io/trygvis/rules/terraform/terraform.drl b/src/main/resources/io/trygvis/rules/terraform/terraform.drl
deleted file mode 100644
index 40b9f7c..0000000
--- a/src/main/resources/io/trygvis/rules/terraform/terraform.drl
+++ /dev/null
@@ -1,60 +0,0 @@
-package io.trygvis.rules.terraform
-
-import io.trygvis.rules.dba.Cluster
-import io.trygvis.rules.dba.Container
-import io.trygvis.rules.machine.Machine
-import io.trygvis.rules.dns.DnsEntry
-import io.trygvis.rules.dns.DnsEntryTerraformExpression
-import java.util.Map;
-
-global io.trygvis.rules.engine.TemplateEngine te;
-
-declare ScalewayMachine
- machine : Machine
- key : String
-end
-
-rule "Terraform for Machine"
-when
- $machine: Machine()
-then
- ScalewayMachine scw = new ScalewayMachine();
-
- scw.setKey($machine.name);
- scw.setMachine($machine);
-
- insert(scw);
-end
-
-rule "Create DNS entry for Terraform Machine"
-when
- $machine : Machine(fqdn != null)
- not(DnsEntry(fqdn == $machine.fqdn))
-then
- var a = DnsEntry.a($machine.fqdn);
- insert(a);
-
- var ipv4 = "scaleway_instance_ip.%s.address".formatted($machine.name);
- insert(new DnsEntryTerraformExpression(a, $machine.name, ipv4));
-end
-
-rule "TF for TerraformMachine"
-when
- $m: Machine()
- $scw: ScalewayMachine(machine == $m)
-then
- var path = "platform/terraform/%s.tf".formatted($scw.getKey());
- te.template("terraform-machine", path, Map.of("m", $m, "scw", $scw));
-end
-
-rule "Terraform for DNS"
-when
- $entry: DnsEntry()
- $tf : DnsEntryTerraformExpression(entry == $entry)
-then
- var path = "dns/%s.tf".formatted($tf.key);
- te.template("terraform-record-set", path, Map.of(
- "entry", $entry,
- "tf", $tf)
- );
-end