summaryrefslogtreecommitdiff
path: root/module/ri-base/src/main/resources/io/trygvis/rules/terraform
diff options
context:
space:
mode:
Diffstat (limited to 'module/ri-base/src/main/resources/io/trygvis/rules/terraform')
-rw-r--r--module/ri-base/src/main/resources/io/trygvis/rules/terraform/terraform-resources.drl14
-rw-r--r--module/ri-base/src/main/resources/io/trygvis/rules/terraform/terraform.drl81
2 files changed, 14 insertions, 81 deletions
diff --git a/module/ri-base/src/main/resources/io/trygvis/rules/terraform/terraform-resources.drl b/module/ri-base/src/main/resources/io/trygvis/rules/terraform/terraform-resources.drl
new file mode 100644
index 0000000..34af8fe
--- /dev/null
+++ b/module/ri-base/src/main/resources/io/trygvis/rules/terraform/terraform-resources.drl
@@ -0,0 +1,14 @@
+package io.trygvis.rules.terraform;
+import java.util.Map
+
+global io.trygvis.rules.engine.TemplateEngine te;
+
+dialect "mvel"
+
+rule "terraform-resources"
+ agenda-group "generate"
+when
+ $r : TerraformResource()
+then
+ te.template("terraform/resource", $r.output, Map.of("resource", $r));
+end
diff --git a/module/ri-base/src/main/resources/io/trygvis/rules/terraform/terraform.drl b/module/ri-base/src/main/resources/io/trygvis/rules/terraform/terraform.drl
deleted file mode 100644
index 7313998..0000000
--- a/module/ri-base/src/main/resources/io/trygvis/rules/terraform/terraform.drl
+++ /dev/null
@@ -1,81 +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.ArrayList;
-import java.util.Map;
-
-global io.trygvis.rules.engine.TemplateEngine te;
-
-dialect "mvel"
-
-declare ScalewayMachine
- machine : Machine
- key : String
-end
-
-declare GoogleManagedZoneTerraformExpression
- name : 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
- DnsEntry a = DnsEntry.a($machine.fqdn);
- insert(a);
-
- String ipv4 = "scaleway_instance_ip.%s.address".formatted($machine.name);
- insert(new DnsEntryTerraformExpression(a, $machine.name, ipv4));
-end
-
-rule "main-scaleway-machine.tf"
- agenda-group "generate"
-when
- $managedZones : ArrayList() from collect(GoogleManagedZoneTerraformExpression())
-then
- String path = "terraform/main-scaleway-machine.tf";
- te.template("terraform/main-scaleway-machine", path, Map.of(
- "managedZones", $managedZones
- ));
-end
-
-rule "TF for TerraformMachine"
- agenda-group "generate"
-when
- $m: Machine()
- $scw: ScalewayMachine(machine == $m)
-then
- String path = "terraform/scaleway-machine-%s.tf".formatted($scw.getKey());
- te.template("terraform/machine", path, Map.of("m", $m, "scw", $scw));
-end
-
-rule "Terraform for DNS"
- agenda-group "generate"
-when
- $entry: DnsEntry()
- $tf : DnsEntryTerraformExpression(entry == $entry)
- $managedZone : GoogleManagedZoneTerraformExpression()
-then
- String path = "terraform/dns-%s.tf".formatted($tf.key);
- te.template("terraform/record-set", path, Map.of(
- "entry", $entry,
- "managedZone", $managedZone,
- "tf", $tf)
- );
-end