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/dba/dba.drl6
-rw-r--r--src/main/resources/io/trygvis/rules/engine/default.drl15
-rw-r--r--src/main/resources/io/trygvis/rules/machine/machine.drl2
-rw-r--r--src/main/resources/io/trygvis/rules/terraform/terraform.drl60
4 files changed, 81 insertions, 2 deletions
diff --git a/src/main/resources/io/trygvis/rules/dba/dba.drl b/src/main/resources/io/trygvis/rules/dba/dba.drl
index 7beceef..7df1c5d 100644
--- a/src/main/resources/io/trygvis/rules/dba/dba.drl
+++ b/src/main/resources/io/trygvis/rules/dba/dba.drl
@@ -1 +1,7 @@
package io.trygvis.rules.dba;
+
+
+rule "Dba"
+ when
+ then
+end
diff --git a/src/main/resources/io/trygvis/rules/engine/default.drl b/src/main/resources/io/trygvis/rules/engine/default.drl
new file mode 100644
index 0000000..090fddf
--- /dev/null
+++ b/src/main/resources/io/trygvis/rules/engine/default.drl
@@ -0,0 +1,15 @@
+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
index 45df925..df0d002 100644
--- a/src/main/resources/io/trygvis/rules/machine/machine.drl
+++ b/src/main/resources/io/trygvis/rules/machine/machine.drl
@@ -9,6 +9,4 @@ rule "New machine"
when
$container: Container()
then
- insert(DnsEntry.a($container.name + ".machine.acme.org"));
- insert(DnsEntry.aaaa($container.name + ".machine.acme.org"));
end
diff --git a/src/main/resources/io/trygvis/rules/terraform/terraform.drl b/src/main/resources/io/trygvis/rules/terraform/terraform.drl
new file mode 100644
index 0000000..1de3123
--- /dev/null
+++ b/src/main/resources/io/trygvis/rules/terraform/terraform.drl
@@ -0,0 +1,60 @@
+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
+ fqdn : String
+end
+
+rule "Terraform for Machine"
+when
+ $machine: Machine()
+then
+ var fqdn = "%s.machine.acme.com".formatted($machine.name);
+ var a = DnsEntry.a(fqdn);
+ var aaaa = DnsEntry.aaaa(fqdn);
+
+ var scw = new ScalewayMachine();
+ scw.setKey($machine.name);
+ scw.setMachine($machine);
+ scw.setFqdn(fqdn);
+
+ var ipv4 = "scaleway_instance_ip.%s.address".formatted($machine.name);
+// var ipv6 = "scaleway_instance_server.%s.public_ipv6.address".formatted($machine.name);
+
+ insert(scw);
+ insert(a);
+ insert(aaaa);
+ insert(new DnsEntryTerraformExpression(a, $machine.name, ipv4));
+// insert(new DnsEntryValue(aaaa, ipv6));
+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