From b8699860653e593271e50c8ba1b73f66fcb6287c Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 6 Jan 2021 12:05:23 +0100 Subject: Starting on splitting up into different modules. --- src/main/resources/META-INF/kmodule.xml | 11 --- src/main/resources/io/trygvis/rules/acme/acme.drl | 62 ------------ src/main/resources/io/trygvis/rules/acme/vpn.drl | 110 --------------------- src/main/resources/io/trygvis/rules/dba/dba.drl | 1 - .../resources/io/trygvis/rules/engine/default.drl | 15 --- .../resources/io/trygvis/rules/machine/machine.drl | 6 -- .../io/trygvis/rules/terraform/terraform.drl | 60 ----------- 7 files changed, 265 deletions(-) delete mode 100644 src/main/resources/META-INF/kmodule.xml delete mode 100644 src/main/resources/io/trygvis/rules/acme/acme.drl delete mode 100644 src/main/resources/io/trygvis/rules/acme/vpn.drl delete mode 100644 src/main/resources/io/trygvis/rules/dba/dba.drl delete mode 100644 src/main/resources/io/trygvis/rules/engine/default.drl delete mode 100644 src/main/resources/io/trygvis/rules/machine/machine.drl delete mode 100644 src/main/resources/io/trygvis/rules/terraform/terraform.drl (limited to 'src/main/resources') diff --git a/src/main/resources/META-INF/kmodule.xml b/src/main/resources/META-INF/kmodule.xml deleted file mode 100644 index ba88a47..0000000 --- a/src/main/resources/META-INF/kmodule.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - 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 -- cgit v1.2.3