diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2021-01-25 21:29:12 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2021-01-25 21:29:12 +0100 |
commit | 912bc8b903dfa6d438c2469ecdad35c181c71830 (patch) | |
tree | 1e6ee9fdcb2b9d488914b80623d68189867533bb /module/ri-engine/src/main/resources/io/trygvis/rules/terraform/terraform.drl | |
parent | 92b957036218c03a20ba35c19a70bdf5e2333fd3 (diff) | |
download | rules-sandbox-912bc8b903dfa6d438c2469ecdad35c181c71830.tar.gz rules-sandbox-912bc8b903dfa6d438c2469ecdad35c181c71830.tar.bz2 rules-sandbox-912bc8b903dfa6d438c2469ecdad35c181c71830.tar.xz rules-sandbox-912bc8b903dfa6d438c2469ecdad35c181c71830.zip |
Improving usability, massive refactoring.
* Moving all Drools code into their own modules. This fixes ri-engine
to acme dependency.
* Now they all inherit from their own parent, should be used by
third party code too.
* Separating acme planning code into its own module.
* Splitting rules code from ri-engine into ri-base. ri-engine is now
a pure launcher for modules.
* Dumping kogito for the most part, but it seems like the planner still
requires that.
Diffstat (limited to 'module/ri-engine/src/main/resources/io/trygvis/rules/terraform/terraform.drl')
-rw-r--r-- | module/ri-engine/src/main/resources/io/trygvis/rules/terraform/terraform.drl | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/module/ri-engine/src/main/resources/io/trygvis/rules/terraform/terraform.drl b/module/ri-engine/src/main/resources/io/trygvis/rules/terraform/terraform.drl deleted file mode 100644 index 07a96e2..0000000 --- a/module/ri-engine/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 - var 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 "main-scaleway-machine.tf" - agenda-group "generate" -when - $managedZones : ArrayList() from collect(GoogleManagedZoneTerraformExpression()) -then - var 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 - var 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 - var path = "terraform/dns-%s.tf".formatted($tf.key); - te.template("terraform-record-set", path, Map.of( - "entry", $entry, - "managedZone", $managedZone, - "tf", $tf) - ); -end |